Merge "Turn on bluetooth anomaly detector" into oc-dr1-dev am: 2750dd8d6d
am: fab00d4262
am: aefe48590c
Change-Id: I451c43920bbd844582e1dc4b15231ff28e238243
This commit is contained in:
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user