1. Retry validation 3 times instead of 10.
Reducing the number of retries speeds up dead network detection
and saves battery on networks that are don't have Internet access
(or block our connectivity checks).
Retrying 10 times is overkill. Each attempt sends 5-10 DNS
requests, waits 10 seconds to transfer only 3 or 4 packets, and
can last up to tens of seconds. Also, in MR1 we now retry every
10 minutes.
2. Make periodic revalidation only try once.
When validating periodically to see if a non-working connection
is working again, only make one attempt every 10 minutes, not
three.
3. Rename "retries" to "attempts" to make things a bit clearer.
Bug: 18922569
Bug: 18869302
Change-Id: I5f70b420c4f1bac0c33bb9ab6afb322902cdac4b
Since we do not want to expose SubIds in the app layer, we need a
wrapper to extra the subId from a PhoneAccount and return the
value of TelephonyManager#line1Number.
Also update error strings to be more consistent.
Bug: 19087382
Change-Id: Ie5a474d45336921d1007b36a4d26cd4da68f8b91
In cases where networks are not properly configured, WiFi might tries to repeatdly switch from one network to a bad network, or might try to roam and renew DHCP which can fail. In KK, WiFi autojoin would try other networks (by cycling to network it sees) and end up associated to a "good" network. In L release even thought WiFi might pick a good network it will still repeatedly try to switch to what it thinks is a better network and fail, thus annoying the user whose connection becomes unstable. This CL tries to remember networks that have seen multiple DHCP or auth failure in the past and for those networks it disable roaming temporarily. That is, if wifi is not associated to any network, it will tries to join a network aggressively, however if wifi is currently associated to a network, it will not try to switch to a new network if that new network has seen multiple failure in the past. The maximum blacklist time is set to 2 days for now.
An example of such situation is:
- user has multiple SSID at home, one of which is incorrectly configured with a wrong password
- broken DHCP situation (potentially: multiple servers on home network, broken implementation incorrecting NAK'ing DHCP requests but properly serving DHCP offer...)
Bug:18792931
Change-Id: I332a9cebdc19be2e00b455205d386fcffcb70b29
To click a view we were computing a click location by ignoring overlapping
views that are actionable. However, detection whether a view is actionable
is not always possible as the view may handle touch events directly. This
leads to unhandled edge cases. We are taking a conservative approach and
ignore all overlapping siblings regardless if clickable. This is also has
limitations but hopefully less frequent edge cases.
bug:18889611
Change-Id: Icea0b7b3e2d4ed53e50e01cb6a99b880be560b14
If there is a window with the accessibility focus we want to click
on the accessibility focused view in this window. The logic to
compute the bounds of the window was using the wrong window id,
hence getting an incorrect result. As a consequence in some cases
the user could not click on accessiiblity focused controls in the
nav bar.
bug:18889611
Change-Id: I89aee3ae2ffe27fe29819049c287a7155154c65b
Bug: 19035637
If an app tries to call recycle() on a Bitmap that has
already been finalized it will result in use-after-frees. This is
bad. Avoid this by setting the pointer to 0 and checking for this
Change-Id: I12d73703a0f95b05fe4c2fd8e9c01b6a3f2f023b
In change Ic5b3fb75309893caae1a4f4b56068a543847f1f7, we added partial
support for the MTP properties:
MTP_PROPERTY_AUDIO_WAVE_CODE,
MTP_PROPERTY_BITRATE_TYPE
MTP_PROPERTY_AUDIO_BITRATE
MTP_PROPERTY_NUMBER_OF_CHANNELS
MTP_PROPERTY_SAMPLE_RATE
However we were not returning any values for these properties in the result
of the MTP GetObjectPropList command. Strangely, this triggers a nasty bug
in Windows 7 that results in data loss. When copying a directory containing
several MP3 files from one location on the device to another, Windows will
copy only some of the files to the new location, but delete all of the originals.
Finishing the implementation of these new object properties for some unknown
reason stops this bad behavior in Windows 7.
Bug: 19018427
Change-Id: I5fd3b91a89b31827d3100686445cef6795fe0f3f
If createUser returns null, we run into a NullPointerException
in createAndInitializeUser. This can happen when the policy
DISALLOW_ADD_USER is set.
Bug: 19121141
Change-Id: Id4bda832a243fa42c31eb5a176ecaa248aee68f5
When the restriction 'DISALLOW_SHARE_LOCATION' is applied or removed on a user
it is important to send out notifications to content observers of
LOCATION_PROVIDERS_ALLOWED.
Bug: 18995405
Change-Id: I8b3910a423a012ea9d15470eec101723c9f0eaf7
In K and earlier, we would connect to a network where the gateway
was not covered by the subnet mask of the IP address. This is an
invalid configuration, but it used to work, and other OSes appear
to accept it too, so support it.
Bug: 19067207
Change-Id: I822e1d754b336691b675438eefa959a3d75fd07b
Previously the time gap between the first and the second key event
for repeated keys(press-and-hold) can be bigger than the threshold,
which violates CEC spec. This CL rectifies it by managing its own
state rather than relying on Android key handler.
Bug: 19117830
Change-Id: Iedfa48f9ab826252e8616d1c3b7491e8b8333c81
This simplifies the code, and also makes it possible for
users to point multicast routes at the VPN. The LinkAddress
objects we were previously using to construct the RouteInfo do
not accept these, but IpPrefix objects do.
Bug: 18485968
Change-Id: Ie914a2eb359b78161810ee473df725059f944f4e
In function setBluetoothA2dpDeviceConnectionState, current code calculate
the delay of the second state update message to be exactly the same as the
last delayed messages. This causes a problem that the sequence of the
messages may be altered.
Bug: 19036411
Change-Id: I35762873fd3341ec098dd229ac96bd42d6f34195
In accessibility mode we calculate a point where to click in the accessibility
focused view as a bridge-gap solution before switching to accessibility click
actions. We cannot detect whether a view is covered by another one that consumes
all touch events, and therefore we may click on the wrong target. This was the
case with the toolbar. As a result a partially scrolled view in a scrollable
container covered by a toolbar cannot be activated and this is not an edge case.
bug:18986806
Change-Id: Ib41470c39806cec13e9b00b319879cd7f3412ab5