diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index 1e6e141..f1b5fa5 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -352,7 +352,7 @@
Show net activity
Disabled
Statusbar
- Expanded Statusbar
+ Expanded header
Net activity autohide threshold (KB/s)
Show arrows
Show the network traffic indicator arrows
diff --git a/res/xml/traffic.xml b/res/xml/traffic.xml
index 6768376..50e9a11 100644
--- a/res/xml/traffic.xml
+++ b/res/xml/traffic.xml
@@ -12,7 +12,7 @@
-->
diff --git a/src/com/cherish/settings/fragments/Traffic.java b/src/com/cherish/settings/fragments/Traffic.java
index ad2cf55..7e0dc86 100644
--- a/src/com/cherish/settings/fragments/Traffic.java
+++ b/src/com/cherish/settings/fragments/Traffic.java
@@ -66,9 +66,7 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC
mNetTrafficLocation = (ListPreference) findPreference("network_traffic_location");
int location = Settings.System.getIntForUser(resolver,
- Settings.System.NETWORK_TRAFFIC_LOCATION, 0, UserHandle.USER_CURRENT);
- mNetTrafficLocation.setValue(String.valueOf(location));
- mNetTrafficLocation.setSummary(mNetTrafficLocation.getEntry());
+ Settings.System.NETWORK_TRAFFIC_VIEW_LOCATION, 0, UserHandle.USER_CURRENT);
mNetTrafficLocation.setOnPreferenceChangeListener(this);
int trafvalue = Settings.System.getIntForUser(resolver,
@@ -78,7 +76,16 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC
mThreshold.setOnPreferenceChangeListener(this);
mShowArrows = (SystemSettingSwitchPreference) findPreference("network_traffic_arrow");
- updateTrafficLocation(location);
+ int netMonitorEnabled = Settings.System.getIntForUser(resolver,
+ Settings.System.NETWORK_TRAFFIC_STATE, 0, UserHandle.USER_CURRENT);
+ if (netMonitorEnabled == 1) {
+ mNetTrafficLocation.setValue(String.valueOf(location+1));
+ updateTrafficLocation(location+1);
+ } else {
+ mNetTrafficLocation.setValue("0");
+ updateTrafficLocation(0);
+ }
+ mNetTrafficLocation.setSummary(mNetTrafficLocation.getEntry());
}
@Override
@@ -96,10 +103,20 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC
if (preference == mNetTrafficLocation) {
int location = Integer.valueOf((String) objValue);
int index = mNetTrafficLocation.findIndexOfValue((String) objValue);
- Settings.System.putIntForUser(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_LOCATION, location, UserHandle.USER_CURRENT);
mNetTrafficLocation.setSummary(mNetTrafficLocation.getEntries()[index]);
- updateTrafficLocation(location);
+ if (location > 0) {
+ // Convert the selected location mode from our list {0,1,2} and store it to "view location" setting: 0=sb; 1=expanded sb
+ Settings.System.putIntForUser(getActivity().getContentResolver(),
+ Settings.System.NETWORK_TRAFFIC_VIEW_LOCATION, location-1, UserHandle.USER_CURRENT);
+ // And also enable the net monitor
+ Settings.System.putIntForUser(getActivity().getContentResolver(),
+ Settings.System.NETWORK_TRAFFIC_STATE, 1, UserHandle.USER_CURRENT);
+ updateTrafficLocation(location+1);
+ } else { // Disable net monitor completely
+ Settings.System.putIntForUser(getActivity().getContentResolver(),
+ Settings.System.NETWORK_TRAFFIC_STATE, 0, UserHandle.USER_CURRENT);
+ updateTrafficLocation(location);
+ }
return true;
} else if (preference == mThreshold) {
int val = (Integer) objValue;
@@ -116,26 +133,11 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC
case 0:
mThreshold.setEnabled(false);
mShowArrows.setEnabled(false);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_STATE, 0);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_EXPANDED_STATUS_BAR_STATE, 0);
break;
case 1:
- mThreshold.setEnabled(true);
- mShowArrows.setEnabled(true);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_STATE, 1);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_EXPANDED_STATUS_BAR_STATE, 0);
- break;
case 2:
mThreshold.setEnabled(true);
mShowArrows.setEnabled(true);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_STATE, 0);
- Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.NETWORK_TRAFFIC_EXPANDED_STATUS_BAR_STATE, 1);
break;
default:
break;