Loading core/java/android/provider/DeviceConfig.java +2 −1 Original line number Diff line number Diff line Loading @@ -775,8 +775,9 @@ public final class DeviceConfig { * * @param namespace The namespace these properties belong to. * @param keyValueMap A map between property names and property values. * @hide */ Properties(@NonNull String namespace, @Nullable Map<String, String> keyValueMap) { public Properties(@NonNull String namespace, @Nullable Map<String, String> keyValueMap) { Preconditions.checkNotNull(namespace); mNamespace = namespace; mMap = new HashMap(); Loading packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java +17 −11 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.systemui.plugins.FalsingPlugin; import com.android.systemui.plugins.PluginListener; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.util.AsyncSensorManager; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; Loading @@ -51,18 +52,23 @@ import javax.inject.Singleton; public class FalsingManagerProxy implements FalsingManager { private FalsingManager mInternalFalsingManager; private final Handler mMainHandler; private DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener; private final DeviceConfigProxy mDeviceConfig; private boolean mBrightlineEnabled; @Inject FalsingManagerProxy(Context context, PluginManager pluginManager, @Named(MAIN_HANDLER_NAME) Handler handler) { mMainHandler = handler; @Named(MAIN_HANDLER_NAME) Handler handler, DeviceConfigProxy deviceConfig) { mDeviceConfig = deviceConfig; mDeviceConfigListener = properties -> onDeviceConfigPropertiesChanged(context, properties.getNamespace()); setupFalsingManager(context); DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, command -> mMainHandler.post(command), properties -> onDeviceConfigPropertiesChanged(context, properties.getNamespace()) mDeviceConfig.addOnPropertiesChangedListener( DeviceConfig.NAMESPACE_SYSTEMUI, handler::post, mDeviceConfigListener ); final PluginListener<FalsingPlugin> mPluginListener = new PluginListener<FalsingPlugin>() { public void onPluginConnected(FalsingPlugin plugin, Context context) { FalsingManager pluginFalsingManager = plugin.getFalsingManager(context); Loading Loading @@ -91,9 +97,8 @@ public class FalsingManagerProxy implements FalsingManager { /** * Chooses the FalsingManager implementation. */ @VisibleForTesting public void setupFalsingManager(Context context) { boolean brightlineEnabled = DeviceConfig.getBoolean( private void setupFalsingManager(Context context) { boolean brightlineEnabled = mDeviceConfig.getBoolean( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, true); if (brightlineEnabled == mBrightlineEnabled && mInternalFalsingManager != null) { return; Loading @@ -109,10 +114,10 @@ public class FalsingManagerProxy implements FalsingManager { mInternalFalsingManager = new BrightLineFalsingManager( new FalsingDataProvider(context.getResources().getDisplayMetrics()), Dependency.get(AsyncSensorManager.class), KeyguardUpdateMonitor.getInstance(context) KeyguardUpdateMonitor.getInstance(context), mDeviceConfig ); } } /** Loading Loading @@ -305,6 +310,7 @@ public class FalsingManagerProxy implements FalsingManager { @Override public void cleanup() { mDeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigListener); mInternalFalsingManager.cleanup(); } } packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java +9 −6 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.classifier.Classifier; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -88,7 +89,8 @@ public class BrightLineFalsingManager implements FalsingManager { public BrightLineFalsingManager( FalsingDataProvider falsingDataProvider, SensorManager sensorManager, KeyguardUpdateMonitor keyguardUpdateMonitor) { KeyguardUpdateMonitor keyguardUpdateMonitor, DeviceConfigProxy deviceConfigProxy) { mKeyguardUpdateMonitor = keyguardUpdateMonitor; mDataProvider = falsingDataProvider; mSensorManager = sensorManager; Loading @@ -96,15 +98,16 @@ public class BrightLineFalsingManager implements FalsingManager { mMetricsLogger = new MetricsLogger(); mClassifiers = new ArrayList<>(); DistanceClassifier distanceClassifier = new DistanceClassifier(mDataProvider); ProximityClassifier proximityClassifier = new ProximityClassifier(distanceClassifier, mDataProvider); DistanceClassifier distanceClassifier = new DistanceClassifier(mDataProvider, deviceConfigProxy); ProximityClassifier proximityClassifier = new ProximityClassifier(distanceClassifier, mDataProvider, deviceConfigProxy); mClassifiers.add(new PointerCountClassifier(mDataProvider)); mClassifiers.add(new TypeClassifier(mDataProvider)); mClassifiers.add(new DiagonalClassifier(mDataProvider)); mClassifiers.add(new DiagonalClassifier(mDataProvider, deviceConfigProxy)); mClassifiers.add(distanceClassifier); mClassifiers.add(proximityClassifier); mClassifiers.add(new ZigZagClassifier(mDataProvider)); mClassifiers.add(new ZigZagClassifier(mDataProvider, deviceConfigProxy)); } private void registerSensors() { Loading packages/SystemUI/src/com/android/systemui/classifier/brightline/DiagonalClassifier.java +5 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE; import android.provider.DeviceConfig; import com.android.systemui.util.DeviceConfigProxy; /** * False on swipes that are too close to 45 degrees. * Loading @@ -42,14 +44,14 @@ class DiagonalClassifier extends FalsingClassifier { private final float mHorizontalAngleRange; private final float mVerticalAngleRange; DiagonalClassifier(FalsingDataProvider dataProvider) { DiagonalClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) { super(dataProvider); mHorizontalAngleRange = DeviceConfig.getFloat( mHorizontalAngleRange = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DIAGONAL_HORIZONTAL_ANGLE_RANGE, HORIZONTAL_ANGLE_RANGE); mVerticalAngleRange = DeviceConfig.getFloat( mVerticalAngleRange = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DIAGONAL_VERTICAL_ANGLE_RANGE, VERTICAL_ANGLE_RANGE); Loading packages/SystemUI/src/com/android/systemui/classifier/brightline/DistanceClassifier.java +9 −7 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.provider.DeviceConfig; import android.view.MotionEvent; import android.view.VelocityTracker; import com.android.systemui.util.DeviceConfigProxy; import java.util.List; /** Loading @@ -50,35 +52,35 @@ class DistanceClassifier extends FalsingClassifier { private boolean mDistanceDirty; private DistanceVectors mCachedDistance; DistanceClassifier(FalsingDataProvider dataProvider) { DistanceClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) { super(dataProvider); mVelocityToDistanceMultiplier = DeviceConfig.getFloat( mVelocityToDistanceMultiplier = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VELOCITY_TO_DISTANCE, VELOCITY_TO_DISTANCE); float horizontalFlingThresholdIn = DeviceConfig.getFloat( float horizontalFlingThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_FLING_THRESHOLD_IN, HORIZONTAL_FLING_THRESHOLD_DISTANCE_IN); float verticalFlingThresholdIn = DeviceConfig.getFloat( float verticalFlingThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VERTICAL_FLING_THRESHOLD_IN, VERTICAL_FLING_THRESHOLD_DISTANCE_IN); float horizontalSwipeThresholdIn = DeviceConfig.getFloat( float horizontalSwipeThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_SWIPE_THRESHOLD_IN, HORIZONTAL_SWIPE_THRESHOLD_DISTANCE_IN); float verticalSwipeThresholdIn = DeviceConfig.getFloat( float verticalSwipeThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VERTICAL_SWIPE_THRESHOLD_IN, VERTICAL_SWIPE_THRESHOLD_DISTANCE_IN); float screenFractionMaxDistance = DeviceConfig.getFloat( float screenFractionMaxDistance = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_SCREEN_FRACTION_MAX_DISTANCE, SCREEN_FRACTION_MAX_DISTANCE); Loading Loading
core/java/android/provider/DeviceConfig.java +2 −1 Original line number Diff line number Diff line Loading @@ -775,8 +775,9 @@ public final class DeviceConfig { * * @param namespace The namespace these properties belong to. * @param keyValueMap A map between property names and property values. * @hide */ Properties(@NonNull String namespace, @Nullable Map<String, String> keyValueMap) { public Properties(@NonNull String namespace, @Nullable Map<String, String> keyValueMap) { Preconditions.checkNotNull(namespace); mNamespace = namespace; mMap = new HashMap(); Loading
packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java +17 −11 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.systemui.plugins.FalsingPlugin; import com.android.systemui.plugins.PluginListener; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.util.AsyncSensorManager; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; Loading @@ -51,18 +52,23 @@ import javax.inject.Singleton; public class FalsingManagerProxy implements FalsingManager { private FalsingManager mInternalFalsingManager; private final Handler mMainHandler; private DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener; private final DeviceConfigProxy mDeviceConfig; private boolean mBrightlineEnabled; @Inject FalsingManagerProxy(Context context, PluginManager pluginManager, @Named(MAIN_HANDLER_NAME) Handler handler) { mMainHandler = handler; @Named(MAIN_HANDLER_NAME) Handler handler, DeviceConfigProxy deviceConfig) { mDeviceConfig = deviceConfig; mDeviceConfigListener = properties -> onDeviceConfigPropertiesChanged(context, properties.getNamespace()); setupFalsingManager(context); DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, command -> mMainHandler.post(command), properties -> onDeviceConfigPropertiesChanged(context, properties.getNamespace()) mDeviceConfig.addOnPropertiesChangedListener( DeviceConfig.NAMESPACE_SYSTEMUI, handler::post, mDeviceConfigListener ); final PluginListener<FalsingPlugin> mPluginListener = new PluginListener<FalsingPlugin>() { public void onPluginConnected(FalsingPlugin plugin, Context context) { FalsingManager pluginFalsingManager = plugin.getFalsingManager(context); Loading Loading @@ -91,9 +97,8 @@ public class FalsingManagerProxy implements FalsingManager { /** * Chooses the FalsingManager implementation. */ @VisibleForTesting public void setupFalsingManager(Context context) { boolean brightlineEnabled = DeviceConfig.getBoolean( private void setupFalsingManager(Context context) { boolean brightlineEnabled = mDeviceConfig.getBoolean( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, true); if (brightlineEnabled == mBrightlineEnabled && mInternalFalsingManager != null) { return; Loading @@ -109,10 +114,10 @@ public class FalsingManagerProxy implements FalsingManager { mInternalFalsingManager = new BrightLineFalsingManager( new FalsingDataProvider(context.getResources().getDisplayMetrics()), Dependency.get(AsyncSensorManager.class), KeyguardUpdateMonitor.getInstance(context) KeyguardUpdateMonitor.getInstance(context), mDeviceConfig ); } } /** Loading Loading @@ -305,6 +310,7 @@ public class FalsingManagerProxy implements FalsingManager { @Override public void cleanup() { mDeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigListener); mInternalFalsingManager.cleanup(); } }
packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java +9 −6 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.classifier.Classifier; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -88,7 +89,8 @@ public class BrightLineFalsingManager implements FalsingManager { public BrightLineFalsingManager( FalsingDataProvider falsingDataProvider, SensorManager sensorManager, KeyguardUpdateMonitor keyguardUpdateMonitor) { KeyguardUpdateMonitor keyguardUpdateMonitor, DeviceConfigProxy deviceConfigProxy) { mKeyguardUpdateMonitor = keyguardUpdateMonitor; mDataProvider = falsingDataProvider; mSensorManager = sensorManager; Loading @@ -96,15 +98,16 @@ public class BrightLineFalsingManager implements FalsingManager { mMetricsLogger = new MetricsLogger(); mClassifiers = new ArrayList<>(); DistanceClassifier distanceClassifier = new DistanceClassifier(mDataProvider); ProximityClassifier proximityClassifier = new ProximityClassifier(distanceClassifier, mDataProvider); DistanceClassifier distanceClassifier = new DistanceClassifier(mDataProvider, deviceConfigProxy); ProximityClassifier proximityClassifier = new ProximityClassifier(distanceClassifier, mDataProvider, deviceConfigProxy); mClassifiers.add(new PointerCountClassifier(mDataProvider)); mClassifiers.add(new TypeClassifier(mDataProvider)); mClassifiers.add(new DiagonalClassifier(mDataProvider)); mClassifiers.add(new DiagonalClassifier(mDataProvider, deviceConfigProxy)); mClassifiers.add(distanceClassifier); mClassifiers.add(proximityClassifier); mClassifiers.add(new ZigZagClassifier(mDataProvider)); mClassifiers.add(new ZigZagClassifier(mDataProvider, deviceConfigProxy)); } private void registerSensors() { Loading
packages/SystemUI/src/com/android/systemui/classifier/brightline/DiagonalClassifier.java +5 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE; import android.provider.DeviceConfig; import com.android.systemui.util.DeviceConfigProxy; /** * False on swipes that are too close to 45 degrees. * Loading @@ -42,14 +44,14 @@ class DiagonalClassifier extends FalsingClassifier { private final float mHorizontalAngleRange; private final float mVerticalAngleRange; DiagonalClassifier(FalsingDataProvider dataProvider) { DiagonalClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) { super(dataProvider); mHorizontalAngleRange = DeviceConfig.getFloat( mHorizontalAngleRange = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DIAGONAL_HORIZONTAL_ANGLE_RANGE, HORIZONTAL_ANGLE_RANGE); mVerticalAngleRange = DeviceConfig.getFloat( mVerticalAngleRange = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DIAGONAL_VERTICAL_ANGLE_RANGE, VERTICAL_ANGLE_RANGE); Loading
packages/SystemUI/src/com/android/systemui/classifier/brightline/DistanceClassifier.java +9 −7 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.provider.DeviceConfig; import android.view.MotionEvent; import android.view.VelocityTracker; import com.android.systemui.util.DeviceConfigProxy; import java.util.List; /** Loading @@ -50,35 +52,35 @@ class DistanceClassifier extends FalsingClassifier { private boolean mDistanceDirty; private DistanceVectors mCachedDistance; DistanceClassifier(FalsingDataProvider dataProvider) { DistanceClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) { super(dataProvider); mVelocityToDistanceMultiplier = DeviceConfig.getFloat( mVelocityToDistanceMultiplier = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VELOCITY_TO_DISTANCE, VELOCITY_TO_DISTANCE); float horizontalFlingThresholdIn = DeviceConfig.getFloat( float horizontalFlingThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_FLING_THRESHOLD_IN, HORIZONTAL_FLING_THRESHOLD_DISTANCE_IN); float verticalFlingThresholdIn = DeviceConfig.getFloat( float verticalFlingThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VERTICAL_FLING_THRESHOLD_IN, VERTICAL_FLING_THRESHOLD_DISTANCE_IN); float horizontalSwipeThresholdIn = DeviceConfig.getFloat( float horizontalSwipeThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_SWIPE_THRESHOLD_IN, HORIZONTAL_SWIPE_THRESHOLD_DISTANCE_IN); float verticalSwipeThresholdIn = DeviceConfig.getFloat( float verticalSwipeThresholdIn = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_VERTICAL_SWIPE_THRESHOLD_IN, VERTICAL_SWIPE_THRESHOLD_DISTANCE_IN); float screenFractionMaxDistance = DeviceConfig.getFloat( float screenFractionMaxDistance = deviceConfigProxy.getFloat( DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_DISTANCE_SCREEN_FRACTION_MAX_DISTANCE, SCREEN_FRACTION_MAX_DISTANCE); Loading