From 8fc38f317f56c799edb59cee172399ed003c4955 Mon Sep 17 00:00:00 2001 From: ezio84 Date: Sun, 17 Sep 2017 21:07:34 +0800 Subject: [PATCH] Cherish:Status network traffic [2/2] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I914065e7f44e2b7a0299c2f219ec519e07b16b68 Signed-off-by: Hưng Phan --- res/values/cherish_strings.xml | 6 + res/xml/cherish_settings_statusbar.xml | 6 + res/xml/traffic.xml | 31 +++++ .../cherish/settings/fragments/Traffic.java | 110 ++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 res/xml/traffic.xml create mode 100644 src/com/cherish/settings/fragments/Traffic.java diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 8eeb834..762177c 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -345,4 +345,10 @@ Right of the icon Battery percentage when charging Always display battery percentage when charging + + + Traffic indicators + Network traffic + Show net activity in statusbar + Net activity autohide threshold (KB/s) diff --git a/res/xml/cherish_settings_statusbar.xml b/res/xml/cherish_settings_statusbar.xml index 31cf616..a275521 100644 --- a/res/xml/cherish_settings_statusbar.xml +++ b/res/xml/cherish_settings_statusbar.xml @@ -19,6 +19,12 @@ android:key="status_bar_icons" android:title="@string/status_bar_system_icons_title"> + + diff --git a/res/xml/traffic.xml b/res/xml/traffic.xml new file mode 100644 index 0000000..ec6eff3 --- /dev/null +++ b/res/xml/traffic.xml @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/src/com/cherish/settings/fragments/Traffic.java b/src/com/cherish/settings/fragments/Traffic.java new file mode 100644 index 0000000..aabccc6 --- /dev/null +++ b/src/com/cherish/settings/fragments/Traffic.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2017 AospExtended ROM Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cherish.settings.fragments; + +import android.app.ActivityManagerNative; +import android.content.Context; +import android.content.ContentResolver; +import android.content.pm.PackageManager.NameNotFoundException; +import android.content.res.Resources; +import android.os.Bundle; +import android.os.UserHandle; +import android.os.RemoteException; +import android.os.ServiceManager; +import androidx.preference.Preference; +import androidx.preference.ListPreference; +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceScreen; +import androidx.preference.Preference.OnPreferenceChangeListener; +import android.provider.Settings; +import android.util.Log; +import android.view.WindowManagerGlobal; +import android.view.IWindowManager; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import java.util.Locale; +import android.text.TextUtils; +import android.view.View; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.internal.logging.nano.MetricsProto.MetricsEvent; +import com.android.settings.Utils; + +import com.cherish.settings.preferences.CustomSeekBarPreference; +import com.cherish.settings.preferences.SystemSettingSwitchPreference; + +public class Traffic extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + + + private CustomSeekBarPreference mThreshold; + private SystemSettingSwitchPreference mNetMonitor; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.traffic); + + 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); + + 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); + } + + @Override + public int getMetricsCategory() { + return MetricsEvent.CHERISH_SETTINGS; + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object objValue) { + if (preference == mNetMonitor) { + boolean value = (Boolean) objValue; + Settings.System.putIntForUser(getActivity().getContentResolver(), + Settings.System.NETWORK_TRAFFIC_STATE, value ? 1 : 0, + UserHandle.USER_CURRENT); + mNetMonitor.setChecked(value); + mThreshold.setEnabled(value); + return true; + } else if (preference == mThreshold) { + int val = (Integer) objValue; + Settings.System.putIntForUser(getContentResolver(), + Settings.System.NETWORK_TRAFFIC_AUTOHIDE_THRESHOLD, val, + UserHandle.USER_CURRENT); + return true; + } + return false; + } +}