Some changes in IpConfigStore to parse old backup data. The old backup
data contained a raw byte dump of the ipconfig.txt. So, make changes in
IpConfigStore to parse the inputstream from backup data into
IpConfiguration objects.
Changes in the CL:
1. Make the |readIpAndProxyConfigurations| method static so that
it can be used as a utility for parsing the backup data.
2. Create a new version of |readIpAndProxyConfigurations| method to
accept an input stream parameter.
3. Make |writeConfig| method static so that it can be used for
unit-testing the backup migration logic.
BUG: 29075035
Change-Id: Ic074952d9f9ef143089a371e6c527470cb1c229c
(cherry picked from commit 06fe328c4f)
Expose new API's to retrieve data to be backed up for Wifi
configurations and to restore configurations from the data.
BackupSettingsAgent will invoke these API's to backup/restore wifi
settings.
BUG: 28967335
Change-Id: I64e2f37a29d538d976bcc53dd2165653073b5862
(cherry picked from commit 7bc0adbced)
Add the missing XML to byte array conversion method.
While there,
1. Fix writeByteArrayXml method to store the hex chars of the value.
2. Cleanup couple of error strings in |readThisIntArrayXml| method.
BUG: 29039296
Change-Id: I6386f7df7c5c8b7bc3bc5a268196da617209cea9
TEST: Compiles & manual testing.
(cherry picked from commit 651209b597)
Since the number of tetherable interfaces should be small (e.g. <10),
the computational cost of a looking up objects in an ArrayMap is negligible,
and the memory required is less than a HashMap.
While here, remove some unused imports.
Change-Id: I3fb7091cfb93697d2fc6388b843d60f7e8e7e1a6
Test: Compiles.
(cherry picked from commit 36f6f4e394)
This pushes all TetheredState cleanup logic into a single place.
All new unittests fail without the changes to TetherInterfaceSM.
Bug: 28915272
Test: Compiles, unittests pass, WiFi tethering continues to work.
Change-Id: Ia7bf210e00e9a54f2797baebc2e5333ce314c947
(cherry picked from commit f54c5a932a)
APCT needs a little additional magic to pick up JUnit4 tests.
Bug: 28958508
Test: Tests continue to pass
Change-Id: Ia45d91bb3b06e60e3a46ffe738d4468356e066b3
(cherry picked from commit d905add474)
Stop passing Tethering's mutex into TetherInterfaceSM, and instead
simply rely on Tethering to acquire its own mutex when accessing
instances of TetherInterfaceSM.
While here, remove some boolean fields (previously guarded by the mutex)
which duplicate state information.
Change-Id: Ie6b2128970981786a5d64fbf700c9f3d0a6721fb
Test: Compiles, unittests pass, WiFi tethering continues to work.
Bug: 28910007
(cherry picked from commit 4bc8d6b1ac)
Because no code outside of unittests ever issued these commands
to TetherInterfaceSM, we never executed any of the removed codepaths.
Change-Id: Id54f6e4eaeff8b3486cd78ddcc8c2a31011e6436
Test: Compiles. Unittests continue to pass.
Bug: 28798823
(cherry picked from commit 2ea4166c74)
This state immediately switched into the TetheredState.
We can safely remove it at only the expense of a misleading state
broadcast.
Bug: 28798823
Test: runtest frameworks-services -c
com.android.server.connectivity.tethering.TetherInterfaceSMTest
Change-Id: I295d830dbdb11717d6e05161d97787ffe871beb3
(cherry picked from commit 79e7fde00d)
Add tests for most normal case operations:
- State machine startup.
- Entering a tethered state (as USB interface and not)
- Handling the first notification of an upstream interface
- Handle changes in upstream interface
- Handle unrequested teardown correctly
Bug: 28833951
Test: These tests pass
Change-Id: I2c0c9141bab9eaa92faec8de10fa653fb6236a74
(cherry picked from commit 1b3830a2af)
Prove that the concept works by writing a trivial test.
Bug: 28833951
Test: `runtest frameworks-services -c
com.android.server.connectivity.tethering.TetherInterfaceSMTest`
Change-Id: I51911cef7f0d5165221845070befd085497c21a6
(cherry picked from commit 1cc6ffd2b3)
Attempt to keep all existing logic in place, except:
+ Marked a constructor as public, rather than default visible.
+ Added TAG, DBG, VDBG, and decoder ringer statics.
+ Moved static constants related to USB IPs into TetherInterfaceSM.
Bug: 28833951
Test: WiFi Tethering works on angler.
Change-Id: Id961220a9045832354cfe7381e5e9c0d8f54bf90
(cherry picked from commit e3f93b02bd)
Remove references from the class into the containing class:
- Move functionality to bring up a USB interface into the class itself.
- Extract an interface to wrap methods where TetherInterfaceSM was
calling into other private classes of Tethering
- Inject necessary dependendencies into TetherInterfaceSM instances.
Bug: 28833951
Test: Compiles.
Change-Id: Ic96947417cf8734072d027b0f1cba8a1a1be7a74
(cherry picked from commit 9a509ca728)
Add a WifiLock mode representing that no locks are held (@hide).
Bug: 28669096
Change-Id: I774d5ff226e7c639812f9735555c8ea1ed6444af
Test: compiles and runtest frameworks-wifi
(cherry picked from commit df547e04c3)
This permits sharing of test components used in connectivity tests.
Rename the MockLooper to TestLooper, reflecting that it is not a
true mock, but a manually controlled Looper for use in tests.
Bug: 28848133
Test: Tests consuming this library pass.
Change-Id: I57e11f9544c7bffdb02739ab2a921512b1b11874
(cherry picked from commit 07630f6bd3)
Mark final fields as such.
Group mutex protected fields together with the mutex that protects them.
Always access mutex protected fields under the mutex.
Bug: 28798823
Change-Id: I96cdd5e063babb73e9f124107c5576c47801f34b
Test: Compiles, Wifi tethering continues to work on angler.
(cherry picked from commit 7b30e548a5)
This makes the file structure match the package declaration.
Bug: None
Change-Id: Id6999e1857322f6dfd4caf805002398f08c378d6
Test: Eclipse stops complaining.
(cherry picked from commit 5b9903189c)
Add some missing @Override annotations, and mark some constants
as unused.
Bug: 28799169
Change-Id: I1ddef87ecb089b62e299544ae94a21d10ef42d98
Test: Compiles.
(cherry picked from commit b41e74f41e)
Provide API for NAN RTT through WifiNanManager. While NAN RTT could be executed
directly through RttManager the peer information is hidden by WifiNanManager (no
MAC address is exposed). Using WifiNanManager keeps the information hidden.
Bug: 26564277
Change-Id: I8deeb3f9e360dc05f2ea175d115f287590d50322
(cherry picked from commit fb8021c837)
Duplicates the WIFI_NAN_STATE_CHANGED_ACTION broadcast. Remove
all state information from manager.
Bug: 28622807
Change-Id: I00632b216edb2dd74412861c4b46f01adec5a271
(cherry picked from commit cbf3759332)
1. Add a new "permanently" disabled network selection status for disabling
networks after a user switch.
2. Add a new "temporarily" disabled network selection status for disabling
networks when WPS is enabled.
BUG: 28219928
Change-Id: I4ab7333ebaa830dadf73f317fd6bb81a02054235
(cherry picked from commit a6fac3eb6b)
Additional annotations on (what are planned to be) public APIs.
Fixed exposed API: @hide to a few new methods.
Bug: 27122760
Change-Id: Iea91de1b1c3c32a93378b5d90c1e88d994a10526
(cherry picked from commit d775a164c3)
Add master switch to enable/disable usage of NAN. Tie into Wi-Fi
state machine (to enable/disable based on Wi-Fi enable/disable).
Dispatch broadcasts when NAN status changes.
Bug: 27698011
Change-Id: Iea36388443ff8d0dc26a280220022c6bdba6a0c8
(cherry picked from commit d3137af102)
Simplify flow: configure and connect in a single call.
Prevent info leak: no longer provide configuration back to caller.
Update error status codes
Bug: 27617910
Bug: 27553226
Bug: 27579450
Bug: 27674927
Change-Id: Id7aba816a074dbbe0cb188cfe498c97dccbdcb27
(cherry picked from commit 52b3a24a02)
All events dispatched by default - there's no reason to ignore events.
The specific identity changed events for which there are use-cases to
get or ignore is controlled through a new configuration.
(cherry-pick of a5ed693788)
Bug: 27607613
Change-Id: I289a36157b55270c58311a016ef79f8746e0e0a0
(cherry picked from commit 574b3fb810)
Merge onPublishFail & onSubscribeFail into onSessionConfigFail.
Merge onPublishTerminated & onSubscribeTerminated into onSessionTerminated.
A session is either publish or subscribe (never the two) so redundant.
(cherry-pick of 8414f5cf2b)
Bug: 27610709
Change-Id: I0282d17db88754428da25ee5f064b9a4805f9736
(cherry picked from commit 776ba56e53)
Controlling session callback invocation:
- Remove event registration
- Add configurations to the subset (actually just termination) which
can be configured through the HAL
(cherry-pick of e393f57d0d)
Bug: 27607613
Change-Id: I608314cc2a9b077b4d5a2d2d0d315d55c6a7724b
(cherry picked from commit f6062eef20)
Match style allows apps to configure getting a single notification
or continuous notifications (for all matches).
(cherry-pick of 8ef7453416)
Bug: 27568256
Change-Id: I9b7bd2e4e58af5c73188267d11c1288a93cf64ed
(cherry picked from commit 12213fb12d)
Per API guidelines - non-overlapping constants can be (should be)
named with "FLAG".
(cherry-pick of ad3693d59b,
Change-Id: If8b2c0f9b2818215a64b5635e76731c8fdfd3b8d)
Bug: 27122760
Change-Id: I973d24f4f318471286087e6ae13b77cb119f01e7
(cherry picked from commit e698fab45c)
The interfaces had multiple functions and are hence callback
and not a listener.
Note: purely a rename operation.
(cherry-pick of 0d0f0c7faf,
Change-Id: Ib12711f56a64052455843859125d72268c465fc0)
Bug: 27122760
Change-Id: Ie1905a5d907e5b09d449af52814b1aacb6426477
(cherry picked from commit 4e1af1b807)
Add the concept of a client ID which is used to identify a specific
(one of several) clients in all API calls.
(cherry-pick of aa36f07194,
Change-Id: I43f13d51bee8b57c6d0ba1174168288b8d6c21c5)
Bug: 26962024
Change-Id: I0e0ddf37ea9800ae97115d6af384b54b49a40d74
(cherry picked from commit 5155990c09)
eglChooseConfig should return false only if an error occured.
If eglChooseConfig is called with a valid attribute list,
no internal EGL errors occur. And if no available config matches
the requested attribute list, no configs are returned.
Not only the return value of eglChooseConfig should be checked,
the 'num_config' out-param must be inspected too.
If no configs were returned, and no error occurred, then 'num_config' will be 0.
Change-Id: Id36d88820b8e33713bc83e0d4b90c3fee7f005fd
Signed-off-by: Xiaowen Liu <xiaowen.liu@nxp.com>