diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index e029c34..2f2103c 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -238,4 +238,16 @@ 2 3 + + + + @string/traffic_disabled + @string/traffic_statusbar + @string/traffic_expanded_statusbar + + + 0 + 1 + 2 + diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index abffed4..1e6e141 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -349,8 +349,11 @@ Traffic indicators Network traffic - Show net activity in statusbar + Show net activity + Disabled + Statusbar + Expanded Statusbar Net activity autohide threshold (KB/s) - Hide arrows - Hide the network traffic indicator arrows + Show arrows + Show the network traffic indicator arrows diff --git a/res/xml/traffic.xml b/res/xml/traffic.xml index 5a2bc9e..6768376 100644 --- a/res/xml/traffic.xml +++ b/res/xml/traffic.xml @@ -16,10 +16,13 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> - + + android:key="network_traffic_arrow" + android:title="@string/network_traffic_arrow" + android:summary="@string/network_traffic_arrow_summary" + android:defaultValue="true" /> diff --git a/src/com/cherish/settings/fragments/Traffic.java b/src/com/cherish/settings/fragments/Traffic.java index aabccc6..ad2cf55 100644 --- a/src/com/cherish/settings/fragments/Traffic.java +++ b/src/com/cherish/settings/fragments/Traffic.java @@ -51,9 +51,9 @@ import com.cherish.settings.preferences.SystemSettingSwitchPreference; public class Traffic extends SettingsPreferenceFragment implements OnPreferenceChangeListener { - + private ListPreference mNetTrafficLocation; private CustomSeekBarPreference mThreshold; - private SystemSettingSwitchPreference mNetMonitor; + private SystemSettingSwitchPreference mShowArrows; @Override public void onCreate(Bundle savedInstanceState) { @@ -64,18 +64,21 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC final ContentResolver resolver = getActivity().getContentResolver(); final PreferenceScreen prefSet = getPreferenceScreen(); - boolean isNetMonitorEnabled = Settings.System.getIntForUser(resolver, - Settings.System.NETWORK_TRAFFIC_STATE, 1, UserHandle.USER_CURRENT) == 1; - mNetMonitor = (SystemSettingSwitchPreference) findPreference("network_traffic_state"); - mNetMonitor.setChecked(isNetMonitorEnabled); - mNetMonitor.setOnPreferenceChangeListener(this); + 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()); + mNetTrafficLocation.setOnPreferenceChangeListener(this); int trafvalue = Settings.System.getIntForUser(resolver, Settings.System.NETWORK_TRAFFIC_AUTOHIDE_THRESHOLD, 1, UserHandle.USER_CURRENT); mThreshold = (CustomSeekBarPreference) findPreference("network_traffic_autohide_threshold"); mThreshold.setValue(trafvalue); mThreshold.setOnPreferenceChangeListener(this); - mThreshold.setEnabled(isNetMonitorEnabled); + mShowArrows = (SystemSettingSwitchPreference) findPreference("network_traffic_arrow"); + + updateTrafficLocation(location); } @Override @@ -90,13 +93,13 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC @Override public boolean onPreferenceChange(Preference preference, Object objValue) { - if (preference == mNetMonitor) { - boolean value = (Boolean) objValue; + if (preference == mNetTrafficLocation) { + int location = Integer.valueOf((String) objValue); + int index = mNetTrafficLocation.findIndexOfValue((String) objValue); Settings.System.putIntForUser(getActivity().getContentResolver(), - Settings.System.NETWORK_TRAFFIC_STATE, value ? 1 : 0, - UserHandle.USER_CURRENT); - mNetMonitor.setChecked(value); - mThreshold.setEnabled(value); + Settings.System.NETWORK_TRAFFIC_LOCATION, location, UserHandle.USER_CURRENT); + mNetTrafficLocation.setSummary(mNetTrafficLocation.getEntries()[index]); + updateTrafficLocation(location); return true; } else if (preference == mThreshold) { int val = (Integer) objValue; @@ -107,4 +110,35 @@ public class Traffic extends SettingsPreferenceFragment implements OnPreferenceC } return false; } + + public void updateTrafficLocation(int location) { + switch(location){ + 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; + } + } }