Mkae SysUIPlugins its own gradle target.

Breaks the dependency of SystemUIPlugins on ThresholdSensor
by introducing an intermediate interface.

Fixes: 186781915
Test: manual
Change-Id: Ib2633f8f2acaa1d21f1e8968317b4a4e63d3af32
This commit is contained in:
Dave Mankoff
2021-04-30 11:58:22 -04:00
parent 9693ec26d9
commit 4e30df7dee
11 changed files with 51 additions and 29 deletions

View File

@@ -50,13 +50,6 @@ java_library {
srcs: ["src/com/android/systemui/EventLogTags.logtags"],
}
java_library {
name: "SystemUI-sensors",
srcs: [
"src/com/android/systemui/util/sensors/ThresholdSensor.java",
],
}
android_library {
name: "SystemUI-core",
srcs: [

View File

@@ -36,7 +36,6 @@ android_library {
static_libs: [
"PluginCoreLib",
"SystemUI-sensors",
],
manifest: "AndroidManifest.xml",

View File

@@ -34,7 +34,6 @@ java_library {
static_libs: [
"androidx.annotation_annotation",
"PluginCoreLib",
"SystemUI-sensors",
"SystemUIAnimationLib",
],

View File

@@ -21,7 +21,6 @@ import android.net.Uri;
import android.view.MotionEvent;
import com.android.systemui.plugins.annotations.ProvidesInterface;
import com.android.systemui.util.sensors.ThresholdSensor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -118,7 +117,7 @@ public interface FalsingManager {
void cleanup();
/** Call to report a ProximityEvent to the FalsingManager. */
void onProximityEvent(ThresholdSensor.ThresholdSensorEvent proximityEvent);
void onProximityEvent(ProximityEvent proximityEvent);
/** Adds a {@link FalsingBeliefListener}. */
void addFalsingBeliefListener(FalsingBeliefListener listener);
@@ -141,4 +140,13 @@ public interface FalsingManager {
interface FalsingTapListener {
void onDoubleTapRequired();
}
/** Passed to {@link FalsingManager#onProximityEvent}. */
interface ProximityEvent {
/** Returns true when the proximity sensor was covered. */
boolean getCovered();
/** Returns when the proximity sensor was covered in nanoseconds. */
long getTimestampNs();
}
}

View File

@@ -35,7 +35,6 @@ import com.android.systemui.dagger.qualifiers.TestHarness;
import com.android.systemui.dock.DockManager;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.sensors.ThresholdSensor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -317,7 +316,7 @@ public class BrightLineFalsingManager implements FalsingManager {
}
@Override
public void onProximityEvent(ThresholdSensor.ThresholdSensorEvent proximityEvent) {
public void onProximityEvent(ProximityEvent proximityEvent) {
// TODO: some of these classifiers might allow us to abort early, meaning we don't have to
// make these calls.
mClassifiers.forEach((classifier) -> classifier.onProximityEvent(proximityEvent));

View File

@@ -18,7 +18,7 @@ package com.android.systemui.classifier;
import android.view.MotionEvent;
import com.android.systemui.util.sensors.ProximitySensor;
import com.android.systemui.plugins.FalsingManager;
import java.util.List;
@@ -110,7 +110,7 @@ public abstract class FalsingClassifier {
/**
* Called when a ProximityEvent occurs (change in near/far).
*/
void onProximityEvent(ProximitySensor.ThresholdSensorEvent proximityEvent) {}
void onProximityEvent(FalsingManager.ProximityEvent proximityEvent) {}
/**
* The phone screen has turned on and we need to begin falsing detection.

View File

@@ -361,7 +361,7 @@ class FalsingCollectorImpl implements FalsingCollector {
private void onProximityEvent(ThresholdSensor.ThresholdSensorEvent proximityEvent) {
// TODO: some of these classifiers might allow us to abort early, meaning we don't have to
// make these calls.
mFalsingManager.onProximityEvent(proximityEvent);
mFalsingManager.onProximityEvent(new ProximityEventImpl(proximityEvent));
}
@@ -374,4 +374,21 @@ class FalsingCollectorImpl implements FalsingCollector {
Log.d(TAG, msg, throwable);
}
}
private static class ProximityEventImpl implements FalsingManager.ProximityEvent {
private ThresholdSensor.ThresholdSensorEvent mThresholdSensorEvent;
ProximityEventImpl(ThresholdSensor.ThresholdSensorEvent thresholdSensorEvent) {
mThresholdSensorEvent = thresholdSensorEvent;
}
@Override
public boolean getCovered() {
return mThresholdSensorEvent.getBelow();
}
@Override
public long getTimestampNs() {
return mThresholdSensorEvent.getTimestampNs();
}
}
}

View File

@@ -20,7 +20,6 @@ import android.net.Uri;
import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.util.sensors.ThresholdSensor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -133,7 +132,7 @@ public class FalsingManagerFake implements FalsingManager {
}
@Override
public void onProximityEvent(ThresholdSensor.ThresholdSensorEvent proximityEvent) {
public void onProximityEvent(ProximityEvent proximityEvent) {
}

View File

@@ -31,7 +31,6 @@ import com.android.systemui.plugins.FalsingPlugin;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.sensors.ThresholdSensor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -186,7 +185,7 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
}
@Override
public void onProximityEvent(ThresholdSensor.ThresholdSensorEvent proximityEvent) {
public void onProximityEvent(ProximityEvent proximityEvent) {
mInternalFalsingManager.onProximityEvent(proximityEvent);
}

View File

@@ -25,8 +25,8 @@ import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import android.provider.DeviceConfig;
import android.view.MotionEvent;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.sensors.ProximitySensor;
import java.util.Locale;
@@ -107,11 +107,11 @@ class ProximityClassifier extends FalsingClassifier {
@Override
public void onProximityEvent(
ProximitySensor.ThresholdSensorEvent proximityEvent) {
boolean near = proximityEvent.getBelow();
FalsingManager.ProximityEvent proximityEvent) {
boolean covered = proximityEvent.getCovered();
long timestampNs = proximityEvent.getTimestampNs();
logDebug("Sensor is: " + near + " at time " + timestampNs);
update(near, timestampNs);
logDebug("Sensor is: " + covered + " at time " + timestampNs);
update(covered, timestampNs);
}
@Override

View File

@@ -29,8 +29,8 @@ import android.view.MotionEvent;
import androidx.test.filters.SmallTest;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.util.DeviceConfigProxyFake;
import com.android.systemui.util.sensors.ProximitySensor;
import org.junit.After;
import org.junit.Before;
@@ -149,8 +149,17 @@ public class ProximityClassifierTest extends ClassifierTest {
motionEvent.recycle();
}
private ProximitySensor.ThresholdSensorEvent createSensorEvent(
boolean covered, long timestampMs) {
return new ProximitySensor.ThresholdSensorEvent(covered, timestampMs * NS_PER_MS);
private FalsingManager.ProximityEvent createSensorEvent(boolean covered, long timestampMs) {
return new FalsingManager.ProximityEvent() {
@Override
public boolean getCovered() {
return covered;
}
@Override
public long getTimestampNs() {
return timestampMs * NS_PER_MS;
}
};
}
}