Throttling framework addins
Add ThrottleManager in getSystemService
Add API for URL fetch
Bug: 2576057
Change-Id: Icd25c8b91ea4beea15c74e8ad7292ab48c962253
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 950f34f..9019af6 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -67,6 +67,8 @@
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 @@
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<File, SharedPreferencesImpl> sSharedPrefs =
@@ -929,6 +932,8 @@
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 @@
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 298de6e..a12469d 100644
--- a/core/java/android/net/IThrottleManager.aidl
+++ b/core/java/android/net/IThrottleManager.aidl
@@ -35,4 +35,6 @@
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 0500f6f..79c2d6f 100644
--- a/core/java/android/net/ThrottleManager.java
+++ b/core/java/android/net/ThrottleManager.java
@@ -171,6 +171,19 @@
}
}
+ /**
+ * 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 eb14815..e640005 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -3333,6 +3333,13 @@
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
*/
public static final String[] SETTINGS_TO_BACKUP = {
diff --git a/services/java/com/android/server/ThrottleService.java b/services/java/com/android/server/ThrottleService.java
index 99dbfd5..64153b9 100644
--- a/services/java/com/android/server/ThrottleService.java
+++ b/services/java/com/android/server/ThrottleService.java
@@ -157,6 +157,12 @@
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) &&