23 Commits

Author SHA1 Message Date
Robert Greenwalt
5a671d03e3 Cut logging, boost efficiency of ThrottleService
Changed the Alarms to be non-waking.

bug:2748959
bug:2747862
Change-Id: I9e4294162a4fc2f90aed36393b858edcf82aa307
2010-06-07 16:43:16 -07:00
Robert Greenwalt
d1055a250c Make the NTP Cache max-age gservices-settable
Trying to make Throttle polling more energy efficient.

bug:2708119
Change-Id: I2b75639e202dcbcee11047c43407a22de04ce350
2010-05-25 15:54:52 -07:00
Robert Greenwalt
fee4683f47 Fix ThrottleService wifi interaction
When we switch to another network (or even just lose mobile data) the mobile
interface is either brought down or destroyed altogether.  That means any
throttling rules we've told the kernel about get lost.

This change notices when our interface comes up and reinstates throttling
if needed.

bug:2660287
Change-Id: I4c6ebf78acc59ed66b95984a1e8b7c2ffbc22dcb
2010-05-06 16:45:43 -07:00
Robert Greenwalt
27fba6797b Fix Throttle reset.
The start and end times were precisely the same so, a ">" check needed to be ">=".
Also removed useless code and removed the potential problem where continuous gradual
advancement of your start and end times would prevent resets.

bug:2629717
Change-Id: Ieced1965a5611a9b555e92bcf924ec350f2a80db
2010-04-26 12:29:14 -07:00
Robert Greenwalt
cce83379ef Handle throttling being disabled via policy change
bug:2622543
Change-Id: Ic0c169094cdb4f80af9cfcbed116f59fda46a421
2010-04-23 17:35:29 -07:00
Robert Greenwalt
5bf16d6e8c Respond to changes in throttle policy.
We were updating limits and such before, but we were not applying them
to the current situation if we were already throttled.  Now it can result in
us throttling or changing our throttle rate or unthrottling or even making
the ui come or go (disabling/enable throttling)

bug:2622543
bug:2619879
Change-Id: I64a62634d54f4768ab8625f8d72f9f66a239cb19
2010-04-23 13:15:44 -07:00
Robert Greenwalt
fb9896b5cd Add a Throttle check shortly after boot.
Throttle is useless when ntp and imsi are not yet ready.  In the real world
the second check won't happen for 10 minutes letting people do what they want
for 10 minutes each boot.  Trim this down with a quicker first check.

bug:2614247
Change-Id: I84ec33f31e8fed37b3933482fbc187b8e9e94e79
2010-04-22 15:39:38 -07:00
Robert Greenwalt
bf7de39727 Trim throttle logs.
Removing unwanted sntp logging and throttle logging.

bug:2614927
Change-Id: Ic0b1c3502ebbc1f04130d09d715591af6513f439
2010-04-22 09:04:27 -07:00
Robert Greenwalt
05d0673bfc Misc fixes for throttling.
Cleanup of duplicate code
Caching Ntp data so we don't hit the network as often
Clearing out of MRU data when we switch to a new sim
Sending notification after we reset byte counts

bug:2605277
bug:2605272
bug:2597530
bug:2576057
Change-Id: I3df526bae6374f6ae56fed67b0defad2b4fabefd
2010-04-19 12:29:29 -07:00
Robert Greenwalt
7171ea8179 Make ThrottleService more tamper resistant.
Use elapsed time not wall time for alarms so users can't play with the
system time to get around things.

Also using NTP servers to pull in an authoritative time - if we the build
is configured with an NTP server we will not advance to the next cycle
without it, but we also will not trottle - rather not throttle users
on an error.

Note that the poll alarm is just relative to the last poll time and real
time doesn't matter.

Defining the time-fetching API's as returning time in the system wallclock
range (correcting if we are using NTP time internally).

bug:2597530
Change-Id: I1c0ac0923314c2f8a04edd0b36c4845352eae99a
2010-04-18 10:21:20 -07:00
Irfan Sheriff
cf28236b37 Dont check on interface value on API
The interface check in API could be used
in future.

Bug: 2576057
Change-Id: Icfb78a88be44d1e6a8350c4b65efe70970e658d8
2010-04-16 16:53:20 -07:00
Robert Greenwalt
e6e9882341 Add multi-sim support to ThrottleService.
Uses the last used data until the SIM is available (if ever).  Supports data from
several SIMs for all the world travelers out there.

bug: 2576057
Change-Id: I70e34a51f1c2ccda41a480652b0233b68ff3f538
2010-04-15 17:23:59 -07:00
Robert Greenwalt
8c7e609b53 Sholes mobile iface comes/goes - handle the reset
The byte counter for the iface goes to zero when it comes back.  Catch that and
do the complex math to correct.

Also add a log entry telling us our desired throttle index.

Lastly, reset the sec/msec part of our reset time so that one calc will == another and not
be off by little bits.

bug:25494925
Change-Id: I99525b72a76316a8e601ceb457ca202fae040bae
2010-04-14 17:31:20 -07:00
Robert Greenwalt
22b3644ac2 Update the datause icons.
bug:2576057
Change-Id: Idf57d59aecb9bcff635dafa1e77d90a8737a0c08
2010-04-14 09:13:53 -07:00
Robert Greenwalt
b8912f5481 Perist Throttle data across reboots
Never got SharedPreferences working for this system service.  Didn't really need it anyway.
Using a straight up file now.

bug:2576057
Change-Id: Idad926e8242a85e22718c25f3f6c03e5749badac
2010-04-13 16:42:29 -07:00
Robert Greenwalt
d3bb93f687 Add build config values for data use defaults
Don't use hard coded defaults - use build configs instead.

Iface is now ONLY set by config so gservices doesn't need to.

bug:2576057
Change-Id: I8f9e3bc51af3b1cdf8bb4290a43197d9c01e2a14
2010-04-13 15:44:34 -07:00
Robert Greenwalt
2a7b730378 Fix Throttle Notification intents
Now goes to the correct settings page.

bug:2576057
Change-Id: I21df0e53f7f56ae9bf71f983a3aed200c5ac217d
2010-04-12 14:56:31 -07:00
Robert Greenwalt
e2c0ce0363 Add warning magic to be a bit more reasonable.
Currently warns if you exceed more than 25% and 2*100%*timeUsed/(timeUsed+totalTime)

The formula means that imagining you've got half of the remaining time that you really have,
we will warn you if you would exceed the quota given your rate so far.  It's generous during the
early to mid-life and converges back to the limit as your timeUsed approaches totalTime.

bug:2576057
Change-Id: Id189de5b026f927ef478fd212d61d9e4ab5239e6
2010-04-09 16:07:08 -07:00
Robert Greenwalt
81aa0971d7 Make ThrottleService notice policy changes.
Added ContentObserver to watch relevant Secure Settings.
Also added new policy-change broadcast to let settings know.
Lastly reorged things a bit so that all of our broadcasts are sent at boot so the sticky ones
are populated.

bug:2576057
Change-Id: Ie11ffb057de9c801a5088612cd464ea062f3a666
2010-04-09 12:42:45 -07:00
Robert Greenwalt
5f996899b0 Roaming data doesn't count against limits
bug:2576057
Change-Id: I51a66e3b49a62e0186816ec0473814a216184e6b
2010-04-08 19:12:38 -07:00
Irfan Sheriff
c9b6851af6 Throttling framework addins
Add ThrottleManager in getSystemService
Add API for URL fetch

Bug: 2576057
Change-Id: Icd25c8b91ea4beea15c74e8ad7292ab48c962253
2010-04-08 16:53:32 -07:00
Robert Greenwalt
c87dc6dc90 Updating some notificiation UI for Throttling
String update and make one an ongoing notification.

bug:2576057
Change-Id: I7980f110c7eed8e8bf305490eddaa58e2949e3be
2010-04-08 16:00:26 -07:00
Robert Greenwalt
9e696c29f0 Add service to monitor/control the flow of data.
bug:2576057
Change-Id: Ib343c7ee1d619c6978910d9ee597db195d5aa3b6
2010-04-08 12:34:45 -07:00