summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-09-16 01:52:39 -0700
committerJeff Sharkey <jsharkey@android.com>2011-09-16 18:28:39 -0700
commita83a24f48a8286ee3d67acc5fdcfb723acc56ada (patch)
treebb80fefaa893f5df89bc5359466dddf433431f67 /src/com
parenta9efa2c2eafcd02a15138fc768b0492698e915fa (diff)
downloadpackages_apps_Settings-a83a24f48a8286ee3d67acc5fdcfb723acc56ada.tar.gz
packages_apps_Settings-a83a24f48a8286ee3d67acc5fdcfb723acc56ada.tar.bz2
packages_apps_Settings-a83a24f48a8286ee3d67acc5fdcfb723acc56ada.zip
Surface tethering stats in data usage.
Bug: 5244846 Change-Id: Ib4ac03ab634278714576a66ef8d6fdbc6d15c82a
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/DataUsageSummary.java5
-rw-r--r--src/com/android/settings/Utils.java30
-rw-r--r--src/com/android/settings/WirelessSettings.java24
-rw-r--r--src/com/android/settings/net/UidDetailProvider.java9
4 files changed, 43 insertions, 25 deletions
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index bbc3606ec..d6c40b2d3 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -35,6 +35,8 @@ import static android.net.NetworkTemplate.buildTemplateMobile3gLower;
import static android.net.NetworkTemplate.buildTemplateMobile4g;
import static android.net.NetworkTemplate.buildTemplateMobileAll;
import static android.net.NetworkTemplate.buildTemplateWifi;
+import static android.net.TrafficStats.UID_REMOVED;
+import static android.net.TrafficStats.UID_TETHERING;
import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
import static android.text.format.Time.TIMEZONE_UTC;
@@ -68,7 +70,6 @@ import android.net.NetworkPolicyManager;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
-import android.net.TrafficStats;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.INetworkManagementService;
@@ -1411,7 +1412,7 @@ public class DataUsageSummary extends Fragment {
final int uid = entry.uid;
final boolean isApp = uid >= android.os.Process.FIRST_APPLICATION_UID
&& uid <= android.os.Process.LAST_APPLICATION_UID;
- if (isApp || uid == TrafficStats.UID_REMOVED) {
+ if (isApp || uid == UID_REMOVED || uid == UID_TETHERING) {
AppUsageItem item = knownUids.get(uid);
if (item == null) {
item = new AppUsageItem(uid);
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 20a34a38a..90336e2e1 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -393,4 +393,34 @@ public class Utils {
list.setPadding(effectivePaddingSide, 0, effectivePaddingSide, paddingBottom);
}
}
+
+ /**
+ * Return string resource that best describes combination of tethering
+ * options available on this device.
+ */
+ public static int getTetheringLabel(ConnectivityManager cm) {
+ String[] usbRegexs = cm.getTetherableUsbRegexs();
+ String[] wifiRegexs = cm.getTetherableWifiRegexs();
+ String[] bluetoothRegexs = cm.getTetherableBluetoothRegexs();
+
+ boolean usbAvailable = usbRegexs.length != 0;
+ boolean wifiAvailable = wifiRegexs.length != 0;
+ boolean bluetoothAvailable = bluetoothRegexs.length != 0;
+
+ if (wifiAvailable && usbAvailable && bluetoothAvailable) {
+ return R.string.tether_settings_title_all;
+ } else if (wifiAvailable && usbAvailable) {
+ return R.string.tether_settings_title_all;
+ } else if (wifiAvailable && bluetoothAvailable) {
+ return R.string.tether_settings_title_all;
+ } else if (wifiAvailable) {
+ return R.string.tether_settings_title_wifi;
+ } else if (usbAvailable && bluetoothAvailable) {
+ return R.string.tether_settings_title_usb_bluetooth;
+ } else if (usbAvailable) {
+ return R.string.tether_settings_title_usb;
+ } else {
+ return R.string.tether_settings_title_bluetooth;
+ }
+ }
}
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index ccbc87abc..7c52413c7 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -163,30 +163,8 @@ public class WirelessSettings extends SettingsPreferenceFragment {
if (!cm.isTetheringSupported()) {
getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS));
} else {
- String[] usbRegexs = cm.getTetherableUsbRegexs();
- String[] wifiRegexs = cm.getTetherableWifiRegexs();
- String[] bluetoothRegexs = cm.getTetherableBluetoothRegexs();
-
- boolean usbAvailable = usbRegexs.length != 0;
- boolean wifiAvailable = wifiRegexs.length != 0;
- boolean bluetoothAvailable = bluetoothRegexs.length != 0;
-
Preference p = findPreference(KEY_TETHER_SETTINGS);
- if (wifiAvailable && usbAvailable && bluetoothAvailable) {
- p.setTitle(R.string.tether_settings_title_all);
- } else if (wifiAvailable && usbAvailable) {
- p.setTitle(R.string.tether_settings_title_all);
- } else if (wifiAvailable && bluetoothAvailable) {
- p.setTitle(R.string.tether_settings_title_all);
- } else if (wifiAvailable) {
- p.setTitle(R.string.tether_settings_title_wifi);
- } else if (usbAvailable && bluetoothAvailable) {
- p.setTitle(R.string.tether_settings_title_usb_bluetooth);
- } else if (usbAvailable) {
- p.setTitle(R.string.tether_settings_title_usb);
- } else {
- p.setTitle(R.string.tether_settings_title_bluetooth);
- }
+ p.setTitle(Utils.getTetheringLabel(cm));
}
}
diff --git a/src/com/android/settings/net/UidDetailProvider.java b/src/com/android/settings/net/UidDetailProvider.java
index 9eac801fe..0518b0bac 100644
--- a/src/com/android/settings/net/UidDetailProvider.java
+++ b/src/com/android/settings/net/UidDetailProvider.java
@@ -22,11 +22,13 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
+import android.net.ConnectivityManager;
import android.net.TrafficStats;
import android.text.TextUtils;
import android.util.SparseArray;
import com.android.settings.R;
+import com.android.settings.Utils;
public class UidDetailProvider {
private final Context mContext;
@@ -71,6 +73,13 @@ public class UidDetailProvider {
detail.icon = pm.getDefaultActivityIcon();
mUidDetailCache.put(uid, detail);
return detail;
+ case TrafficStats.UID_TETHERING:
+ final ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(
+ Context.CONNECTIVITY_SERVICE);
+ detail.label = res.getString(Utils.getTetheringLabel(cm));
+ detail.icon = pm.getDefaultActivityIcon();
+ mUidDetailCache.put(uid, detail);
+ return detail;
}
// otherwise fall back to using packagemanager labels