summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanislav Zholnin <zholnin@google.com>2019-06-04 15:01:39 +0100
committerStanislav Zholnin <zholnin@google.com>2019-06-21 16:49:19 +0000
commitb985248c3a8a3d0c504e87496b0cffb44af0e7de (patch)
tree6772897e7d0385bc4228435272fadef691ba0e7e
parent6a545bc450ecc1e1b9e5d093d7281f18592f7d74 (diff)
downloadandroid_packages_apps_PackageInstaller-b985248c3a8a3d0c504e87496b0cffb44af0e7de.tar.gz
android_packages_apps_PackageInstaller-b985248c3a8a3d0c504e87496b0cffb44af0e7de.tar.bz2
android_packages_apps_PackageInstaller-b985248c3a8a3d0c504e87496b0cffb44af0e7de.zip
Add logging to PermissionAppsFragment
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive -p com.google.android.permissioncontroller 218 Bug: 133401502 Change-Id: I51d8d1eed099fa17d2e8b6726cd174436a4c457e
-rw-r--r--src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
index f8229f3e..304aa38a 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
@@ -17,6 +17,11 @@ package com.android.packageinstaller.permission.ui.handheld;
import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+import static com.android.packageinstaller.PermissionControllerStatsLog.PERMISSION_APPS_FRAGMENT_VIEWED;
+import static com.android.packageinstaller.PermissionControllerStatsLog.PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__ALLOWED;
+import static com.android.packageinstaller.PermissionControllerStatsLog.PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND;
+import static com.android.packageinstaller.PermissionControllerStatsLog.PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__DENIED;
+import static com.android.packageinstaller.PermissionControllerStatsLog.PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__UNDEFINED;
import android.app.ActionBar;
import android.content.Context;
@@ -24,6 +29,7 @@ import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.ArrayMap;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -37,6 +43,7 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreferenceCompat;
import com.android.packageinstaller.DeviceUtils;
+import com.android.packageinstaller.PermissionControllerStatsLog;
import com.android.packageinstaller.permission.model.AppPermissionGroup;
import com.android.packageinstaller.permission.model.PermissionApps;
import com.android.packageinstaller.permission.model.PermissionApps.Callback;
@@ -48,6 +55,7 @@ import com.android.settingslib.HelpUtils;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Map;
+import java.util.Random;
/**
* Show and manage apps which request a single permission group.
@@ -57,11 +65,16 @@ import java.util.Map;
public final class PermissionAppsFragment extends SettingsWithLargeHeader implements Callback {
private static final String KEY_SHOW_SYSTEM_PREFS = "_showSystem";
+ private static final String CREATION_LOGGED_SYSTEM_PREFS = "_creationLogged";
private static final String KEY_FOOTER = "_footer";
+ private static final String LOG_TAG = "PermissionAppsFragment";
private static final String SHOW_SYSTEM_KEY = PermissionAppsFragment.class.getName()
+ KEY_SHOW_SYSTEM_PREFS;
+ private static final String CREATION_LOGGED = PermissionAppsFragment.class.getName()
+ + CREATION_LOGGED_SYSTEM_PREFS;
+
/**
* @return A new fragment
*/
@@ -84,6 +97,7 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
private PreferenceScreen mExtraScreen;
private boolean mShowSystem;
+ private boolean mCreationLogged;
private boolean mHasSystemApps;
private MenuItem mShowSystemMenu;
private MenuItem mHideSystemMenu;
@@ -98,6 +112,7 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
if (savedInstanceState != null) {
mShowSystem = savedInstanceState.getBoolean(SHOW_SYSTEM_KEY);
+ mCreationLogged = savedInstanceState.getBoolean(CREATION_LOGGED);
}
setLoading(true /* loading */, false /* animate */);
@@ -122,6 +137,7 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
super.onSaveInstanceState(outState);
outState.putBoolean(SHOW_SYSTEM_KEY, mShowSystem);
+ outState.putBoolean(CREATION_LOGGED, mCreationLogged);
}
@Override
@@ -253,6 +269,7 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
return result;
});
+ long viewIdForLogging = new Random().nextLong();
long sessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID);
for (int i = 0; i < sortedApps.size(); i++) {
@@ -322,8 +339,13 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
mExtraScreen.addPreference(pref);
} else {
category.addPreference(pref);
+ if (!mCreationLogged) {
+ logPermissionAppsFragmentCreated(app, viewIdForLogging, category == allowed,
+ category == allowedForeground, category == denied);
+ }
}
}
+ mCreationLogged = true;
if (mExtraScreen != null) {
Preference pref = allowed.findPreference(KEY_SHOW_SYSTEM_PREFS);
@@ -389,6 +411,28 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
}
}
+ private void logPermissionAppsFragmentCreated(PermissionApp permissionApp, long viewId,
+ boolean isAllowed, boolean isAllowedForeground, boolean isDenied) {
+ long sessionId = getArguments().getLong(EXTRA_SESSION_ID, 0);
+
+ int category = PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__UNDEFINED;
+ if (isAllowed) {
+ category = PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__ALLOWED;
+ } else if (isAllowedForeground) {
+ category = PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND;
+ } else if (isDenied) {
+ category = PERMISSION_APPS_FRAGMENT_VIEWED__CATEGORY__DENIED;
+ }
+
+ PermissionControllerStatsLog.write(PERMISSION_APPS_FRAGMENT_VIEWED, sessionId, viewId,
+ mPermissionApps.getGroupName(), permissionApp.getUid(),
+ permissionApp.getPackageName(), category);
+ Log.v(LOG_TAG, "PermissionAppsFragment created with sessionId=" + sessionId
+ + " permissionGroupName=" + mPermissionApps.getGroupName() + " appUid="
+ + permissionApp.getUid() + " packageName=" + permissionApp.getPackageName()
+ + " category=" + category);
+ };
+
public static class SystemAppsFragment extends SettingsWithLargeHeader implements Callback {
PermissionAppsFragment mOuterFragment;