diff --git a/packages/SystemUI/src/com/android/systemui/CPUInfoService.java b/packages/SystemUI/src/com/android/systemui/CPUInfoService.java index 4e89370075014..e5fa8f066c65e 100644 --- a/packages/SystemUI/src/com/android/systemui/CPUInfoService.java +++ b/packages/SystemUI/src/com/android/systemui/CPUInfoService.java @@ -63,10 +63,12 @@ public class CPUInfoService extends Service { private String CPU_TEMP_SENSOR = ""; private String GPU_TEMP_SENSOR = ""; private String BATTERY_TEMP_SENSOR = ""; + private String FPS_SENSOR = ""; private String DISPLAY_CPUS = ""; private boolean mCpuTempAvail; private boolean mGpuTempAvail; private boolean mBatTempAvail; + private boolean mFpsAvail; private static final String NUM_OF_CPUS_PATH = "/sys/devices/system/cpu/present"; private static final String CURRENT_CPU = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"; @@ -88,6 +90,7 @@ public class CPUInfoService extends Service { private int mNeededWidth; private int mNeededHeight; + private String mFps; private String mCpuTemp; private String mGpuTemp; private String mBatTemp; @@ -105,13 +108,14 @@ public class CPUInfoService extends Service { String msgData = (String) msg.obj; try { String[] parts=msgData.split(";"); - mCpuTemp = parts[0]; - mGpuTemp = parts[1]; - mBatTemp = parts[2]; - mGpuFreq = parts[3]; - mGpuLoad = parts[4]; + mFps = parts[0]; + mCpuTemp = parts[1]; + mGpuTemp = parts[2]; + mBatTemp = parts[3]; + mGpuFreq = parts[4]; + mGpuLoad = parts[5]; - String[] cpuParts=parts[5].split("\\|"); + String[] cpuParts=parts[6].split("\\|"); for(int i=0; i 1) { + trimmed = parts[1]; + } + } + try { + float fpsFloat = Float.parseFloat(trimmed); + fpsVal = String.valueOf(Math.round(fpsFloat)); + } catch (NumberFormatException e) { + // ignore + } + } + } + sb.append(fpsVal).append(";"); + String cpuTemp = CPUInfoService.readOneLine(CPU_TEMP_SENSOR); sb.append(cpuTemp == null ? "0" : cpuTemp).append(";"); @@ -418,6 +450,7 @@ public class CPUInfoService extends Service { CPU_TEMP_DIVIDER = getResources().getInteger(R.integer.config_cpuTempDivider); DISPLAY_CPUS = getResources().getString(R.string.config_displayCpus); + FPS_SENSOR = getResources().getString(R.string.config_fpsInfoSysNode); String autoBat = findThermalZoneByType(BATTERY_TYPES); if (autoBat != null) { @@ -446,6 +479,9 @@ public class CPUInfoService extends Service { mGpuTempAvail = readOneLine(GPU_TEMP_SENSOR) != null; mBatTempAvail = readOneLine(BATTERY_TEMP_SENSOR) != null; + File fpsFile = new File(FPS_SENSOR); + mFpsAvail = fpsFile.exists() && fpsFile.canRead(); + mView = new CPUView(this); WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT,