When reloading wifi firmware, unsolicited responses from netd were
processed after softap had started and caused wifi tethering to be torn
down.
The NetworkManagementServer.wifiFirmwareReload call has been changed to
not only block for the command to finish, but also until all unsolicited
messages (interface updates) have been handled. We should now be able
to handle interface updates in tethering without suffering from the
softap bringup/interface down notification race condition.
BUG: 27857665
Change-Id: Ie57cb8f760781b3227df575b577b33667070d63e
This patches changes how captive portal tests and network lifecycle
events are logged as connectivity events:
- it splits NetworkMonitorEvent into two event classes:
- ValidationProbeEvent for logging individual probe events.
- NetworkEvent for logging network connection, validation,
lingering, and disconnection.
- it removes the redundant CaptivePortalCheckResultEvent class.
The information logged in CaptivePortalCheckResultEvent was already
logged by NetworkMonitorEvent, but missing the evaluation durations.
It is now logged by ValidationProbeEvent.
- it removes the CaptivePortalStateChangeEvent class, which is now
redundant with NetworkEvent, but missing evaluation durations.
In addition, it adds event logging when ConnectivityService puts a
network into lingering or removes a network from lingering.
Bug: 28204408
Change-Id: I8f9752e4d36175ecfcbd1545a01a41bad6e06ea4
Add a method that allows callers to wait until all unsolicited
responses received from the native daemon during a command are
processed.
When commands are issued to a native daemon (such as netd) through the
NativeDaemonConnector we block until the command response is received.
Any responses or events that are a side-effect (considered
"unsolicited") of the command are placed in a Message and handled as
callbacks. The order of their processing is not guaranteed and, as we
have seen from bugreports, can be handled several seconds
later - causing the SoftAP that was just set up to be torn down
because a late interface down/removed is indistinguishable from a
new interface down/removed.
This CL adds a method that first checks to make sure callback thread
is not the same thread as used for the blocking call. The new
waitForCallbacks method uses a CountDownLatch to force the calling
thread to wait until all unsolicited responses received from the
native daemon during the execution of the command are handled.
The wifiFirmwareReload method is also updated to use the new
waitForCallbacks method.
BUG: 27857665
Change-Id: I3e22978f720b1cbf57fbb64ad4fea73f8c2d408a
When subscription id's change during the animation, make sure to
clear them out as well. This happens when doing a network switch
on Fi.
Bug: 27434767
Change-Id: I9cbd65888419ca630e884c51d41a0d785237f35b
Stack bounds were wrong after moving all tasks from docked stack to
fullscreen stack, if fullscreen stack was created while moving.
This lead to very wrong bounds when rotating the screen the next
time.
Bug: 27870534
Change-Id: I6d054922ffc7baa7cd1a86d0d3448050cbacd21f
Rather than hoping the process will crash for some other reason, it is
better to just get rid of it right away. The Intent was not delivered,
so there are no guarantees that the app will continue to function
correctly.
Bug: 28196243
Change-Id: I036fbc5ffd42dc7259437cc5a733976478a2dd3a
* changes:
Revert "Death to synchronous transactions (2/2)"
Fix a few weird state issues from race-conditions
Fix lifecycle bug in when calling positionTask
Animation fixes when task is not resumed
Keep stack from mReuseTask
Final fixes for growing recents transition
The divider's layer assignment could change after the initial adjust
animation has finished.
bug: 28255739
Change-Id: I5899fe22e4fec680c49c881437c7f85d8ee9ca74
Also fixed a few more issues with the header util that could
lead to wrong states.
Change-Id: I95c3479f5d9e5221ee9e91120271e7957b887607
Fixes: 28295743
This reverts commit dd05f0365aa0df9ba9a7631c8e02ed67f472132d.
There seems to be some logic that gets triggered inside surface flinger
regarding commit time of the transaction, and without it seems that
animations got jankier. No time to investigate...
Bug: 28305789
Change-Id: I7261cf8719d3528f8f5bee19e507b8ba88b8b729
- When starting another transition while the dock transition
is already set, always override that because that transition
starts prolonged animations which will never be ended.
- Only dock if we get a good UP event.
Bug: 28257206
Change-Id: Icabfcf475f419696d2bcff8fbb53cf3b29dedd69
Sometimes the resumed activity from another stack gets positioned
BELOW the top activity of the current stack. We need to carry over
the mResumedActivity to make sure onPause is called on the moved
activity.
Bug: 28235047
Change-Id: I09e6b032cd8d0b00dc5fdd06bec68e53c25aae73
- Make sure to add the activity to mWaitingVisibleActivities
to not destroy the activity before the app transition has
started.
- Defer layouts in startActivityUnchecked so when clearing the
current activities in the current stack, we don't execute the
app transition yet. We need to wait until the new activities
are added as well.
Bug: 28026847
Change-Id: I252cf139e06197ea34329d1466f1f6162f3e7a30
When we launch an activity with CLEAR_TOP and NEW_TASK, we clear
all the activities in that task but then we don't reuse the stack,
which can lead to weirdness.
To fix this, we need to keep the target stack in that case.
Bug: 28000613
Change-Id: If85ade73b1036e8a7c0eda418d9f39e8596b8b16
- Make sure to reposition windows during animations to avoid that
they lag one frame behind.
- Don't put windows that are gone for layout into resizing mode.
- Don't layout windows that are gone for layout, to avoid resizing
the surface but the client won't draw anymore.
Change-Id: I809feffef00f9a086b44504126e03f509eb7f190
Fixes: 27855229