From c9b6851af68bdc20c4903b16c344e9f116647219 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Thu, 8 Apr 2010 14:12:33 -0700 Subject: [PATCH] Throttling framework addins Add ThrottleManager in getSystemService Add API for URL fetch Bug: 2576057 Change-Id: Icd25c8b91ea4beea15c74e8ad7292ab48c962253 --- core/java/android/app/ContextImpl.java | 17 +++++++++++++++++ core/java/android/net/IThrottleManager.aidl | 2 ++ core/java/android/net/ThrottleManager.java | 13 +++++++++++++ core/java/android/provider/Settings.java | 7 +++++++ .../com/android/server/ThrottleService.java | 6 ++++++ 5 files changed, 45 insertions(+) diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 950f34f55d11d..9019af6f138fb 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -67,6 +67,8 @@ import android.location.LocationManager; import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.IConnectivityManager; +import android.net.ThrottleManager; +import android.net.IThrottleManager; import android.net.Uri; import android.net.wifi.IWifiManager; import android.net.wifi.WifiManager; @@ -164,6 +166,7 @@ class ContextImpl extends Context { private static AlarmManager sAlarmManager; private static PowerManager sPowerManager; private static ConnectivityManager sConnectivityManager; + private static ThrottleManager sThrottleManager; private static WifiManager sWifiManager; private static LocationManager sLocationManager; private static final HashMap sSharedPrefs = @@ -929,6 +932,8 @@ class ContextImpl extends Context { return getPowerManager(); } else if (CONNECTIVITY_SERVICE.equals(name)) { return getConnectivityManager(); + } else if (THROTTLE_SERVICE.equals(name)) { + return getThrottleManager(); } else if (WIFI_SERVICE.equals(name)) { return getWifiManager(); } else if (NOTIFICATION_SERVICE.equals(name)) { @@ -1028,6 +1033,18 @@ class ContextImpl extends Context { return sConnectivityManager; } + private ThrottleManager getThrottleManager() + { + synchronized (sSync) { + if (sThrottleManager == null) { + IBinder b = ServiceManager.getService(THROTTLE_SERVICE); + IThrottleManager service = IThrottleManager.Stub.asInterface(b); + sThrottleManager = new ThrottleManager(service); + } + } + return sThrottleManager; + } + private WifiManager getWifiManager() { synchronized (sSync) { diff --git a/core/java/android/net/IThrottleManager.aidl b/core/java/android/net/IThrottleManager.aidl index 298de6e50ac61..a12469dd83c42 100644 --- a/core/java/android/net/IThrottleManager.aidl +++ b/core/java/android/net/IThrottleManager.aidl @@ -35,4 +35,6 @@ interface IThrottleManager long getCliffThreshold(String iface, int cliff); int getCliffLevel(String iface, int cliff); + + String getHelpUri(); } diff --git a/core/java/android/net/ThrottleManager.java b/core/java/android/net/ThrottleManager.java index 0500f6f7db9fe..79c2d6f81f2f4 100644 --- a/core/java/android/net/ThrottleManager.java +++ b/core/java/android/net/ThrottleManager.java @@ -171,6 +171,19 @@ public class ThrottleManager } } + /** + * returns the help URI for throttling + * {@hide} + */ + public String getHelpUri() { + try { + return mService.getHelpUri(); + } catch (RemoteException e) { + return null; + } + } + + private IThrottleManager mService; /** diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index eb14815c9e6f2..e64000536b18a 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3332,6 +3332,13 @@ public final class Settings { */ public static final String THROTTLE_IFACE = "throttle_iface"; + /** + * Help URI for data throttling policy + * @hide + */ + public static final String THROTTLE_HELP_URI = "throttle_help_uri"; + + /** * @hide */ diff --git a/services/java/com/android/server/ThrottleService.java b/services/java/com/android/server/ThrottleService.java index 99dbfd50d8050..64153b96289d9 100644 --- a/services/java/com/android/server/ThrottleService.java +++ b/services/java/com/android/server/ThrottleService.java @@ -157,6 +157,12 @@ public class ThrottleService extends IThrottleManager.Stub { return 0; } + public String getHelpUri() { + enforceAccessPermission(); + return Settings.Secure.getString(mContext.getContentResolver(), + Settings.Secure.THROTTLE_HELP_URI); + } + public synchronized long getByteCount(String iface, int dir, int period, int ago) { enforceAccessPermission(); if (iface.equals(mPolicyIface) &&