Merge "Turn on bluetooth anomaly detector" into oc-dr1-dev am: 2750dd8d6d am: fab00d4262

am: aefe48590c

Change-Id: I451c43920bbd844582e1dc4b15231ff28e238243
This commit is contained in:
Lei Yu
2017-08-03 17:24:07 +00:00
committed by android-build-merger
5 changed files with 194 additions and 8 deletions

View File

@@ -124,7 +124,7 @@ public class AnomalyDetectionPolicy {
wakeupAlarmDetectionEnabled = mParserWrapper.getBoolean(KEY_WAKEUP_ALARM_DETECTION_ENABLED,
false);
bluetoothScanDetectionEnabled = mParserWrapper.getBoolean(
KEY_BLUETOOTH_SCAN_DETECTION_ENABLED, false);
KEY_BLUETOOTH_SCAN_DETECTION_ENABLED, true);
wakeLockThreshold = mParserWrapper.getLong(KEY_WAKELOCK_THRESHOLD,
DateUtils.HOUR_IN_MILLIS);
wakeupAlarmThreshold = mParserWrapper.getLong(KEY_WAKEUP_ALARM_THRESHOLD, 60);

View File

@@ -16,8 +16,10 @@
package com.android.settings.fuelgauge.anomaly.action;
import android.Manifest;
import android.content.Context;
import android.content.pm.permission.RuntimePermissionPresenter;
import android.support.annotation.VisibleForTesting;
import android.support.v4.content.PermissionChecker;
import com.android.internal.logging.nano.MetricsProto;
@@ -29,13 +31,17 @@ import com.android.settings.fuelgauge.anomaly.Anomaly;
public class LocationCheckAction extends AnomalyAction {
private static final String TAG = "LocationCheckAction";
private static final String LOCATION_PERMISSION = "android.permission-group.LOCATION";
private final RuntimePermissionPresenter mRuntimePermissionPresenter;
public LocationCheckAction(Context context) {
this(context, RuntimePermissionPresenter.getInstance(context));
}
@VisibleForTesting
LocationCheckAction(Context context, RuntimePermissionPresenter runtimePermissionPresenter) {
super(context);
mRuntimePermissionPresenter = RuntimePermissionPresenter.getInstance(context);
mRuntimePermissionPresenter = runtimePermissionPresenter;
mActionMetricKey = MetricsProto.MetricsEvent.ACTION_APP_LOCATION_CHECK;
}
@@ -43,17 +49,22 @@ public class LocationCheckAction extends AnomalyAction {
public void handlePositiveAction(Anomaly anomaly, int contextMetricsKey) {
super.handlePositiveAction(anomaly, contextMetricsKey);
mRuntimePermissionPresenter.revokeRuntimePermission(anomaly.packageName,
LOCATION_PERMISSION);
Manifest.permission_group.LOCATION);
}
@Override
public boolean isActionActive(Anomaly anomaly) {
return PermissionChecker.checkPermission(mContext, LOCATION_PERMISSION, -1, anomaly.uid,
anomaly.packageName) == PermissionChecker.PERMISSION_GRANTED;
return isPermissionGranted(anomaly, Manifest.permission.ACCESS_COARSE_LOCATION)
|| isPermissionGranted(anomaly, Manifest.permission.ACCESS_FINE_LOCATION);
}
@Override
public int getActionType() {
return Anomaly.AnomalyActionType.LOCATION_CHECK;
}
private boolean isPermissionGranted(Anomaly anomaly, String permission) {
return PermissionChecker.checkPermission(mContext, permission, -1, anomaly.uid,
anomaly.packageName) == PermissionChecker.PERMISSION_GRANTED;
}
}