public static ArrayList<Entry> getActions(final String category) { final ArrayList<Entry> actions = new ArrayList<>(); if (TextUtils.isEmpty(category)) return actions; // CPU if (TextUtils.equals(CATEGORY_CPU, category)) { actions.add(new Entry(App.get().getString(R.string.frequency_max), ACTION_CPU_FREQUENCY_MAX)); actions.add(new Entry(App.get().getString(R.string.frequency_min), ACTION_CPU_FREQUENCY_MIN)); actions.add(new Entry(App.get().getString(R.string.governor), ACTION_CPU_GOVERNOR)); } // GPU if (TextUtils.equals(CATEGORY_GPU, category)) { if (Utils.fileExists(GpuUtils.get().getGpuFreqMaxPath())) { actions.add( new Entry(App.get().getString(R.string.frequency_max), ACTION_GPU_FREQUENCY_MAX)); } if (Utils.fileExists(GpuUtils.get().getGpuFreqMinPath())) { actions.add( new Entry(App.get().getString(R.string.frequency_min), ACTION_GPU_FREQUENCY_MIN)); } if (Utils.fileExists(GpuUtils.get().getGpuGovPath())) { actions.add(new Entry(App.get().getString(R.string.governor), ACTION_GPU_GOVERNOR)); } if (Utils.fileExists(GpuUtils.FILE_3D_SCALING)) { actions.add(new Entry(App.get().getString(R.string.gpu_3d_scaling), ACTION_3D_SCALING)); } } // Extras if (TextUtils.equals(CATEGORY_EXTRAS, category)) { if (Utils.fileExists(KsmUtils.KSM_PATH)) { if (Utils.fileExists(App.get().getString(R.string.file_ksm_run))) { actions.add(new Entry(App.get().getString(R.string.enable_ksm), ACTION_KSM_ENABLED)); } if (Utils.fileExists(App.get().getString(R.string.file_ksm_deferred))) { actions.add(new Entry(App.get().getString(R.string.deferred_timer), ACTION_KSM_DEFERRED)); } if (Utils.fileExists(KsmUtils.KSM_PAGES_TO_SCAN)) { actions.add(new Entry(App.get().getString(R.string.pages_to_scan), ACTION_KSM_PAGES)); } if (Utils.fileExists(KsmUtils.KSM_SLEEP)) { actions.add( new Entry(App.get().getString(R.string.sleep_between_scans), ACTION_KSM_SLEEP)); } } if (Utils.fileExists(MpDecisionAction.MPDECISION_PATH)) { actions.add(new Entry(App.get().getString(R.string.mpdecision), ACTION_MPDECISION)); } } // Filesystem if (TextUtils.equals(CATEGORY_FS, category)) { actions.add(new Entry(App.get().getString(R.string.io), ACTION_IO_SCHEDULER)); actions.add(new Entry(App.get().getString(R.string.read_ahead), ACTION_READ_AHEAD)); } return actions; }
public static ArrayList<Entry> getValues(final String action) { final ArrayList<Entry> values = new ArrayList<>(); if (TextUtils.isEmpty(action)) return values; // CPU frequencies if (TextUtils.equals(ACTION_CPU_FREQUENCY_MAX, action) || TextUtils.equals(ACTION_CPU_FREQUENCY_MIN, action)) { final List<Integer> freqList = CpuReader.readFreqAvail(0); for (final int value : freqList) { final String s = String.valueOf(value); values.add(new Entry(CpuInformation.toMhz(s), s)); } } else // CPU governor if (TextUtils.equals(ACTION_CPU_GOVERNOR, action)) { final List<String> governors = CpuReader.readGovAvail(0); for (final String s : governors) { values.add(new Entry(s, s)); } } else // GPU frequencies if (TextUtils.equals(ACTION_GPU_FREQUENCY_MAX, action) || TextUtils.equals(ACTION_GPU_FREQUENCY_MIN, action)) { final String[] freqs = GpuUtils.get().getAvailableFrequencies(true); if (freqs == null) return values; for (final String s : freqs) { values.add(new Entry(GpuUtils.toMhz(s), s)); } } else // GPU governor if (TextUtils.equals(ACTION_GPU_GOVERNOR, action)) { final String[] governors = GovernorUtils.get().getAvailableGpuGovernors(); if (governors == null) return values; for (final String s : governors) { values.add(new Entry(s, s)); } } else // GPU 3D scaling if (TextUtils.equals(ACTION_3D_SCALING, action)) { addValuesOnOff(values); } else // Filesystem if (TextUtils.equals(ACTION_IO_SCHEDULER, action)) { final String[] scheds = IoUtils.get().getAvailableIoSchedulers(); if (scheds == null) return values; for (final String s : scheds) { values.add(new Entry(s, s)); } } else if (TextUtils.equals(ACTION_READ_AHEAD, action)) { final String[] entries = App.get().getStringArray(R.array.read_ahead_entries); final String[] vals = App.get().getStringArray(R.array.read_ahead_values); for (int i = 0; i < entries.length; i++) { values.add(new Entry(entries[i], vals[i])); } } else // Extras if (TextUtils.equals(ACTION_KSM_ENABLED, action) || TextUtils.equals(ACTION_KSM_DEFERRED, action)) { addValuesOnOff(values); } else if (TextUtils.equals(ACTION_KSM_PAGES, action)) { final String[] vals = {"32", "64", "128", "256", "512", "1024"}; for (final String s : vals) { values.add(new Entry(s, s)); } } else if (TextUtils.equals(ACTION_KSM_SLEEP, action)) { final String[] vals = {"100", "250", "500", "1000", "2000", "3000", "4000", "5000"}; for (final String s : vals) { values.add(new Entry(s, s)); } } else if (TextUtils.equals(ACTION_MPDECISION, action)) { addValuesOnOff(values); } return values; }