summaryrefslogtreecommitdiffstats
path: root/CrespoParts/src/com/cyanogenmod/settings
diff options
context:
space:
mode:
Diffstat (limited to 'CrespoParts/src/com/cyanogenmod/settings')
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java1
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java63
2 files changed, 61 insertions, 3 deletions
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java
index 39c9595..de26a53 100644
--- a/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java
@@ -44,6 +44,7 @@ public class DeviceSettings extends Activity {
public static final String KEY_COLOR_TUNING = "color_tuning";
public static final String KEY_GAMMA_TUNING = "gamma_tuning";
public static final String KEY_DEEPIDLE = "deepidle";
+ public static final String KEY_DEEPIDLE_STATS = "deepidle_stats";
public static final String KEY_NOTIFICATION = "touchkey_notification";
public static final String KEY_CATEGORY_RADIO = "category_radio";
public static final String KEY_HSPA = "hspa";
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java
index f101de1..eb183a2 100644
--- a/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java
@@ -22,17 +22,25 @@ import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.util.Log;
+import android.view.View;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.widget.TextView;
import com.cyanogenmod.settings.device.R;
-public class GeneralFragmentActivity extends PreferenceFragment {
+public class GeneralFragmentActivity extends PreferenceFragment implements OnPreferenceClickListener {
private static final String CPU_DEEPIDLE_FILE = "/sys/class/misc/deepidle/enabled";
+ private static final String CPU_DEEPIDLE_STATS = "/sys/class/misc/deepidle/idle_stats_list";
+ private static final String CPU_DEEPIDLE_RESET = "/sys/class/misc/deepidle/reset_stats";
private static final String TOUCHKEY_NOTIFICATION_FILE = "/sys/class/misc/notification/enabled";
private static final String PREF_ENABLED = "1";
private static final String TAG = "CrespoParts_General";
@@ -62,6 +70,11 @@ public class GeneralFragmentActivity extends PreferenceFragment {
mNotification.setEnabled(false);
}
+ Preference p = findPreference(DeviceSettings.KEY_DEEPIDLE_STATS);
+ if(p != null) {
+ p.setOnPreferenceClickListener(this);
+ }
+
}
@Override
@@ -92,11 +105,55 @@ public class GeneralFragmentActivity extends PreferenceFragment {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
if (isSupported(CPU_DEEPIDLE_FILE)) {
String sDefaultValue = Utils.readOneLine(CPU_DEEPIDLE_FILE);
- Utils.writeValue(CPU_DEEPIDLE_FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_DEEPIDLE, PREF_ENABLED.equals(sDefaultValue)));
+ Utils.writeValue(CPU_DEEPIDLE_FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_DEEPIDLE,
+ PREF_ENABLED.equals(sDefaultValue)));
}
if (isSupported(TOUCHKEY_NOTIFICATION_FILE)) {
String sDefaultValue = Utils.readOneLine(TOUCHKEY_NOTIFICATION_FILE);
- Utils.writeValue(TOUCHKEY_NOTIFICATION_FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_NOTIFICATION, PREF_ENABLED.equals(sDefaultValue)));
+ Utils.writeValue(TOUCHKEY_NOTIFICATION_FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_NOTIFICATION,
+ PREF_ENABLED.equals(sDefaultValue)));
}
}
+
+ private void showIdleStatsDialog() {
+ // display dialog
+ final View content = getActivity().getLayoutInflater().inflate(R.layout.idle_stats_dialog, null);
+
+ String sStatsLine = Utils.readOneLine(CPU_DEEPIDLE_STATS);
+ String[] sValues = sStatsLine.split(" ");
+ ((TextView)content.findViewById(R.id.time1)).setText(sValues[0]);
+ ((TextView)content.findViewById(R.id.time2)).setText(sValues[2]);
+ ((TextView)content.findViewById(R.id.time3)).setText(sValues[4]);
+ ((TextView)content.findViewById(R.id.avg1)).setText(sValues[1]);
+ ((TextView)content.findViewById(R.id.avg2)).setText(sValues[3]);
+ ((TextView)content.findViewById(R.id.avg3)).setText(sValues[5]);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setTitle(getString(R.string.label_deepidle_stats));
+ builder.setView(content);
+ builder.setPositiveButton(getString(R.string.label_reset), new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Utils.writeValue(CPU_DEEPIDLE_RESET, "1");
+ dialog.dismiss();
+ }
+ });
+ builder.setNegativeButton(getString(R.string.label_close), new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ }
+ });
+ builder.show();
+ }
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ boolean ret = false;
+ if(preference.getKey().equals(DeviceSettings.KEY_DEEPIDLE_STATS)) {
+ showIdleStatsDialog();
+ ret = true;
+ }
+ return ret;
+ }
}