| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
The FoldStateListener is reporting non-foldable phones as unfolded.
Previously, Falsing relied on this being null.
Inspect the foldability of a device directly and incorporate this into
the FalsingDataProvider.
Bug: 274914759
Test: manual && atest SystemUITests:com.android.systemui.classifier
Change-Id: Ibe768067d69464b14368ae0d67110453f9368c6a
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The ZigZagClassifier falsly reports some swipes as false touches. The reason for that is in our touch event stream. The closing ACTION_UP event of a swipe might be a bit offseted from the previous ACTION_MOVE event and sometimes it is just enough to push us over the allowed tolerance.
In this fix we drop the gesture closing ACTION_UP event if it is close in time to a previous ACTION_MOVE event.
Fixes: 236197248
Test: atest swipe notifications on the LS and observe the FalsingManager logs
Test: atest SystemUI:com.android.systemui.classifier
Change-Id: I33093ff77fd23a2913bd3adfd79a15e3ae66b316
|
| |
|
|
|
|
|
|
|
| |
In ag/20887962 we introduced a way to skip checking for false touches, when a foldable device is unfolded. The problem is that this CL also disabled the falsing checks on non-foldable devices.
Fixes: 269594643
Test: atest BrightLineClassifierTest BrightLineFalsingManagerTest FalsingDataProviderTest
Test: enable FalsingManager logs, check if falsing is skipped on foldable and non-foldable devices.
Change-Id: I99ee7b717f0a417065655ccc3a0602839f44e40a
|
| |
|
|
|
|
|
|
|
| |
Exposes the already-known folded state on FoldStateListener
such that it can be queried when needed.
Bug: 236197248
Test: manually on a foldable && atest SystemUITests
Change-Id: I1bca6254b7e8528e0a999d8f171e0ee1f966aeb4
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The user switcher on the bouncer has a bunch of falsing checks. Check to
see if the click that is performed is from an accessibility action. If
this is the case, we do not perform a falsing check.
Test: Add a unit test. Used voice access and switch access to open the
user switcher and select an item in that list.
Bug: 221370490, 222211112
Change-Id: Ie9fce53ce11b68dc10f5c2513d3c6a600c51fafa
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When media controls are shown, the full qs+media controls often takes
up more than one full screen. Swiping up on this causes the qs to
vertically scroll instead of collapse.
Prior to this cl, we weren't analyzing such swipes in the
FalsingManager. Now we do.
No explicit action is taken in the event of a false swipe. It simply
gives us more signal. Enough bad swipes may implicitly cause the
lock screen to reset itself.
Fixes: 241708312
Test: manual
Change-Id: I5adfb3a22b2f0f51efb87d56a6cfc5459cd67006
|
| |
|
|
|
|
|
|
|
|
| |
Also, pause the proximity sensor directly when we dock/undock.
This ensures that we don't wait for some other event to occur
before changing the state of the proximity sensor.
Fixes: 192670703
Test: atest SystemUITests
Change-Id: If2b429639df76bbd4cf8adecc987dcf18ae45925
|
| |
|
|
|
|
|
|
|
| |
An NPE could happen, related to falsing, if the very
first gesture to happen is a tap on an ExpandableNotificationRow.
Fixes: 187196123
Test: atest SystemUITests
Change-Id: I8a82fc4d85ba5676a6c198a0b6ddb67009c8ad8e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Process gestures in the FalsingManager as soon as they complete,
instead of waiting for the next gesture to begin.
This provides more accurate and useful feedback about falsing belief.
It means that a falsing "event" will be fired as soon as the indicated
threshold is crossed, instead of on the next, possibly intentional
gesture.
Bug: 184042853
Test: atest SystemUITests && manual
Change-Id: Idd9227de3a03c52dabe31f52dbb45ff890615ded
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Renames onGestureComplete to onGestureFinalized to be more clear about
the purpose that the message serves.
Prior to this change, debug swipe records might be recorded mulptile
times.
Bug: 172655679
Test: manual
Change-Id: I334866f981ce0f4153f207e096b27eadfc1251ee
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makes the FalsingManager slightly less stateful (passing the
interaction type directly to the classifiers as needed). It also
includes more logging than we had before, listing all the failed
classifiers for a gesture, along with the HistoryTracker's
belief and confidence.
Logs are now delayed one gesture. Instead of immediately logging when
a falsing call is made, it waits until the gesture is marked as
complete. This confers two advantages:
1) If multiple calls to #isFalseGesture (and similar) are made, we
don't log multiple times. We only log the result once.
2) It allows us to log the effects on the HistoryTracker, as that only
updates itself when the gesture is marked as completed.
Bug: 172655679
Test: atest SystemUITests && manual
Change-Id: I653ac2abb03a91ff000b46075e58137b04226023
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were keeping an unbounded list of MotionEvents inside of the
FalsingManager. Generally, this list should have shrunk itself
periodically, but in practice it only shrank itself when someone
double taps a notification.
Meanwhile, we weren't even using the data in the list!
With this change, we only keep the current and prior list of
MotionEvents - the ones we actually use. The list of historical
events is removed, so the leak goes with it.
Fixes: 177329773
Test: atest SystemUITests && manual
Change-Id: If8bfeea944850d972434915018b5bbfb3acb80e4
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, the analysis of gestures actually gets added to our
HistoryTracker. Prior to this, HistoryTracker was only ever being
exercised in tests.
The one trick that this addresses is that invalid single-taps can't
immediately be added to the HistoryTracker, as they may become
_valid_ double taps. We don't want double taps to be penalized.
Bug: 172655679
Test: atest SystemUITests
Change-Id: I2e5ece6af82eb20f053b6b17298dcd9002236e39
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This institutes a HistoryTracker mechanism that will allow the
FalsingManager to take recent activity into account when classifying
gestures. The HistoryTracker returns a penalty that is pased to each
classifier for them to use when making decisions.
As of right now, no classifier actually uses the history penalty when
making a classification decision.
The HistoryTracker keeps records of the last 3 seconds of falsing
results, applying a decaying penalty to the results over time. It also
assigns a confidence to its results, based on how consistent they are.
Each individual classifier is also able to return a confidence score
now, such that, if they are not confident in their decision, they
don't throw off the score that gets stored in the HistoryTracker.
Confidences currently returned by the classifiers are somewhat
arbitrary and should be adjusted in future CLs.
Everything is currently open for adjustment:
- The length of history
- The decay function applied to history
- The method by which our confidence in the history is calculated
- The confidence returned by each individual classfier
- How the history penalty is taken into account by each classifier
- ... and probably more.
Bug: 172655679
Test: atest SystemUITests
Change-Id: Ief2a5144a0cda659c7d78ed6e489231d481b6872
|
| |
|
|
|
|
|
|
|
|
| |
Sets up some more dagger injection and removes all the
"new Classifier(...)" from its constructor, allowing them
to come from outside.
Bug: 172655679
Test: atest SystemUITests
Change-Id: I916de7d5ee60ec2183c6401ec222867fc5eff823
|
|
|
This CL separates out the two roles of the FalsingManager. It
introduces the FalsingCollector, used by SystemUI to report events
that may be interesting to Falsing, such as touch events, sensor
events, and general user actions.
The FalsingManager, meanwhile, continues to support the methods
This helps breakup the monolithic FalsingManger into more manageable
pieces, reducing the API surface area of FalsingManager significantly.
Bug: 172655679
Test: atest SystemUITests && manual
Change-Id: I92f8e3747f5c4a04eaa64e1a8b626c2a07c480aa
|