Merge "Unrestrict app if it been set as device admin app"

This commit is contained in:
TreeHugger Robot
2018-07-03 02:26:16 +00:00
committed by Android (Google) Code Review
2 changed files with 51 additions and 0 deletions

View File

@@ -61,6 +61,8 @@ import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.EventLogTags;
import com.android.settings.R;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.users.UserDialogs;
import com.android.settingslib.RestrictedLockUtils;
@@ -427,6 +429,9 @@ public class DeviceAdminAdd extends Activity {
mDPM.setActiveAdmin(mDeviceAdmin.getComponent(), mRefreshing);
EventLog.writeEvent(EventLogTags.EXP_DET_DEVICE_ADMIN_ACTIVATED_BY_USER,
mDeviceAdmin.getActivityInfo().applicationInfo.uid);
unrestrictAppIfPossible(BatteryUtils.getInstance(this));
setResult(Activity.RESULT_OK);
} catch (RuntimeException e) {
// Something bad happened... could be that it was
@@ -448,6 +453,15 @@ public class DeviceAdminAdd extends Activity {
finish();
}
void unrestrictAppIfPossible(BatteryUtils batteryUtils) {
// Unrestrict admin app if it is already been restricted
final String packageName = mDeviceAdmin.getComponent().getPackageName();
final int uid = batteryUtils.getPackageUid(packageName);
if (batteryUtils.isForceAppStandbyEnabled(uid, packageName)) {
batteryUtils.setForceAppStandby(uid, packageName, AppOpsManager.MODE_ALLOWED);
}
}
void continueRemoveAction(CharSequence msg) {
if (!mWaitingForRemoveMsg) {
return;