Loading src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +74 −17 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ 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.APP_PERMISSIONS_FRAGMENT_VIEWED; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__DENIED; import android.app.ActionBar; import android.app.Activity; Loading @@ -44,6 +48,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import com.android.packageinstaller.PermissionControllerStatsLog; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; import com.android.packageinstaller.permission.utils.Utils; Loading @@ -52,6 +57,7 @@ import com.android.settingslib.HelpUtils; import java.text.Collator; import java.util.ArrayList; import java.util.Random; /** * Show and manage permission groups for an app. Loading @@ -63,6 +69,9 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { private static final String LOG_TAG = "ManagePermsFragment"; static final String EXTRA_HIDE_INFO_BUTTON = "hideInfoButton"; static final String PREFERENCE_ALLOWED = "allowed"; static final String PREFERENCE_DENIED = "denied"; static final String PREFERENCE_ALLOWED_FOREGROUND = "allowed_foreground"; private AppPermissions mAppPermissions; private PreferenceScreen mExtraScreen; Loading Loading @@ -121,6 +130,7 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { mCollator = Collator.getInstance( getContext().getResources().getConfiguration().getLocales().get(0)); updatePreferences(); logAppPermissionsFragmentView(); } @Override Loading Loading @@ -197,13 +207,13 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { return; } PreferenceCategory allowed = (PreferenceCategory) findPreference("allowed"); PreferenceCategory denied = (PreferenceCategory) findPreference("denied"); PreferenceCategory allowed = (PreferenceCategory) findPreference(PREFERENCE_ALLOWED); PreferenceCategory denied = (PreferenceCategory) findPreference(PREFERENCE_DENIED); allowed.removeAll(); denied.removeAll(); findPreference("allowed_foreground").setVisible(false); findPreference(PREFERENCE_ALLOWED_FOREGROUND).setVisible(false); if (mExtraScreen != null) { mExtraScreen.removeAll(); Loading Loading @@ -292,6 +302,53 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { setLoading(false /* loading */, true /* animate */); } private void logAppPermissionsFragmentView() { Context context = getPreferenceManager().getContext(); if (context == null) { return; } String permissionSubtitleOnlyInForeground = context.getString(R.string.permission_subtitle_only_in_foreground); long sessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID); long viewId = new Random().nextLong(); PreferenceCategory allowed = findPreference(PREFERENCE_ALLOWED); int numAllowed = allowed.getPreferenceCount(); for (int i = 0; i < numAllowed; i++) { Preference preference = allowed.getPreference(i); int category = APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED; if (permissionSubtitleOnlyInForeground.contentEquals(preference.getSummary())) { category = APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND; } logAppPermissionsFragmentViewEntry(sessionId, viewId, preference.getKey(), category); } PreferenceCategory denied = findPreference(PREFERENCE_DENIED); int numDenied = denied.getPreferenceCount(); for (int i = 0; i < numDenied; i++) { Preference preference = denied.getPreference(i); logAppPermissionsFragmentViewEntry(sessionId, viewId, preference.getKey(), APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__DENIED); } } private void logAppPermissionsFragmentViewEntry( long sessionId, long viewId, String permissionGroupName, int category) { PermissionControllerStatsLog.write(APP_PERMISSIONS_FRAGMENT_VIEWED, sessionId, viewId, permissionGroupName, mAppPermissions.getPackageInfo().applicationInfo.uid, mAppPermissions.getPackageInfo().packageName, category); Log.v(LOG_TAG, "AppPermissionFragment view logged with sessionId=" + sessionId + " viewId=" + viewId + " permissionGroupName=" + permissionGroupName + " uid=" + mAppPermissions.getPackageInfo().applicationInfo.uid + " packageName=" + mAppPermissions.getPackageInfo().packageName + " category=" + category); } private static PackageInfo getPackageInfo(Activity activity, @NonNull String packageName, @NonNull UserHandle userHandle) { try { Loading Loading
src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +74 −17 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ 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.APP_PERMISSIONS_FRAGMENT_VIEWED; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND; import static com.android.packageinstaller.PermissionControllerStatsLog.APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__DENIED; import android.app.ActionBar; import android.app.Activity; Loading @@ -44,6 +48,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import com.android.packageinstaller.PermissionControllerStatsLog; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; import com.android.packageinstaller.permission.utils.Utils; Loading @@ -52,6 +57,7 @@ import com.android.settingslib.HelpUtils; import java.text.Collator; import java.util.ArrayList; import java.util.Random; /** * Show and manage permission groups for an app. Loading @@ -63,6 +69,9 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { private static final String LOG_TAG = "ManagePermsFragment"; static final String EXTRA_HIDE_INFO_BUTTON = "hideInfoButton"; static final String PREFERENCE_ALLOWED = "allowed"; static final String PREFERENCE_DENIED = "denied"; static final String PREFERENCE_ALLOWED_FOREGROUND = "allowed_foreground"; private AppPermissions mAppPermissions; private PreferenceScreen mExtraScreen; Loading Loading @@ -121,6 +130,7 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { mCollator = Collator.getInstance( getContext().getResources().getConfiguration().getLocales().get(0)); updatePreferences(); logAppPermissionsFragmentView(); } @Override Loading Loading @@ -197,13 +207,13 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { return; } PreferenceCategory allowed = (PreferenceCategory) findPreference("allowed"); PreferenceCategory denied = (PreferenceCategory) findPreference("denied"); PreferenceCategory allowed = (PreferenceCategory) findPreference(PREFERENCE_ALLOWED); PreferenceCategory denied = (PreferenceCategory) findPreference(PREFERENCE_DENIED); allowed.removeAll(); denied.removeAll(); findPreference("allowed_foreground").setVisible(false); findPreference(PREFERENCE_ALLOWED_FOREGROUND).setVisible(false); if (mExtraScreen != null) { mExtraScreen.removeAll(); Loading Loading @@ -292,6 +302,53 @@ public final class AppPermissionsFragment extends SettingsWithLargeHeader { setLoading(false /* loading */, true /* animate */); } private void logAppPermissionsFragmentView() { Context context = getPreferenceManager().getContext(); if (context == null) { return; } String permissionSubtitleOnlyInForeground = context.getString(R.string.permission_subtitle_only_in_foreground); long sessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID); long viewId = new Random().nextLong(); PreferenceCategory allowed = findPreference(PREFERENCE_ALLOWED); int numAllowed = allowed.getPreferenceCount(); for (int i = 0; i < numAllowed; i++) { Preference preference = allowed.getPreference(i); int category = APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED; if (permissionSubtitleOnlyInForeground.contentEquals(preference.getSummary())) { category = APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__ALLOWED_FOREGROUND; } logAppPermissionsFragmentViewEntry(sessionId, viewId, preference.getKey(), category); } PreferenceCategory denied = findPreference(PREFERENCE_DENIED); int numDenied = denied.getPreferenceCount(); for (int i = 0; i < numDenied; i++) { Preference preference = denied.getPreference(i); logAppPermissionsFragmentViewEntry(sessionId, viewId, preference.getKey(), APP_PERMISSIONS_FRAGMENT_VIEWED__CATEGORY__DENIED); } } private void logAppPermissionsFragmentViewEntry( long sessionId, long viewId, String permissionGroupName, int category) { PermissionControllerStatsLog.write(APP_PERMISSIONS_FRAGMENT_VIEWED, sessionId, viewId, permissionGroupName, mAppPermissions.getPackageInfo().applicationInfo.uid, mAppPermissions.getPackageInfo().packageName, category); Log.v(LOG_TAG, "AppPermissionFragment view logged with sessionId=" + sessionId + " viewId=" + viewId + " permissionGroupName=" + permissionGroupName + " uid=" + mAppPermissions.getPackageInfo().applicationInfo.uid + " packageName=" + mAppPermissions.getPackageInfo().packageName + " category=" + category); } private static PackageInfo getPackageInfo(Activity activity, @NonNull String packageName, @NonNull UserHandle userHandle) { try { Loading