Add Auto Revoke log to the App Info page

Test: manual
Bug: 154650244
Change-Id: Ibc944ce72d176204cc20c6d0460bf5efe6f7a878
This commit is contained in:
Nate Myren
2020-04-21 15:07:33 -07:00
parent 73d3367901
commit d55449aec0
2 changed files with 46 additions and 0 deletions

View File

@@ -16,6 +16,10 @@
package com.android.settings.applications.appinfo;
import static com.android.settings.core.instrumentation.SettingsStatsLog.AUTO_REVOKED_APP_INTERACTION;
import static com.android.settings.core.instrumentation.SettingsStatsLog.AUTO_REVOKED_APP_INTERACTION__ACTION__OPEN_IN_SETTINGS;
import static com.android.settings.core.instrumentation.SettingsStatsLog.AUTO_REVOKED_APP_INTERACTION__ACTION__REMOVE_IN_SETTINGS;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
@@ -52,6 +56,7 @@ import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAd
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.SettingsStatsLog;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -118,10 +123,12 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
private RestrictedLockUtils.EnforcedAdmin mAppsControlDisallowedAdmin;
private PreferenceScreen mScreen;
private long mSessionId;
private boolean mUpdatedSysApp = false;
private boolean mListeningToPackageRemove = false;
private boolean mFinishing = false;
private boolean mAppsControlDisallowedBySystem;
private boolean mAccessedFromAutoRevoke;
public AppButtonsPreferenceController(SettingsActivity activity,
InstrumentedPreferenceFragment fragment,
@@ -149,6 +156,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
mRequestUninstall = requestUninstall;
mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin;
mAppLaunchIntent = mPm.getLaunchIntentForPackage(mPackageName);
mSessionId = activity.getIntent().getLongExtra(Intent.ACTION_AUTO_REVOKE_PERMISSIONS, 0);
mAccessedFromAutoRevoke = mSessionId != 0;
if (packageName != null) {
mAppEntry = mState.getEntry(packageName, mUserId);
@@ -202,6 +211,13 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
@Override
public void onClick(View v) {
if (mAccessedFromAutoRevoke) {
Log.i(TAG, "sessionId: " + mSessionId + " uninstalling " + mPackageName
+ " with uid " + getUid() + ", reached from auto revoke");
SettingsStatsLog.write(AUTO_REVOKED_APP_INTERACTION, mSessionId, getUid(),
mPackageName, AUTO_REVOKED_APP_INTERACTION__ACTION__REMOVE_IN_SETTINGS);
}
final String packageName = mAppEntry.info.packageName;
// Uninstall
if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
@@ -701,10 +717,28 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
private void launchApplication() {
if (mAppLaunchIntent != null) {
if (mAccessedFromAutoRevoke) {
Log.i(TAG, "sessionId: " + mSessionId + " uninstalling " + mPackageName
+ " with uid " + getUid() + ", reached from auto revoke");
SettingsStatsLog.write(AUTO_REVOKED_APP_INTERACTION, mSessionId, getUid(),
mPackageName, AUTO_REVOKED_APP_INTERACTION__ACTION__OPEN_IN_SETTINGS);
}
mContext.startActivityAsUser(mAppLaunchIntent, new UserHandle(mUserId));
}
}
private int getUid() {
int uid = -1;
if (mPackageInfo == null) {
retrieveAppEntry();
}
if (mPackageInfo != null) {
uid = mPackageInfo.applicationInfo.uid;
}
return uid;
}
private boolean isInstantApp() {
return mAppEntry != null && AppUtils.isInstant(mAppEntry.info);
}