This patch changes how callback unregistration works in order to be
consistent with undocumented use cases currently de-facto supported
by the API (although in a buggy way):
- callback recycling: releasing then reregistering a callback again.
- multiple request registrations with the same callback.
The second use case is not desirable but needs to be taken into account
for now for the purpose of correctly releasing NetworkRequests
registered in ConnectivityService.
In order to support request release in both use cases with minimal
amount of complexity for the time being the following changes are done:
- request to callback unmapping is done synchronously at callback
release time.
- all requests associated to a callback are unmapped at callback
release time.
This fixes the following issues:
- a callback stops being triggered as soon as it is released.
Otherwise when recycling the callback immediately, it is possible
the previous request associated with it triggers it, confusing the
app.
- when a callback is registered multiple times, the requests are not
leaked.
- when a callback is registered multiple times and then released, the
N-1 first registrations do not trigger the callback anymore.
In the future it would be desirable to enforce the intended 1:1 mapping
between callbacks and requests at registration time.
Bug: 35921499, 35955593, 20701525
Test: - added new tests in ConnectivityManagerTest to test releasing,
recycling, and a disabled test for no multiple regristration.
- new tests catch regression causing b/35921499, b/35955593.
Change-Id: Ia0917ac322fc049f76adb4743bc745989fed6d26
This patch introduces a new settings value to specify more than one url
for the fallback http probe in addition to the existing settings value.
If more than one url exists, a network will rotate urls for the fallback
probe one by one everytime the fallback probe is sent.
(not like commit 0908daaaf00e6b56ebed0a0fce9c3e3fe183a06b, this patch
uses a comma to separate fallback urls, which works as expected with
Java's String.split())
Test: built, flashed, tested manually with various portal networks.
Bug: 36532213
Change-Id: I3c010bfee5b99db03a500776fbf47959a29d0578
After discussion in the cl we agreed to use "|" as a separator. However String.split() input arg is a regex and not a literal string, so that "|" will actually split the urls characters per characters.
Will revert and resubmit with a comma.
This reverts commit 0908daaaf00e6b56ebed0a0fce9c3e3fe183a06b.
Change-Id: Ifab25e41bec806fbc1d2c13ffd81d4ad91598c89
This patch regroups various hardcoded http codes into well defined
constants. This reduces risk of errors and makes the captive portal
logic clearer.
This patch also fixes the logging when a captive portal detection
probe fails, to take into account https ssl handshake failures: for
well-behaved portals it is expected that the https probe will fail,
however the error message was written before the introduction of the
https probe and had become ambiguous.
Test: built, flashed, tested manually with various portal networks
Bug: 36532213
Change-Id: Ia15f77e268cb414816fc52f92835289f9a9ce92b
This patch introduces a new settings value to specify more than one url
for the fallback http probe in addition to the existing settings value.
If more than one url exists, a network will rotate urls for the fallback
probe one by one everytime the fallback probe is sent.
Test: built, flashed, tested manually with various portal networks.
Bug: 36532213
Change-Id: Icaa1f95c5914e8840c83ccdf071047358a5b760f
Add a default prefix for local only hotspot that will be used to
generate WifiConfiguration objects. This prefix will have
random digits appended to reduce AP name collisions.
Bug: 36704909
Test: compiles
Change-Id: I2b9478a12de27cabe13ece2973bce7cd4976ba2f
Having PHY_LE_* constants defined in four different places, with one
value being different than others is misleading. Leave just PHY_LE_*
definitions in BluetoothDevice, and add PHY_LE*_MASK for the mask used
in PHY update API.
This patch also removes need to translate PHY value between PHY update
request and event, as mask is used for request, and the value is
returned in event.
Bug: 30622771
Test: manual
Change-Id: I897effa1204a024465d55501c83c542566c4d37c
This groups them together with the rest of the networking unit
tests. It also speeds up compile/test cycles ("runtest -x" of one
file goes from 1m15s to 30s).
Test: runtest frameworks-net passes on internal tree
Change-Id: I53cb0c51355fe4b4b30e451fa09fbbf58da39efd
- Add getEmergencyCallbackMode() method in the TelephonyManager.java
to get the boolean value for ECBM callback mode from the phone through
ITelephony.aidl/java interface
- Use the added TelephonyManager Api to replace the 'get' of
PROPERTY_INECM_MODE system property in the framework/base
Test: manual
Bug: 30361624
Change-Id: I355d69820b157f23e077a95a13f8509ee0fa5874
dalvik-data-code-cache and dalvik-CompilerMetadata should be counted
in JITCache instead of .GC in dumpsys.
Bug: 37224159
Test: adb shell dumpsys meminfo -d
(cherry picked from commit 874c4cf56c0a9ea3b48468a13ec7fb78a3e2594b)
Change-Id: I41def949d91b2fdef0b3f502fe16ae436d058051