Commit Graph

1173 Commits

Author SHA1 Message Date
Etan Cohen
856f4a7d05 Merge commit '60df4aa' into merge2
Change-Id: I116a9dbf19e95651a7c50393e4dcd7fb59ca3f3f
2015-04-24 13:58:45 -07:00
Lorenzo Colitti
7e7decdc81 Allow apps with ACCESS_WIFI_STATE to listen for wifi networks
The compatibility measure introduced in bug 20081183 for apps
that connect to a Wi-Fi network without Internet access and then
expect to be able to use that network requires that such apps
register a NetworkCallback so that their WifiManager can pin them
to whatever wifi Network connects.

Currently, registering the callback requires ACCESS_NETWORK_STATE
and the app may not have that permission. Allow registering wifi
(only) callbacks if the app has ACCESS_WIFI_STATE.

If the app does not have ACCESS_WIFI_STATE (unlikely, since
CHANGE_WIFI_STATE is not very useful without ACCESS_WIFI_STATE),
then don't enable the compatibility measure.

Bug: 20081183
Bug: 20423580
Change-Id: Iad328d30c2d170dead883868fece3d922da68f6f
2015-04-22 12:01:35 +09:00
fenglu
3595251977 Merge "update API name to requestBandwidthUpdate()" 2015-04-22 01:32:19 +00:00
fenglu
b00f48834e update API name to requestBandwidthUpdate()
Change-Id: If26942978ffcc43f06f17dfad5da790f34758395
2015-04-21 17:12:05 -07:00
Robert Greenwalt
f780ac8cd6 Merge "Revert "requestBwUpdate() public API review"" 2015-04-21 23:59:35 +00:00
Robert Greenwalt
d915d64bd6 Revert "requestBwUpdate() public API review"
This reverts commit 85d7af1f8b.

Change-Id: I8c22d285ff1f56f1bd31a0fa9f2e6a79959347b1
2015-04-21 23:59:14 +00:00
Robert Greenwalt
3d9f44446a Merge "requestBwUpdate() public API review" 2015-04-21 23:55:48 +00:00
fenglu
85d7af1f8b requestBwUpdate() public API review
Change-Id: I1e780b2705d13bfc85a0a8712ac1dbd623b474a1
2015-04-21 15:33:19 -07:00
Erik Kline
934122fbbb Final removal of CONNECTIVITY_ACTION_IMMEDIATE.
Since the demise of the connectivity change delay,
CONNECTIVITY_ACTION_IMMEDIATE has been sent out back to back with
CONNECTIVITY_ACTION.

Interested parties should watch for CONNECTIVITY_ACTION.

Bug: 20013379
Change-Id: I072dddf95adb3bbd17fa1f7159d4ea848ade8f19
2015-04-21 17:02:34 +09:00
Stuart Scott
d546364a81 Move factoryReset to service and protect.
bug:16161518
Change-Id: I02d1bbae1887c62ee426e6f03e8bc1f18c6666bf
2015-04-20 10:52:35 -07:00
Erik Kline
d06906840a CONNECTIVITY_ACTION is the new _IMMEDIATE
Bug: 20013379
Change-Id: I3e904dc0a0ddb30c7bb8cdb24d0762052ddc59eb
2015-04-20 16:11:58 +09:00
Paul Jensen
60df4aaea6 Add captive portal API.
This API allows apps other than the system's CaptivePortalLogin
to handle signing in to captive portals.

bug:19416463
Change-Id: I27fce5856b635233e6ff66396d50ccabedd76cf5
2015-04-16 16:53:10 +00:00
Lorenzo Colitti
87a81fd19f Merge changes from topic 'wifi-alternate-reality'
* changes:
  Pin a process to wifi when it calls enableNetwork(..., true)
  Make CALLBACK_PRECHECK actually work.
2015-04-16 16:11:22 +00:00
fenglu
3f35740bd8 LCE service implementation - connectivity side
Change-Id: If11bd99c44c7dc8d2aa2bc05a10e04421739baa6
2015-04-16 02:53:39 -07:00
Lorenzo Colitti
0f6d6bdb0e Make CALLBACK_PRECHECK actually work.
Currently, CALLBACK_PRECHECK is never fired, because we attempt
to send it just after a network has connected, before matching
requests to that network. So notifyNetworkCallbacks scans the
list of requests for the network, finds none, and does nothing.

Bug: 20038463
Change-Id: Ib0c6377c45990e358f926217d7c7defa74c1d59b
2015-04-16 17:11:09 +09:00
fenglu
d39aecfa33 LCE service implementation - connectivity side
Change-Id: If11bd99c44c7dc8d2aa2bc05a10e04421739baa6
2015-04-15 23:13:52 -07:00
Vinit Deshpande
e80d3096ad Merge "am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release" 2015-04-16 02:36:30 +00:00
Lorenzo Colitti
6947c067bd Prompt if a network without an Internet connection is selected
When a network is explicitlySelected, keep it connected but do
not automatically switch to it. Instead, attempt to validate it,
and if 8 seconds have passed and the network is not yet
validated, prompt the user asking whether to switch to it anyway.

Bug: 20081183
Change-Id: I03a8459eb39979e3dc8e94662b85a44605dd7e69
2015-04-15 13:38:22 +09:00
Vinit Deshpande
fda5739846 am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release
557d2f5 Merge "Add ConnectivityManager.reportNetworkConnectivity() API" into m-wireless-dev
ab5267a Fix onLost/onFound logic in isSettingsAndFilterComboAllowed
b95d795 Add ConnectivityManager.reportNetworkConnectivity() API
238e0f9 OBEX Over L2CAP + SDP search API for BT profiles
1f56738 Add ConnectivityManager.getActiveNetwork(). Rework NetID allocation in ConnectivityService so registerNetworkAgent() can return the allocated NetID.
bf18bed Merge "Non-functional code cleanup of ConnectivityService." into m-wireless-dev
db8784e Merge "Cleanup of Video Call pause functionality." into m-wireless-dev
c7a1d23 Non-functional code cleanup of ConnectivityService.
e593d0a Onfound onlost feature.
0326f58 Merge "API for config app." into m-wireless-dev
e9b056f API for config app.
d5351e7 RTT framework interface update
224ab3d Unhide Network.openConnection(URL, Proxy).
bd2d378 Fix typos in ConnectivityManager documentation.

Change-Id: Ib4c88f6d7ad1b24227b032555c62a5804194384b
2015-04-14 16:15:02 -07:00
Paul Jensen
b95d7950f5 Add ConnectivityManager.reportNetworkConnectivity() API
This new API allows reporting networks that are perceived to provide Internet
connectivity and networks that are not.  This allows the framework to avoid
needlessly reevaluating networks where the apps perception matches the
framework's perception.  This was not possible with the prior API,
reportBadNetwork.

Bug: 16214361
Change-Id: Id4409bd7538854bd837231fb50e693c10a62b4f2
2015-04-13 18:48:54 +00:00
Paul Jensen
1f567385ff Add ConnectivityManager.getActiveNetwork().
Rework NetID allocation in ConnectivityService so registerNetworkAgent() can
return the allocated NetID.

Bug: 19416463
Change-Id: I68e395552cf27422c80b4dfae5db5d56a0d68f5d
2015-04-10 14:03:13 +00:00
Dianne Hackborn
522f038eec More work on device idle mode and other power stuff.
Add idle mode support to the alarm manager.  Introduce
a new concept of flags associated with alarms to tell
the alarm manager how to treat the alarm -- they allow
everything from the alarm that will bring us out of idle
mode, to alarms that are allowed when idle or should
also bring us out of idle.  The standalone boolean is
now also a flag.

(Note there is currently no protection from user space
setting the flags however it wants; I will be working
on that in a follow-up change.)

When in idle mode, the alarm manager pushes all alarms
that shouldn't execute during that time over to a
separate list that is not executed until out of idle.
To help with this, I reworked a bit how Alarm objects
are managed, so that when rebatching or moving between
lists we don't have to allocated new objects but can
just use the same existing instance.

Also tweaked the sync manager to deal with idle mode,
which currently just means doing the same thing as when
low on storage -- turning off sync.

Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts
that apps can listen for to know when the device is actively
charging and discharging.  These are better than the old
POWER_CONNECTED and POWER_DISCONNECTED ones because we only
report charging when we actually see that there is enough
power being provided to charge the battery (and will report
discharging if there is not enough power).

The job controller uses these new actions for scheduling
jobs that want to run while plugged in.  Removed the
"stable charging" stuff while doing so, since the new
charging state serves as an even better signal for that.

Introduced two new process states: FOREGROUND_SERVICE and
TOP_SLEEPING.  This will allow us to treat foreground services
specially (such as still allowing network access to them for
background music playback) while not mixing them together with
whatever happens to be the top activity while the device is
asleep.

Also some other small cleanup here and there.

Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
2015-04-09 14:05:17 -07:00
Paul Jensen
c7a1d23cdf Non-functional code cleanup of ConnectivityService.
1. Remove ConnectivityService.findConnectionTypeForIface() as this can be done
   just as easily with supported APIs now.
2. Avoid making copies of Network objects as this precludes reuse of Network
   internals (e.g. socket factory, connection pool).

Change-Id: I52f92e35d769d8350471f485e408169608630082
2015-04-08 07:46:49 -04:00
Adam Lesinski
ff3fc4c97d Adding per UID WiFi power distribution.
Change-Id: I88c539074607d7261f6c5cf1dbae47c3cf53f253
2015-04-07 11:37:10 -07:00
Bart Sears
0e40aa8377 Revert "Adding per UID WiFi power distribution."
This CL is breaking the clockwork settings app in master.  Reverting
until Adam has a chance to investigate.

This reverts commit 5ab174bac0.

Change-Id: Ieb11423c11cf9874a6175dce49843d0e1080c590
2015-04-07 06:14:04 +00:00
Adam Lesinski
5ab174bac0 Adding per UID WiFi power distribution.
Change-Id: Ia3d97e0a1c3352127185c18626d8ba8221c9ab40
2015-04-06 18:36:06 -07:00
Robert Greenwalt
6ee271c0b3 am 0270d86a: am 778f47e5: am 069f4cbc: Merge "Fix memory leak in Connectivity Service when phone app crashes"
* commit '0270d86ab755dabb7d20013dcb591d3facbe1a08':
  Fix memory leak in Connectivity Service when phone app crashes
2015-04-06 18:17:28 +00:00
Maunik Shah
d1027f5338 Fix memory leak in Connectivity Service when phone app crashes
Upon crash of com.android.phone process, NetworkFactoryInfo is
not getting removed from HashMap and will get accumulated on
every start of the process.

Change-Id: Iafde28daddfc82728c03208522682b1efc85a121
2015-04-04 21:48:24 +05:30
Alan Viverette
501ecd6dac Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
Paul Jensen
8357dfd520 Remove dead code, mostly DataStateTracker.
(cherry picked from AOSP commit 9edb1fc511)

Change-Id: I18c44cd08dfb51e02a96d0b726e9af1db21e3058
2015-03-18 12:29:13 -04:00
Andreas Gampe
8679a46283 resolved conflicts for merge of b6b9fe21 to master
Change-Id: If4f62aa1fd8bb774288a677e7008e86a7e3ea6d9
2015-03-13 00:04:10 -07:00
Wenchao Tong
e164e0063b NetworkStatsService to adjust VPN stats before recording.
* Creates a new Parcelable class VpnInfo to hold required
  parameters for VPN stats adjustments.
* ConnectivityService to collect infomation and provide
  a list of VpnInfo, one for each user.
* NetworkStatsService passes the VpnInfo array to
  NetworkStatsRecorder.
* NetworkStatsRecorder calls NetworkStats.migrateTun()
  to do the math.
* Poll NetworkStats when the vpn application calls
  setUnderlyingNetworks().

Bug: 19536273
Change-Id: I7a4c7726b8243fead10416f7ec6eb5cf95f20183
2015-03-12 17:43:41 -07:00
Lorenzo Colitti
a897c84357 Fix build, broken by https://android-review.googlesource.com/#/c/115890/
Change-Id: Ieafa2fb0a7f539d8f933ad9c98e3be80457da6e5
2015-03-12 16:48:12 +09:00
Paul Jensen
9edb1fc511 Remove dead code, mostly DataStateTracker.
Change-Id: I1433937bffdb29bd42fb1adbfcf0a50ceffac7dd
2015-03-11 10:03:58 -04:00
John Spurlock
c3c163f3f4 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
Lorenzo Colitti
4e858cbafa Make reportInetCondition revalidate if the report differs from our state
1. If reportInetCondition says the network is not working, and
   the network is already marked not validated, don't revalidate
   it. This was superfluous and should save battery.
2. If reportInetCondition says the network is working, and the
   network is not marked as validated, revalidated. This will
   allow us to get out of a validated state quickly based on app
   input (e.g., allowing GCM's exponential backoff timer to drive
   revalidation instead of our 10-minute timer).

Bug: 19258761
Bug: 19209043
Change-Id: Iaa4bac82d117ed1f4088dab106e6f6ce46b34bc3
2015-02-11 11:03:50 +09:00
Lorenzo Colitti
489eb043d7 Make getNetworkInfo() take into account VPN underlying networks.
If a user is subject to a VPN, getActiveNetworkInfo() will return
the VPN's underlying network (e.g., TYPE_WIFI), so that apps that
call getActiveNetworkInfo to answer questions like "is the device
connected to wifi?" will continue to work. Make getNetworkInfo
do this as well: if the query is for a network type that is
underlying the current user's VPN, then return that network.

Bug: 19196545
Change-Id: Ic5a651735b927c758594a26d26a03fbd704b52e6
2015-02-11 10:21:01 +09:00
Erik Kline
3891c36428 Merge "Log interface name and uid when filtering a blocked network." into lmp-mr1-dev 2015-01-22 07:07:36 +00:00
Erik Kline
6cb03e349b Log interface name and uid when filtering a blocked network.
Bug: 18707263
Change-Id: Ide9a1670a97eae787b785933de0c80750c2b5601
2015-01-21 12:02:11 +09:00
Robert Greenwalt
e8a912443a Fix legacy request removal.
Don't say we're disconnected from a legacy type until there are no outstanding requests for it.

bug:18946574
Change-Id: I8e45c4a7558f7ced0840b71c50081989ba13c1c7
2015-01-16 16:06:39 -08:00
Paul Jensen
831fb40ae5 Merge "Don't blindly teardown unvalidated networks when releasing NetworkRequests." into lmp-mr1-dev 2015-01-14 12:39:01 +00:00
Paul Jensen
9e078d2f14 Don't blindly teardown unvalidated networks when releasing NetworkRequests.
These networks may be on their way to becoming validated at which point
they could satisfy the default NetworkRequest.  This change unifies the
is-this-network-needed code into a single function.

bug:18652378
Change-Id: Ia511d5c66be79b47dd7c9348ec02784ab30b960c
2015-01-13 09:05:38 -05:00
Paul Jensen
40e43de8d0 Remember to cancel lingering when a network again satsifies a NetworkRequest.
When WiFi's score drops and then comes back up we would previously linger
WiFi but forget to cancel the linger timeout, so 30s later WiFi would
unexpectedly tear down.  This was not completely fixed in d5f5339.

bug:18826162
Change-Id: I7bb4b99ec969099e9815f46d4c09253be71a29be
2015-01-08 10:49:34 -05:00
Robert Greenwalt
70116ce13c Fix timing between bcast and net setup.
A legacy network type request would generate a bcast before the network
notification was sent - the legacy startUsingNetworkFeature API requires
the notification so it can bind your dns queries to the new network.
Fast-moving clients could try to use the network before it was ready.

bug:18792871
Change-Id: I24c46ef15c249c50bfc321f62756d1f66dc3a6a9
2014-12-19 11:54:27 -08:00
Lorenzo Colitti
5f82daecad Add a lastValidated bit and use it when reporting capabilities.
When we switched the way the status bar determines if a
connection is validated from using INET_CONDITION_ACTION
broadcasts to calling getDefaultNetworkCapabilitiesForUser(),
the statusbar stopped displaying ! when a network stopped having
working Internet connectivity. This is because the validated bit
is never set to false once a network is validated.

Fix this, hopefully temporarily, by introducing a new validated
bit that does go back to being false when a network no longer
has working connectivity, and use that bit in
getDefaultNetworkCapabilitiesForUser().

Bug: 18777225
Change-Id: I991c068be50252391d0e64c647fcf2e053dc82f9
2014-12-19 19:10:42 +09:00
Lorenzo Colitti
a8de5ca5cc Rename validated to everValidated.
This is a straight rename and thus a complete no-op from a
functionality perspective.

Bug: 18777225
Change-Id: I140d7640f1460c869a311294873772819a7a7059
2014-12-19 19:10:42 +09:00
Paul Jensen
0353fe5d99 Fix race between CONNECTIVITY_ACTION and setting default network.
Now that the delay between connectivity changes and CONNECTIVITY_ACTION
has been removed (ag/599650) races between CONNECTIVITY_ACTION and
the setting of the default network become more evident.
In http://crbug.com/441818 Chrome is calling getaddrinfo()
immediately after a device goes from no connectivity to cellular
connectivity, and Chrome is erroneously getting back EAI_NODATA
because netd hasn't yet set the default network for DNS resolutions.

bug:18757162
Change-Id: Ib607dcb3697403272a8c838713a9cb602e9c6820
2014-12-15 15:20:30 -05:00
Paul Jensen
7a0d9799c8 Merge "Fix several HTTP proxy issues with multinetworking." into lmp-mr1-dev 2014-12-11 04:51:16 +00:00
Paul Jensen
c0618a69f1 Fix several HTTP proxy issues with multinetworking.
1. Send PROXY_CHANGE_ACTION broadcast when any network's proxy changes,
   not just the default network.
2. When a process is bound to a particular Network, update the proxy
   system properties to those for the bound Network, and keep them
   updated when PROXY_CHANGE_ACTION broadcasts are received.
3. Make Network.openConnection() use the proxy for the Network.

bug:17905627
bug:17420465
bug:18144582

(cherry-pick of https://android-review.googlesource.com/#/c/115170)

Change-Id: Ia2819985e6108a8c121e74c683a5646becfd0a97
2014-12-10 15:22:12 -05:00
Erik Kline
63aba09c17 Merge "Re-remove CONNECTIVITY_CHANGE_DELAY and supporting functions." into lmp-mr1-dev 2014-12-10 07:29:47 +00:00