/*
* Copyright (C) 2015-2016 Willi Ye <williye97@gmail.com>
*
* This file is part of Kernel Adiutor.
*
* Kernel Adiutor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Kernel Adiutor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Kernel Adiutor. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.grarak.kerneladiutor.fragments.kernel;
import com.grarak.kerneladiutor.R;
import com.grarak.kerneladiutor.fragments.ApplyOnBootFragment;
import com.grarak.kerneladiutor.fragments.RecyclerViewFragment;
import com.grarak.kerneladiutor.utils.Utils;
import com.grarak.kerneladiutor.utils.kernel.cpu.CPUFreq;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.AlucardHotplug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.AutoSmp;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.BluPlug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.CoreCtl;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.IntelliPlug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.LazyPlug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.MBHotplug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.MPDecision;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.MSMHotplug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.MakoHotplug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.ThunderPlug;
import com.grarak.kerneladiutor.utils.kernel.cpuhotplug.ZenDecision;
import com.grarak.kerneladiutor.views.recyclerview.DescriptionView;
import com.grarak.kerneladiutor.views.recyclerview.RecyclerViewItem;
import com.grarak.kerneladiutor.views.recyclerview.SeekBarView;
import com.grarak.kerneladiutor.views.recyclerview.SelectView;
import com.grarak.kerneladiutor.views.recyclerview.SwitchView;
import com.grarak.kerneladiutor.views.recyclerview.TitleView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by willi on 07.05.16.
*/
public class CPUHotplugFragment extends RecyclerViewFragment {
private List<SwitchView> mEnableViews = new ArrayList<>();
@Override
protected void init() {
super.init();
addViewPagerFragment(ApplyOnBootFragment.newInstance(this));
}
@Override
protected void addItems(List<RecyclerViewItem> items) {
mEnableViews.clear();
if (MPDecision.supported()) {
mpdecisionInit(items);
}
if (IntelliPlug.supported()) {
intelliPlugInit(items);
}
if (LazyPlug.supported()) {
lazyPlugInit(items);
}
if (BluPlug.supported()) {
bluPlugInit(items);
}
if (MSMHotplug.supported()) {
msmHotplugInit(items);
}
if (MakoHotplug.supported()) {
makoHotplugInit(items);
}
if (MBHotplug.supported()) {
mbHotplugInit(items);
}
if (AlucardHotplug.supported()) {
alucardHotplugInit(items);
}
if (ThunderPlug.supported()) {
thunderPlugInit(items);
}
if (ZenDecision.supported()) {
zenDecisionInit(items);
}
if (AutoSmp.supported()) {
autoSmpInit(items);
}
if (CoreCtl.supported()) {
coreCtlInit(items);
}
for (SwitchView view : mEnableViews) {
view.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
boolean enabled = false;
for (SwitchView view : mEnableViews) {
if (!enabled && view.isChecked()) {
enabled = true;
continue;
}
if (enabled && view.isChecked()) {
Utils.toast(R.string.hotplug_warning, getActivity());
break;
}
}
}
});
}
}
private void mpdecisionInit(List<RecyclerViewItem> items) {
SwitchView mpdecision = new SwitchView();
mpdecision.setTitle(getString(R.string.mpdecision));
mpdecision.setSummary(getString(R.string.mpdecision_summary));
mpdecision.setChecked(MPDecision.isMpdecisionEnabled());
mpdecision.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MPDecision.enableMpdecision(isChecked, getActivity());
}
});
items.add(mpdecision);
mEnableViews.add(mpdecision);
}
private void intelliPlugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> intelliplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.intelliplug));
if (IntelliPlug.hasIntelliPlugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.intelliplug));
enable.setSummary(getString(R.string.intelliplug_summary));
enable.setChecked(IntelliPlug.isIntelliPlugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
IntelliPlug.enableIntelliPlug(isChecked, getActivity());
}
});
intelliplug.add(enable);
mEnableViews.add(enable);
}
if (IntelliPlug.hasIntelliPlugProfile()) {
SelectView profile = new SelectView();
profile.setTitle(getString(R.string.profile));
profile.setSummary(getString(R.string.cpu_hotplug_profile_summary));
profile.setItems(IntelliPlug.getIntelliPlugProfileMenu(getActivity()));
profile.setItem(IntelliPlug.getIntelliPlugProfile());
profile.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
IntelliPlug.setIntelliPlugProfile(position, getActivity());
}
});
intelliplug.add(profile);
}
if (IntelliPlug.hasIntelliPlugEco()) {
SwitchView eco = new SwitchView();
eco.setTitle(getString(R.string.eco_mode));
eco.setSummary(getString(R.string.eco_mode_summary));
eco.setChecked(IntelliPlug.isIntelliPlugEcoEnabled());
eco.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
IntelliPlug.enableIntelliPlugEco(isChecked, getActivity());
}
});
intelliplug.add(eco);
}
if (IntelliPlug.hasIntelliPlugTouchBoost()) {
SwitchView touchBoost = new SwitchView();
touchBoost.setTitle(getString(R.string.touch_boost));
touchBoost.setSummary(getString(R.string.touch_boost_summary));
touchBoost.setChecked(IntelliPlug.isIntelliPlugTouchBoostEnabled());
touchBoost.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
IntelliPlug.enableIntelliPlugTouchBoost(isChecked, getActivity());
}
});
intelliplug.add(touchBoost);
}
if (IntelliPlug.hasIntelliPlugHysteresis()) {
SeekBarView hysteresis = new SeekBarView();
hysteresis.setTitle(getString(R.string.hysteresis));
hysteresis.setSummary(getString(R.string.hysteresis_summary));
hysteresis.setMax(17);
hysteresis.setProgress(IntelliPlug.getIntelliPlugHysteresis());
hysteresis.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugHysteresis(position, getActivity());
}
});
intelliplug.add(hysteresis);
}
if (IntelliPlug.hasIntelliPlugThresold()) {
SeekBarView threshold = new SeekBarView();
threshold.setTitle(getString(R.string.cpu_threshold));
threshold.setSummary(getString(R.string.cpu_threshold_summary));
threshold.setMax(1000);
threshold.setProgress(IntelliPlug.getIntelliPlugThresold());
threshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugThresold(position, getActivity());
}
});
intelliplug.add(threshold);
}
if (IntelliPlug.hasIntelliPlugScreenOffMax() && CPUFreq.getFreqs() != null) {
List<String> list = new ArrayList<>();
list.add(getString(R.string.disabled));
list.addAll(CPUFreq.getAdjustedFreq(getActivity()));
SelectView maxScreenOffFreq = new SelectView();
maxScreenOffFreq.setTitle(getString(R.string.cpu_max_screen_off_freq));
maxScreenOffFreq.setSummary(getString(R.string.cpu_max_screen_off_freq_summary));
maxScreenOffFreq.setItems(list);
maxScreenOffFreq.setItem(IntelliPlug.getIntelliPlugScreenOffMax());
maxScreenOffFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
IntelliPlug.setIntelliPlugScreenOffMax(position, getActivity());
}
});
intelliplug.add(maxScreenOffFreq);
}
if (IntelliPlug.hasIntelliPlugDebug()) {
SwitchView debug = new SwitchView();
debug.setTitle(getString(R.string.debug_mask));
debug.setSummary(getString(R.string.debug_mask_summary));
debug.setChecked(IntelliPlug.isIntelliPlugDebugEnabled());
debug.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
IntelliPlug.enableIntelliPlugDebug(isChecked, getActivity());
}
});
intelliplug.add(debug);
}
if (IntelliPlug.hasIntelliPlugSuspend()) {
SwitchView suspend = new SwitchView();
suspend.setTitle(getString(R.string.suspend));
suspend.setSummary(getString(R.string.suspend_summary));
suspend.setChecked(IntelliPlug.isIntelliPlugSuspendEnabled());
suspend.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
IntelliPlug.enableIntelliPlugSuspend(isChecked, getActivity());
}
});
intelliplug.add(suspend);
}
if (IntelliPlug.hasIntelliPlugCpusBoosted()) {
SeekBarView cpusBoosted = new SeekBarView();
cpusBoosted.setTitle(getString(R.string.cpus_boosted));
cpusBoosted.setSummary(getString(R.string.cpus_boosted_summary));
cpusBoosted.setMax(CPUFreq.getCpuCount());
cpusBoosted.setMin(1);
cpusBoosted.setProgress(IntelliPlug.getIntelliPlugCpusBoosted() - 1);
cpusBoosted.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugCpusBoosted(position + 1, getActivity());
}
});
intelliplug.add(cpusBoosted);
}
if (IntelliPlug.hasIntelliPlugMinCpusOnline()) {
SeekBarView minCpusOnline = new SeekBarView();
minCpusOnline.setTitle(getString(R.string.min_cpu_online));
minCpusOnline.setSummary(getString(R.string.min_cpu_online_summary));
minCpusOnline.setMax(CPUFreq.getCpuCount());
minCpusOnline.setMin(1);
minCpusOnline.setProgress(IntelliPlug.getIntelliPlugMinCpusOnline() - 1);
minCpusOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugMinCpusOnline(position + 1, getActivity());
}
});
intelliplug.add(minCpusOnline);
}
if (IntelliPlug.hasIntelliPlugMaxCpusOnline()) {
SeekBarView maxCpusOnline = new SeekBarView();
maxCpusOnline.setTitle(getString(R.string.max_cpu_online));
maxCpusOnline.setSummary(getString(R.string.max_cpu_online_summary));
maxCpusOnline.setMax(CPUFreq.getCpuCount());
maxCpusOnline.setMin(1);
maxCpusOnline.setProgress(IntelliPlug.getIntelliPlugMaxCpusOnline() - 1);
maxCpusOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugMaxCpusOnline(position + 1, getActivity());
}
});
intelliplug.add(maxCpusOnline);
}
if (IntelliPlug.hasIntelliPlugMaxCpusOnlineSusp()) {
SeekBarView maxCpusOnlineSusp = new SeekBarView();
maxCpusOnlineSusp.setTitle(getString(R.string.max_cpu_online_screen_off));
maxCpusOnlineSusp.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
maxCpusOnlineSusp.setMax(CPUFreq.getCpuCount());
maxCpusOnlineSusp.setMin(1);
maxCpusOnlineSusp.setProgress(IntelliPlug.getIntelliPlugMaxCpusOnlineSusp() - 1);
maxCpusOnlineSusp.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugMaxCpusOnlineSusp(position + 1, getActivity());
}
});
intelliplug.add(maxCpusOnlineSusp);
}
if (IntelliPlug.hasIntelliPlugSuspendDeferTime()) {
SeekBarView suspendDeferTime = new SeekBarView();
suspendDeferTime.setTitle(getString(R.string.suspend_defer_time));
suspendDeferTime.setUnit(getString(R.string.ms));
suspendDeferTime.setMax(5000);
suspendDeferTime.setOffset(10);
suspendDeferTime.setProgress(IntelliPlug.getIntelliPlugSuspendDeferTime() / 10);
suspendDeferTime.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugSuspendDeferTime(position * 10, getActivity());
}
});
intelliplug.add(suspendDeferTime);
}
if (IntelliPlug.hasIntelliPlugDeferSampling()) {
SeekBarView deferSampling = new SeekBarView();
deferSampling.setTitle(getString(R.string.defer_sampling));
deferSampling.setUnit(getString(R.string.ms));
deferSampling.setMax(1000);
deferSampling.setProgress(IntelliPlug.getIntelliPlugDeferSampling());
deferSampling.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugDeferSampling(position, getActivity());
}
});
intelliplug.add(deferSampling);
}
if (IntelliPlug.hasIntelliPlugBoostLockDuration()) {
SeekBarView boostLockDuration = new SeekBarView();
boostLockDuration.setTitle(getString(R.string.boost_lock_duration));
boostLockDuration.setSummary(getString(R.string.boost_lock_duration_summary));
boostLockDuration.setUnit(getString(R.string.ms));
boostLockDuration.setMax(5000);
boostLockDuration.setMin(1);
boostLockDuration.setProgress(IntelliPlug.getIntelliPlugBoostLockDuration() - 1);
boostLockDuration.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugBoostLockDuration(position + 1, getActivity());
}
});
intelliplug.add(boostLockDuration);
}
if (IntelliPlug.hasIntelliPlugDownLockDuration()) {
SeekBarView downLockDuration = new SeekBarView();
downLockDuration.setTitle(getString(R.string.down_lock_duration));
downLockDuration.setSummary(getString(R.string.down_lock_duration_summary));
downLockDuration.setUnit(getString(R.string.ms));
downLockDuration.setMax(5000);
downLockDuration.setMin(1);
downLockDuration.setProgress(IntelliPlug.getIntelliPlugDownLockDuration() - 1);
downLockDuration.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugDownLockDuration(position + 1, getActivity());
}
});
intelliplug.add(downLockDuration);
}
if (IntelliPlug.hasIntelliPlugFShift()) {
SeekBarView fShift = new SeekBarView();
fShift.setTitle(getString(R.string.fshift));
fShift.setMax(4);
fShift.setProgress(IntelliPlug.getIntelliPlugFShift());
fShift.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
IntelliPlug.setIntelliPlugFShift(position, getActivity());
}
});
intelliplug.add(fShift);
}
if (intelliplug.size() > 0) {
items.add(title);
items.addAll(intelliplug);
}
}
private void lazyPlugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> lazyplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.lazyplug));
if (LazyPlug.hasEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.lazyplug));
enable.setSummary(getString(R.string.lazyplug_summary));
enable.setChecked(LazyPlug.isEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
LazyPlug.enable(isChecked, getActivity());
}
});
lazyplug.add(enable);
mEnableViews.add(enable);
}
if (LazyPlug.hasProfile()) {
SelectView profile = new SelectView();
profile.setTitle(getString(R.string.profile));
profile.setSummary(getString(R.string.cpu_hotplug_profile_summary));
profile.setItems(LazyPlug.getProfileMenu(getActivity()));
profile.setItem(LazyPlug.getProfile());
profile.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
LazyPlug.setProfile(position, getActivity());
}
});
lazyplug.add(profile);
}
if (LazyPlug.hasTouchBoost()) {
SwitchView touchBoost = new SwitchView();
touchBoost.setTitle(getString(R.string.touch_boost));
touchBoost.setSummary(getString(R.string.touch_boost_summary));
touchBoost.setChecked(LazyPlug.isTouchBoostEnabled());
touchBoost.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
LazyPlug.enableTouchBoost(isChecked, getActivity());
}
});
lazyplug.add(touchBoost);
}
if (LazyPlug.hasHysteresis()) {
SeekBarView hysteresis = new SeekBarView();
hysteresis.setTitle(getString(R.string.hysteresis));
hysteresis.setSummary(getString(R.string.hysteresis_summary));
hysteresis.setMax(17);
hysteresis.setProgress(LazyPlug.getHysteresis());
hysteresis.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
LazyPlug.setHysteresis(position, getActivity());
}
});
lazyplug.add(hysteresis);
}
if (LazyPlug.hasThreshold()) {
SeekBarView threshold = new SeekBarView();
threshold.setTitle(getString(R.string.cpu_threshold));
threshold.setSummary(getString(R.string.cpu_threshold_summary));
threshold.setMax(1250);
threshold.setProgress(LazyPlug.getThreshold());
threshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
LazyPlug.setThreshold(position, getActivity());
}
});
lazyplug.add(threshold);
}
if (LazyPlug.hasPossibleCores()) {
SeekBarView possibleCores = new SeekBarView();
possibleCores.setTitle(getString(R.string.max_cpu_online));
possibleCores.setSummary(getString(R.string.possible_cpu_cores_summary));
possibleCores.setMax(CPUFreq.getCpuCount());
possibleCores.setMin(1);
possibleCores.setProgress(LazyPlug.getPossibleCores() - 1);
possibleCores.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
LazyPlug.setPossibleCores(position + 1, getActivity());
}
});
lazyplug.add(possibleCores);
}
if (lazyplug.size() > 0) {
items.add(title);
items.addAll(lazyplug);
}
}
private void bluPlugInit(List<RecyclerViewItem> items) {
final List<RecyclerViewItem> bluplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.blu_plug));
if (BluPlug.hasBluPlugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.blu_plug));
enable.setSummary(getString(R.string.blu_plug_summary));
enable.setChecked(BluPlug.isBluPlugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
BluPlug.enableBluPlug(isChecked, getActivity());
}
});
bluplug.add(enable);
mEnableViews.add(enable);
}
if (BluPlug.hasBluPlugPowersaverMode()) {
SwitchView powersaverMode = new SwitchView();
powersaverMode.setTitle(getString(R.string.powersaver_mode));
powersaverMode.setSummary(getString(R.string.powersaver_mode_summary));
powersaverMode.setChecked(BluPlug.isBluPlugPowersaverModeEnabled());
powersaverMode.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
BluPlug.enableBluPlugPowersaverMode(isChecked, getActivity());
}
});
bluplug.add(powersaverMode);
}
if (BluPlug.hasBluPlugMinOnline()) {
SeekBarView minOnline = new SeekBarView();
minOnline.setTitle(getString(R.string.min_cpu_online));
minOnline.setSummary(getString(R.string.min_cpu_online_summary));
minOnline.setMax(CPUFreq.getCpuCount());
minOnline.setMin(1);
minOnline.setProgress(BluPlug.getBluPlugMinOnline() - 1);
minOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugMinOnline(position + 1, getActivity());
}
});
bluplug.add(minOnline);
}
if (BluPlug.hasBluPlugMaxOnline()) {
SeekBarView maxOnline = new SeekBarView();
maxOnline.setTitle(getString(R.string.max_cpu_online));
maxOnline.setSummary(getString(R.string.max_cpu_online_summary));
maxOnline.setMax(CPUFreq.getCpuCount());
maxOnline.setMin(1);
maxOnline.setProgress(BluPlug.getBluPlugMaxOnline() - 1);
maxOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugMaxOnline(position + 1, getActivity());
}
});
bluplug.add(maxOnline);
}
if (BluPlug.hasBluPlugMaxCoresScreenOff()) {
SeekBarView maxCoresScreenOff = new SeekBarView();
maxCoresScreenOff.setTitle(getString(R.string.max_cpu_online_screen_off));
maxCoresScreenOff.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
maxCoresScreenOff.setMax(CPUFreq.getCpuCount());
maxCoresScreenOff.setMin(1);
maxCoresScreenOff.setProgress(BluPlug.getBluPlugMaxCoresScreenOff() - 1);
maxCoresScreenOff.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugMaxCoresScreenOff(position + 1, getActivity());
}
});
bluplug.add(maxCoresScreenOff);
}
if (BluPlug.hasBluPlugMaxFreqScreenOff() && CPUFreq.getFreqs() != null) {
List<String> list = new ArrayList<>();
list.add(getString(R.string.disabled));
list.addAll(CPUFreq.getAdjustedFreq(getActivity()));
SeekBarView maxFreqScreenOff = new SeekBarView();
maxFreqScreenOff.setTitle(getString(R.string.cpu_max_screen_off_freq));
maxFreqScreenOff.setSummary(getString(R.string.cpu_max_screen_off_freq_summary));
maxFreqScreenOff.setItems(list);
maxFreqScreenOff.setProgress(BluPlug.getBluPlugMaxFreqScreenOff());
maxFreqScreenOff.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugMaxFreqScreenOff(position, getActivity());
}
});
bluplug.add(maxFreqScreenOff);
}
if (BluPlug.hasBluPlugUpThreshold()) {
SeekBarView upThreshold = new SeekBarView();
upThreshold.setTitle(getString(R.string.up_threshold));
upThreshold.setSummary(getString(R.string.up_threshold_summary));
upThreshold.setUnit("%");
upThreshold.setMax(100);
upThreshold.setProgress(BluPlug.getBluPlugUpThreshold());
upThreshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugUpThreshold(position, getActivity());
}
});
bluplug.add(upThreshold);
}
if (BluPlug.hasBluPlugUpTimerCnt()) {
List<String> list = new ArrayList<>();
for (float i = 0; i < 21; i++) {
list.add(String.valueOf(i * 0.5f));
}
SeekBarView upTimerCnt = new SeekBarView();
upTimerCnt.setTitle(getString(R.string.up_timer_cnt));
upTimerCnt.setSummary(getString(R.string.up_timer_cnt_summary));
upTimerCnt.setItems(list);
upTimerCnt.setProgress(BluPlug.getBluPlugUpTimerCnt());
upTimerCnt.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugUpTimerCnt(position, getActivity());
}
});
bluplug.add(upTimerCnt);
}
if (BluPlug.hasBluPlugDownTimerCnt()) {
List<String> list = new ArrayList<>();
for (float i = 0; i < 21; i++) {
list.add(String.valueOf(i * 0.5f));
}
SeekBarView downTimerCnt = new SeekBarView();
downTimerCnt.setTitle(getString(R.string.down_timer_cnt));
downTimerCnt.setSummary(getString(R.string.down_timer_cnt_summary));
downTimerCnt.setItems(list);
downTimerCnt.setProgress(BluPlug.getBluPlugDownTimerCnt());
downTimerCnt.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
BluPlug.setBluPlugDownTimerCnt(position, getActivity());
}
});
bluplug.add(downTimerCnt);
}
if (bluplug.size() > 0) {
items.add(title);
items.addAll(bluplug);
}
}
private void msmHotplugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> msmHotplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.msm_hotplug));
if (MSMHotplug.hasMsmHotplugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.msm_hotplug));
enable.setSummary(getString(R.string.msm_hotplug_summary));
enable.setChecked(MSMHotplug.isMsmHotplugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MSMHotplug.enableMsmHotplug(isChecked, getActivity());
}
});
msmHotplug.add(enable);
mEnableViews.add(enable);
}
if (MSMHotplug.hasMsmHotplugDebugMask()) {
SwitchView debugMask = new SwitchView();
debugMask.setTitle(getString(R.string.debug_mask));
debugMask.setSummary(getString(R.string.debug_mask_summary));
debugMask.setChecked(MSMHotplug.isMsmHotplugDebugMaskEnabled());
debugMask.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MSMHotplug.enableMsmHotplugDebugMask(isChecked, getActivity());
}
});
msmHotplug.add(debugMask);
}
if (MSMHotplug.hasMsmHotplugMinCpusOnline()) {
SeekBarView minCpusOnline = new SeekBarView();
minCpusOnline.setTitle(getString(R.string.min_cpu_online));
minCpusOnline.setSummary(getString(R.string.min_cpu_online_summary));
minCpusOnline.setMax(CPUFreq.getCpuCount());
minCpusOnline.setMin(1);
minCpusOnline.setProgress(MSMHotplug.getMsmHotplugMinCpusOnline() - 1);
minCpusOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugMinCpusOnline(position + 1, getActivity());
}
});
msmHotplug.add(minCpusOnline);
}
if (MSMHotplug.hasMsmHotplugMaxCpusOnline()) {
SeekBarView maxCpusOnline = new SeekBarView();
maxCpusOnline.setTitle(getString(R.string.max_cpu_online));
maxCpusOnline.setSummary(getString(R.string.max_cpu_online_summary));
maxCpusOnline.setMax(CPUFreq.getCpuCount());
maxCpusOnline.setMin(1);
maxCpusOnline.setProgress(MSMHotplug.getMsmHotplugMaxCpusOnline() - 1);
maxCpusOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugMaxCpusOnline(position + 1, getActivity());
}
});
msmHotplug.add(maxCpusOnline);
}
if (MSMHotplug.hasMsmHotplugCpusBoosted()) {
SeekBarView cpusBoosted = new SeekBarView();
cpusBoosted.setTitle(getString(R.string.cpus_boosted));
cpusBoosted.setSummary(getString(R.string.cpus_boosted_summary));
cpusBoosted.setMax(CPUFreq.getCpuCount());
cpusBoosted.setMin(1);
cpusBoosted.setProgress(MSMHotplug.getMsmHotplugCpusBoosted());
cpusBoosted.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugCpusBoosted(position, getActivity());
}
});
msmHotplug.add(cpusBoosted);
}
if (MSMHotplug.hasMsmHotplugMaxCpusOnlineSusp()) {
SeekBarView maxCpusOnlineSusp = new SeekBarView();
maxCpusOnlineSusp.setTitle(getString(R.string.max_cpu_online_screen_off));
maxCpusOnlineSusp.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
maxCpusOnlineSusp.setMax(CPUFreq.getCpuCount());
maxCpusOnlineSusp.setMin(1);
maxCpusOnlineSusp.setProgress(MSMHotplug.getMsmHotplugMaxCpusOnlineSusp() - 1);
maxCpusOnlineSusp.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugMaxCpusOnlineSusp(position + 1, getActivity());
}
});
msmHotplug.add(maxCpusOnlineSusp);
}
if (MSMHotplug.hasMsmHotplugBoostLockDuration()) {
SeekBarView boostLockDuration = new SeekBarView();
boostLockDuration.setTitle(getString(R.string.boost_lock_duration));
boostLockDuration.setSummary(getString(R.string.boost_lock_duration_summary));
boostLockDuration.setMax(5000);
boostLockDuration.setMin(1);
boostLockDuration.setProgress(MSMHotplug.getMsmHotplugBoostLockDuration() - 1);
boostLockDuration.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugBoostLockDuration(position + 1, getActivity());
}
});
msmHotplug.add(boostLockDuration);
}
if (MSMHotplug.hasMsmHotplugDownLockDuration()) {
SeekBarView downLockDuration = new SeekBarView();
downLockDuration.setTitle(getString(R.string.down_lock_duration));
downLockDuration.setSummary(getString(R.string.down_lock_duration_summary));
downLockDuration.setMax(5000);
downLockDuration.setMin(1);
downLockDuration.setProgress(MSMHotplug.getMsmHotplugDownLockDuration() - 1);
downLockDuration.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugDownLockDuration(position + 1, getActivity());
}
});
msmHotplug.add(downLockDuration);
}
if (MSMHotplug.hasMsmHotplugHistorySize()) {
SeekBarView historySize = new SeekBarView();
historySize.setTitle(getString(R.string.history_size));
historySize.setSummary(getString(R.string.history_size_summary));
historySize.setMax(60);
historySize.setMin(1);
historySize.setProgress(MSMHotplug.getMsmHotplugHistorySize() - 1);
historySize.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugHistorySize(position + 1, getActivity());
}
});
msmHotplug.add(historySize);
}
if (MSMHotplug.hasMsmHotplugUpdateRate()) {
SeekBarView updateRate = new SeekBarView();
updateRate.setTitle(getString(R.string.update_rate));
updateRate.setSummary(getString(R.string.update_rate_summary));
updateRate.setMax(60);
updateRate.setProgress(MSMHotplug.getMsmHotplugUpdateRate());
updateRate.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugUpdateRate(position, getActivity());
}
});
msmHotplug.add(updateRate);
}
if (MSMHotplug.hasMsmHotplugFastLaneLoad()) {
SeekBarView fastLaneLoad = new SeekBarView();
fastLaneLoad.setTitle(getString(R.string.fast_lane_load));
fastLaneLoad.setSummary(getString(R.string.fast_lane_load_summary));
fastLaneLoad.setMax(400);
fastLaneLoad.setProgress(MSMHotplug.getMsmHotplugFastLaneLoad());
fastLaneLoad.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugFastLaneLoad(position, getActivity());
}
});
msmHotplug.add(fastLaneLoad);
}
if (MSMHotplug.hasMsmHotplugFastLaneMinFreq() && CPUFreq.getFreqs() != null) {
SelectView fastLaneMinFreq = new SelectView();
fastLaneMinFreq.setTitle(getString(R.string.fast_lane_min_freq));
fastLaneMinFreq.setSummary(getString(R.string.fast_lane_min_freq_summary));
fastLaneMinFreq.setItems(CPUFreq.getAdjustedFreq(getActivity()));
fastLaneMinFreq.setItem((MSMHotplug.getMsmHotplugFastLaneMinFreq() / 1000) + getString(R.string.mhz));
fastLaneMinFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MSMHotplug.setMsmHotplugFastLaneMinFreq(CPUFreq.getFreqs().get(position), getActivity());
}
});
msmHotplug.add(fastLaneMinFreq);
}
if (MSMHotplug.hasMsmHotplugOfflineLoad()) {
SeekBarView offlineLoad = new SeekBarView();
offlineLoad.setTitle(getString(R.string.offline_load));
offlineLoad.setSummary(getString(R.string.offline_load_summary));
offlineLoad.setProgress(MSMHotplug.getMsmHotplugOfflineLoad());
offlineLoad.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugOfflineLoad(position, getActivity());
}
});
msmHotplug.add(offlineLoad);
}
if (MSMHotplug.hasMsmHotplugIoIsBusy()) {
SwitchView ioIsBusy = new SwitchView();
ioIsBusy.setTitle(getString(R.string.io_is_busy));
ioIsBusy.setSummary(getString(R.string.io_is_busy_summary));
ioIsBusy.setChecked(MSMHotplug.isMsmHotplugIoIsBusyEnabled());
ioIsBusy.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MSMHotplug.enableMsmHotplugIoIsBusy(isChecked, getActivity());
}
});
msmHotplug.add(ioIsBusy);
}
if (MSMHotplug.hasMsmHotplugSuspendMaxCpus()) {
SeekBarView suspendMaxCpus = new SeekBarView();
suspendMaxCpus.setTitle(getString(R.string.max_cpu_online_screen_off));
suspendMaxCpus.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
suspendMaxCpus.setMax(CPUFreq.getCpuCount());
suspendMaxCpus.setMin(1);
suspendMaxCpus.setProgress(MSMHotplug.getMsmHotplugSuspendMaxCpus());
suspendMaxCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugSuspendMaxCpus(position, getActivity());
}
});
msmHotplug.add(suspendMaxCpus);
}
if (MSMHotplug.hasMsmHotplugSuspendFreq() && CPUFreq.getFreqs() != null) {
SelectView suspendFreq = new SelectView();
suspendFreq.setTitle(getString(R.string.cpu_max_screen_off_freq));
suspendFreq.setSummary(getString(R.string.cpu_max_screen_off_freq_summary));
suspendFreq.setItems(CPUFreq.getAdjustedFreq(getActivity()));
suspendFreq.setItem((MSMHotplug.getMsmHotplugSuspendFreq() / 1000) + getString(R.string.mhz));
suspendFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MSMHotplug.setMsmHotplugSuspendFreq(CPUFreq.getFreqs().get(position), getActivity());
}
});
msmHotplug.add(suspendFreq);
}
if (MSMHotplug.hasMsmHotplugSuspendDeferTime()) {
SeekBarView suspendDeferTime = new SeekBarView();
suspendDeferTime.setTitle(getString(R.string.suspend_defer_time));
suspendDeferTime.setUnit(getString(R.string.ms));
suspendDeferTime.setMax(5000);
suspendDeferTime.setOffset(10);
suspendDeferTime.setProgress(MSMHotplug.getMsmHotplugSuspendDeferTime() / 10);
suspendDeferTime.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MSMHotplug.setMsmHotplugSuspendDeferTime(position * 10, getActivity());
}
});
msmHotplug.add(suspendDeferTime);
}
if (msmHotplug.size() > 0) {
items.add(title);
items.addAll(msmHotplug);
}
}
private void makoHotplugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> makoHotplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.mako_hotplug));
if (MakoHotplug.hasMakoHotplugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.mako_hotplug));
enable.setSummary(getString(R.string.mako_hotplug_summary));
enable.setChecked(MakoHotplug.isMakoHotplugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MakoHotplug.enableMakoHotplug(isChecked, getActivity());
}
});
makoHotplug.add(enable);
mEnableViews.add(enable);
}
if (MakoHotplug.hasMakoHotplugCoresOnTouch()) {
SeekBarView coresOnTouch = new SeekBarView();
coresOnTouch.setTitle(getString(R.string.cpus_on_touch));
coresOnTouch.setSummary(getString(R.string.cpus_on_touch_summary));
coresOnTouch.setMax(CPUFreq.getCpuCount());
coresOnTouch.setMin(1);
coresOnTouch.setProgress(MakoHotplug.getMakoHotplugCoresOnTouch() - 1);
coresOnTouch.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugCoresOnTouch(position + 1, getActivity());
}
});
makoHotplug.add(coresOnTouch);
}
if (MakoHotplug.hasMakoHotplugCpuFreqUnplugLimit() && CPUFreq.getFreqs() != null) {
SelectView cpufreqUnplugLimit = new SelectView();
cpufreqUnplugLimit.setSummary(getString(R.string.cpu_freq_unplug_limit));
cpufreqUnplugLimit.setItems(CPUFreq.getAdjustedFreq(getActivity()));
cpufreqUnplugLimit.setItem((MakoHotplug.getMakoHotplugCpuFreqUnplugLimit() / 1000)
+ getString(R.string.mhz));
cpufreqUnplugLimit.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MakoHotplug.setMakoHotplugCpuFreqUnplugLimit(CPUFreq.getFreqs().get(position), getActivity());
}
});
makoHotplug.add(cpufreqUnplugLimit);
}
if (MakoHotplug.hasMakoHotplugFirstLevel()) {
SeekBarView firstLevel = new SeekBarView();
firstLevel.setTitle(getString(R.string.first_level));
firstLevel.setSummary(getString(R.string.first_level_summary));
firstLevel.setUnit("%");
firstLevel.setProgress(MakoHotplug.getMakoHotplugFirstLevel());
firstLevel.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugFirstLevel(position, getActivity());
}
});
makoHotplug.add(firstLevel);
}
if (MakoHotplug.hasMakoHotplugHighLoadCounter()) {
SeekBarView highLoadCounter = new SeekBarView();
highLoadCounter.setTitle(getString(R.string.high_load_counter));
highLoadCounter.setProgress(MakoHotplug.getMakoHotplugHighLoadCounter());
highLoadCounter.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugHighLoadCounter(position, getActivity());
}
});
makoHotplug.add(highLoadCounter);
}
if (MakoHotplug.hasMakoHotplugLoadThreshold()) {
SeekBarView loadThreshold = new SeekBarView();
loadThreshold.setTitle(getString(R.string.load_threshold));
loadThreshold.setSummary(getString(R.string.load_threshold_summary));
loadThreshold.setUnit("%");
loadThreshold.setProgress(MakoHotplug.getMakoHotplugLoadThreshold());
loadThreshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugLoadThreshold(position, getActivity());
}
});
makoHotplug.add(loadThreshold);
}
if (MakoHotplug.hasMakoHotplugMaxLoadCounter()) {
SeekBarView maxLoadCounter = new SeekBarView();
maxLoadCounter.setTitle(getString(R.string.max_load_counter));
maxLoadCounter.setProgress(MakoHotplug.getMakoHotplugMaxLoadCounter());
maxLoadCounter.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugMaxLoadCounter(position, getActivity());
}
});
makoHotplug.add(maxLoadCounter);
}
if (MakoHotplug.hasMakoHotplugMinTimeCpuOnline()) {
SeekBarView minTimeCpuOnline = new SeekBarView();
minTimeCpuOnline.setTitle(getString(R.string.min_time_cpu_online));
minTimeCpuOnline.setProgress(MakoHotplug.getMakoHotplugMinTimeCpuOnline());
minTimeCpuOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugMinTimeCpuOnline(position, getActivity());
}
});
makoHotplug.add(minTimeCpuOnline);
}
if (MakoHotplug.hasMakoHotplugMinCoresOnline()) {
SeekBarView minCoresOnline = new SeekBarView();
minCoresOnline.setTitle(getString(R.string.min_cpu_online));
minCoresOnline.setSummary(getString(R.string.min_cpu_online_summary));
minCoresOnline.setMax(CPUFreq.getCpuCount());
minCoresOnline.setMin(1);
minCoresOnline.setProgress(MakoHotplug.getMakoHotplugMinCoresOnline() - 1);
minCoresOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugMinCoresOnline(position + 1, getActivity());
}
});
makoHotplug.add(minCoresOnline);
}
if (MakoHotplug.hasMakoHotplugTimer()) {
SeekBarView timer = new SeekBarView();
timer.setTitle(getString(R.string.timer));
timer.setProgress(MakoHotplug.getMakoHotplugTimer());
timer.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MakoHotplug.setMakoHotplugTimer(position, getActivity());
}
});
makoHotplug.add(timer);
}
if (MakoHotplug.hasMakoHotplugSuspendFreq() && CPUFreq.getFreqs() != null) {
SelectView suspendFreq = new SelectView();
suspendFreq.setTitle(getString(R.string.cpu_max_screen_off_freq));
suspendFreq.setSummary(getString(R.string.cpu_max_screen_off_freq_summary));
suspendFreq.setItems(CPUFreq.getAdjustedFreq(getActivity()));
suspendFreq.setItem((MakoHotplug.getMakoHotplugSuspendFreq() / 1000) + getString(R.string.mhz));
suspendFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MakoHotplug.setMakoHotplugSuspendFreq(CPUFreq.getFreqs().get(position), getActivity());
}
});
makoHotplug.add(suspendFreq);
}
if (makoHotplug.size() > 0) {
items.add(title);
items.addAll(makoHotplug);
}
}
private void mbHotplugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> mbHotplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(MBHotplug.getMBName(getActivity()));
if (MBHotplug.hasMBGHotplugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(MBHotplug.getMBName(getActivity()));
enable.setSummary(getString(R.string.mb_hotplug_summary));
enable.setChecked(MBHotplug.isMBHotplugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MBHotplug.enableMBHotplug(isChecked, getActivity());
}
});
mbHotplug.add(enable);
mEnableViews.add(enable);
}
if (MBHotplug.hasMBHotplugScroffSingleCore()) {
SwitchView scroffSingleCore = new SwitchView();
scroffSingleCore.setTitle(getString(R.string.screen_off_single_cpu));
scroffSingleCore.setSummary(getString(R.string.screen_off_single_cpu_summary));
scroffSingleCore.setChecked(MBHotplug.isMBHotplugScroffSingleCoreEnabled());
scroffSingleCore.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MBHotplug.enableMBHotplugScroffSingleCore(isChecked, getActivity());
}
});
mbHotplug.add(scroffSingleCore);
}
if (MBHotplug.hasMBHotplugMinCpus()) {
SeekBarView minCpus = new SeekBarView();
minCpus.setTitle(getString(R.string.min_cpu_online));
minCpus.setSummary(getString(R.string.min_cpu_online_summary));
minCpus.setMax(CPUFreq.getCpuCount());
minCpus.setMin(1);
minCpus.setProgress(MBHotplug.getMBHotplugMinCpus() - 1);
minCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugMinCpus(position + 1, getActivity());
}
});
mbHotplug.add(minCpus);
}
if (MBHotplug.hasMBHotplugMaxCpus()) {
SeekBarView maxCpus = new SeekBarView();
maxCpus.setTitle(getString(R.string.max_cpu_online));
maxCpus.setSummary(getString(R.string.max_cpu_online_summary));
maxCpus.setMax(CPUFreq.getCpuCount());
maxCpus.setMin(1);
maxCpus.setProgress(MBHotplug.getMBHotplugMaxCpus() - 1);
maxCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugMaxCpus(position + 1, getActivity());
}
});
mbHotplug.add(maxCpus);
}
if (MBHotplug.hasMBHotplugMaxCpusOnlineSusp()) {
SeekBarView maxCpusOnlineSusp = new SeekBarView();
maxCpusOnlineSusp.setTitle(getString(R.string.max_cpu_online_screen_off));
maxCpusOnlineSusp.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
maxCpusOnlineSusp.setMax(CPUFreq.getCpuCount());
maxCpusOnlineSusp.setMin(1);
maxCpusOnlineSusp.setProgress(MBHotplug.getMBHotplugMaxCpusOnlineSusp() - 1);
maxCpusOnlineSusp.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugMaxCpusOnlineSusp(position + 1, getActivity());
}
});
mbHotplug.add(maxCpusOnlineSusp);
}
if (MBHotplug.hasMBHotplugIdleFreq() && CPUFreq.getFreqs() != null) {
SelectView idleFreq = new SelectView();
idleFreq.setTitle(getString(R.string.idle_frequency));
idleFreq.setSummary(getString(R.string.idle_frequency_summary));
idleFreq.setItems(CPUFreq.getAdjustedFreq(getActivity()));
idleFreq.setItem((MBHotplug.getMBHotplugIdleFreq() / 1000) + getString(R.string.mhz));
idleFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MBHotplug.setMBHotplugIdleFreq(CPUFreq.getFreqs().get(position), getActivity());
}
});
mbHotplug.add(idleFreq);
}
if (MBHotplug.hasMBHotplugBoostEnable()) {
SwitchView boost = new SwitchView();
boost.setTitle(getString(R.string.touch_boost));
boost.setSummary(getString(R.string.touch_boost_summary));
boost.setChecked(MBHotplug.isMBHotplugBoostEnabled());
boost.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
MBHotplug.enableMBHotplugBoost(isChecked, getActivity());
}
});
mbHotplug.add(boost);
}
if (MBHotplug.hasMBHotplugBoostTime()) {
SeekBarView boostTime = new SeekBarView();
boostTime.setTitle(getString(R.string.touch_boost_time));
boostTime.setSummary(getString(R.string.touch_boost_time_summary));
boostTime.setUnit(getString(R.string.ms));
boostTime.setMax(5000);
boostTime.setOffset(100);
boostTime.setProgress(MBHotplug.getMBHotplugBoostTime() / 100);
boostTime.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugBoostTime(position * 100, getActivity());
}
});
mbHotplug.add(boostTime);
}
if (MBHotplug.hasMBHotplugCpusBoosted()) {
SeekBarView cpusBoosted = new SeekBarView();
cpusBoosted.setTitle(getString(R.string.cpus_boosted));
cpusBoosted.setSummary(getString(R.string.cpus_boosted_summary));
cpusBoosted.setMax(CPUFreq.getCpuCount());
cpusBoosted.setMin(1);
cpusBoosted.setProgress(MBHotplug.getMBHotplugCpusBoosted());
cpusBoosted.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugCpusBoosted(position, getActivity());
}
});
mbHotplug.add(cpusBoosted);
}
if (MBHotplug.hasMBHotplugBoostFreqs() && CPUFreq.getFreqs() != null) {
List<Integer> freqs = MBHotplug.getMBHotplugBoostFreqs();
for (int i = 0; i < freqs.size(); i++) {
SelectView boostFreq = new SelectView();
boostFreq.setSummary(getString(R.string.boost_frequency_core, i));
boostFreq.setItems(CPUFreq.getAdjustedFreq(getActivity()));
boostFreq.setItem((freqs.get(i) / 1000) + getString(R.string.mhz));
final int pos = i;
boostFreq.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
MBHotplug.setMBHotplugBoostFreqs(pos, CPUFreq.getFreqs().get(position), getActivity());
}
});
mbHotplug.add(boostFreq);
}
}
if (MBHotplug.hasMBHotplugStartDelay()) {
SeekBarView startDelay = new SeekBarView();
startDelay.setTitle(getString(R.string.start_delay));
startDelay.setSummary(getString(R.string.start_delay_summary));
startDelay.setUnit(getString(R.string.ms));
startDelay.setMax(5000);
startDelay.setOffset(1000);
startDelay.setProgress(MBHotplug.getMBHotplugStartDelay() / 1000);
startDelay.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugStartDelay(position * 1000, getActivity());
}
});
mbHotplug.add(startDelay);
}
if (MBHotplug.hasMBHotplugDelay()) {
SeekBarView delay = new SeekBarView();
delay.setTitle(getString(R.string.delay));
delay.setSummary(getString(R.string.delay_summary));
delay.setUnit(getString(R.string.ms));
delay.setMax(200);
delay.setProgress(MBHotplug.getMBHotplugDelay());
delay.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugDelay(position, getActivity());
}
});
mbHotplug.add(delay);
}
if (MBHotplug.hasMBHotplugPause()) {
SeekBarView pause = new SeekBarView();
pause.setTitle(getString(R.string.pause));
pause.setSummary(getString(R.string.pause_summary));
pause.setUnit(getString(R.string.ms));
pause.setMax(5000);
pause.setOffset(1000);
pause.setProgress(MBHotplug.getMBHotplugPause() / 1000);
pause.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
MBHotplug.setMBHotplugPause(position * 1000, getActivity());
}
});
mbHotplug.add(pause);
}
if (mbHotplug.size() > 0) {
items.add(title);
items.addAll(mbHotplug);
}
}
private void alucardHotplugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> alucardHotplug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.alucard_hotplug));
if (AlucardHotplug.hasAlucardHotplugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.alucard_hotplug));
enable.setSummary(getString(R.string.alucard_hotplug_summary));
enable.setChecked(AlucardHotplug.isAlucardHotplugEnable());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
AlucardHotplug.enableAlucardHotplug(isChecked, getActivity());
}
});
alucardHotplug.add(enable);
mEnableViews.add(enable);
}
if (AlucardHotplug.hasAlucardHotplugHpIoIsBusy()) {
SwitchView ioIsBusy = new SwitchView();
ioIsBusy.setTitle(getString(R.string.io_is_busy));
ioIsBusy.setSummary(getString(R.string.io_is_busy_summary));
ioIsBusy.setChecked(AlucardHotplug.isAlucardHotplugHpIoIsBusyEnable());
ioIsBusy.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
AlucardHotplug.enableAlucardHotplugHpIoIsBusy(isChecked, getActivity());
}
});
alucardHotplug.add(ioIsBusy);
}
if (AlucardHotplug.hasAlucardHotplugSamplingRate()) {
SeekBarView samplingRate = new SeekBarView();
samplingRate.setTitle(getString(R.string.sampling_rate));
samplingRate.setUnit("%");
samplingRate.setMin(1);
samplingRate.setProgress(AlucardHotplug.getAlucardHotplugSamplingRate() - 1);
samplingRate.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugSamplingRate(position + 1, getActivity());
}
});
alucardHotplug.add(samplingRate);
}
if (AlucardHotplug.hasAlucardHotplugSuspend()) {
SwitchView suspend = new SwitchView();
suspend.setTitle(getString(R.string.suspend));
suspend.setSummary(getString(R.string.suspend_summary));
suspend.setChecked(AlucardHotplug.isAlucardHotplugSuspendEnabled());
suspend.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
AlucardHotplug.enableAlucardHotplugSuspend(isChecked, getActivity());
}
});
alucardHotplug.add(suspend);
}
if (AlucardHotplug.hasAlucardHotplugMinCpusOnline()) {
SeekBarView minCpusOnline = new SeekBarView();
minCpusOnline.setTitle(getString(R.string.min_cpu_online));
minCpusOnline.setSummary(getString(R.string.min_cpu_online_summary));
minCpusOnline.setMax(CPUFreq.getCpuCount());
minCpusOnline.setMin(1);
minCpusOnline.setProgress(AlucardHotplug.getAlucardHotplugMinCpusOnline() - 1);
minCpusOnline.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugMinCpusOnline(position + 1, getActivity());
}
});
alucardHotplug.add(minCpusOnline);
}
if (AlucardHotplug.hasAlucardHotplugMaxCoresLimit()) {
SeekBarView maxCoresLimit = new SeekBarView();
maxCoresLimit.setTitle(getString(R.string.max_cpu_online));
maxCoresLimit.setSummary(getString(R.string.max_cpu_online_summary));
maxCoresLimit.setMax(CPUFreq.getCpuCount());
maxCoresLimit.setMin(1);
maxCoresLimit.setProgress(AlucardHotplug.getAlucardHotplugMaxCoresLimit() - 1);
maxCoresLimit.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugMaxCoresLimit(position + 1, getActivity());
}
});
alucardHotplug.add(maxCoresLimit);
}
if (AlucardHotplug.hasAlucardHotplugMaxCoresLimitSleep()) {
SeekBarView maxCoresLimitSleep = new SeekBarView();
maxCoresLimitSleep.setTitle(getString(R.string.max_cpu_online_screen_off));
maxCoresLimitSleep.setSummary(getString(R.string.max_cpu_online_screen_off_summary));
maxCoresLimitSleep.setMax(CPUFreq.getCpuCount());
maxCoresLimitSleep.setMin(1);
maxCoresLimitSleep.setProgress(AlucardHotplug.getAlucardHotplugMaxCoresLimitSleep() - 1);
maxCoresLimitSleep.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugMaxCoresLimitSleep(position + 1, getActivity());
}
});
alucardHotplug.add(maxCoresLimitSleep);
}
if (AlucardHotplug.hasAlucardHotplugCpuDownRate()) {
SeekBarView cpuDownRate = new SeekBarView();
cpuDownRate.setTitle(getString(R.string.cpu_down_rate));
cpuDownRate.setUnit("%");
cpuDownRate.setMin(1);
cpuDownRate.setProgress(AlucardHotplug.getAlucardHotplugCpuDownRate() - 1);
cpuDownRate.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugCpuDownRate(position + 1, getActivity());
}
});
alucardHotplug.add(cpuDownRate);
}
if (AlucardHotplug.hasAlucardHotplugCpuUpRate()) {
SeekBarView cpuUpRate = new SeekBarView();
cpuUpRate.setTitle(getString(R.string.cpu_up_rate));
cpuUpRate.setUnit("%");
cpuUpRate.setMin(1);
cpuUpRate.setProgress(AlucardHotplug.getAlucardHotplugCpuUpRate() - 1);
cpuUpRate.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AlucardHotplug.setAlucardHotplugCpuUpRate(position + 1, getActivity());
}
});
alucardHotplug.add(cpuUpRate);
}
if (alucardHotplug.size() > 0) {
items.add(title);
items.addAll(alucardHotplug);
}
}
private void thunderPlugInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> thunderPlug = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.thunderplug));
if (ThunderPlug.hasThunderPlugEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.thunderplug));
enable.setSummary(getString(R.string.thunderplug_summary));
enable.setChecked(ThunderPlug.isThunderPlugEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
ThunderPlug.enableThunderPlug(isChecked, getActivity());
}
});
thunderPlug.add(enable);
mEnableViews.add(enable);
}
if (ThunderPlug.hasThunderPlugSuspendCpus()) {
SeekBarView suspendCpus = new SeekBarView();
suspendCpus.setTitle(getString(R.string.min_cpu_online_screen_off));
suspendCpus.setSummary(getString(R.string.min_cpu_online_screen_off_summary));
suspendCpus.setMax(CPUFreq.getCpuCount());
suspendCpus.setMin(1);
suspendCpus.setProgress(ThunderPlug.getThunderPlugSuspendCpus() - 1);
suspendCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
ThunderPlug.setThunderPlugSuspendCpus(position + 1, getActivity());
}
});
thunderPlug.add(suspendCpus);
}
if (ThunderPlug.hasThunderPlugEnduranceLevel()) {
SelectView enduranceLevel = new SelectView();
enduranceLevel.setTitle(getString(R.string.endurance_level));
enduranceLevel.setSummary(getString(R.string.endurance_level_summary));
enduranceLevel.setItems(Arrays.asList(getResources().getStringArray(R.array.endurance_level_items)));
enduranceLevel.setItem(ThunderPlug.getThunderPlugEnduranceLevel());
enduranceLevel.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
ThunderPlug.setThunderPlugEnduranceLevel(position, getActivity());
}
});
thunderPlug.add(enduranceLevel);
}
if (ThunderPlug.hasThunderPlugSamplingRate()) {
SeekBarView samplingRate = new SeekBarView();
samplingRate.setTitle(getString(R.string.sampling_rate));
samplingRate.setMax(2600);
samplingRate.setMin(100);
samplingRate.setOffset(50);
samplingRate.setProgress(ThunderPlug.getThunderPlugSamplingRate() / 50);
samplingRate.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
ThunderPlug.setThunderPlugSamplingRate(position * 50, getActivity());
}
});
thunderPlug.add(samplingRate);
}
if (ThunderPlug.hasThunderPlugLoadThreshold()) {
SeekBarView loadThreadshold = new SeekBarView();
loadThreadshold.setTitle(getString(R.string.load_threshold));
loadThreadshold.setSummary(getString(R.string.load_threshold_summary));
loadThreadshold.setMin(11);
loadThreadshold.setProgress(ThunderPlug.getThunderPlugLoadThreshold() - 11);
loadThreadshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
ThunderPlug.setThunderPlugLoadThreshold(position + 11, getActivity());
}
});
thunderPlug.add(loadThreadshold);
}
if (ThunderPlug.hasThunderPlugTouchBoost()) {
SwitchView touchBoost = new SwitchView();
touchBoost.setTitle(getString(R.string.touch_boost));
touchBoost.setSummary(getString(R.string.touch_boost_summary));
touchBoost.setChecked(ThunderPlug.isThunderPlugTouchBoostEnabled());
touchBoost.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
ThunderPlug.enableThunderPlugTouchBoost(isChecked, getActivity());
}
});
thunderPlug.add(touchBoost);
}
if (thunderPlug.size() > 0) {
items.add(title);
items.addAll(thunderPlug);
}
}
private void zenDecisionInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> zenDecision = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.zen_decision));
if (ZenDecision.hasZenDecisionEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.zen_decision));
enable.setSummary(getString(R.string.zen_decision_summary));
enable.setChecked(ZenDecision.isZenDecisionEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
ZenDecision.enableZenDecision(isChecked, getActivity());
}
});
zenDecision.add(enable);
mEnableViews.add(enable);
}
if (ZenDecision.hasZenDecisionWakeWaitTime()) {
SeekBarView wakeWaitTime = new SeekBarView();
wakeWaitTime.setTitle(getString(R.string.wake_wait_time));
wakeWaitTime.setSummary(getString(R.string.wake_wait_time_summary));
wakeWaitTime.setUnit(getString(R.string.ms));
wakeWaitTime.setMax(6000);
wakeWaitTime.setOffset(1000);
wakeWaitTime.setProgress(ZenDecision.getZenDecisionWakeWaitTime() / 1000);
wakeWaitTime.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
ZenDecision.setZenDecisionWakeWaitTime(position * 1000, getActivity());
}
});
zenDecision.add(wakeWaitTime);
}
if (ZenDecision.hasZenDecisionBatThresholdIgnore()) {
SeekBarView batThresholdIgnore = new SeekBarView();
batThresholdIgnore.setTitle(getString(R.string.bat_threshold_ignore));
batThresholdIgnore.setSummary(getString(R.string.bat_threshold_ignore_summary));
batThresholdIgnore.setUnit("%");
batThresholdIgnore.setMin(1);
batThresholdIgnore.setProgress(ZenDecision.getZenDecisionBatThresholdIgnore());
batThresholdIgnore.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
ZenDecision.setZenDecisionBatThresholdIgnore(position, getActivity());
}
});
zenDecision.add(batThresholdIgnore);
}
if (zenDecision.size() > 0) {
items.add(title);
items.addAll(zenDecision);
}
}
private void autoSmpInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> autoSmp = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(R.string.autosmp));
if (AutoSmp.hasAutoSmpEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.autosmp));
enable.setSummary(getString(R.string.autosmp_summary));
enable.setChecked(AutoSmp.isAutoSmpEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
AutoSmp.enableAutoSmp(isChecked, getActivity());
}
});
autoSmp.add(enable);
mEnableViews.add(enable);
}
if (AutoSmp.hasAutoSmpCpufreqDown()) {
SeekBarView cpuFreqDown = new SeekBarView();
cpuFreqDown.setTitle(getString(R.string.downrate_limits));
cpuFreqDown.setUnit("%");
cpuFreqDown.setProgress(AutoSmp.getAutoSmpCpufreqDown());
cpuFreqDown.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpCpufreqDown(position, getActivity());
}
});
autoSmp.add(cpuFreqDown);
}
if (AutoSmp.hasAutoSmpCpufreqUp()) {
SeekBarView cpuFreqUp = new SeekBarView();
cpuFreqUp.setTitle(getString(R.string.uprate_limits));
cpuFreqUp.setUnit("%");
cpuFreqUp.setProgress(AutoSmp.getAutoSmpCpufreqUp());
cpuFreqUp.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpCpufreqUp(position, getActivity());
}
});
autoSmp.add(cpuFreqUp);
}
if (AutoSmp.hasAutoSmpCycleDown()) {
SeekBarView cycleDown = new SeekBarView();
cycleDown.setTitle(getString(R.string.cycle_down));
cycleDown.setSummary(getString(R.string.cycle_down_summary));
cycleDown.setMax(CPUFreq.getCpuCount());
cycleDown.setProgress(AutoSmp.getAutoSmpCycleDown());
cycleDown.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpCycleDown(position, getActivity());
}
});
autoSmp.add(cycleDown);
}
if (AutoSmp.hasAutoSmpCycleUp()) {
SeekBarView cycleUp = new SeekBarView();
cycleUp.setTitle(getString(R.string.cycle_up));
cycleUp.setSummary(getString(R.string.cycle_up_summary));
cycleUp.setMax(CPUFreq.getCpuCount());
cycleUp.setProgress(AutoSmp.getAutoSmpCycleUp());
cycleUp.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpCycleUp(position, getActivity());
}
});
autoSmp.add(cycleUp);
}
if (AutoSmp.hasAutoSmpDelay()) {
SeekBarView delay = new SeekBarView();
delay.setTitle(getString(R.string.delay));
delay.setSummary(getString(R.string.delay_summary));
delay.setUnit(getString(R.string.ms));
delay.setMax(500);
delay.setProgress(AutoSmp.getAutoSmpDelay());
delay.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpDelay(position, getActivity());
}
});
autoSmp.add(delay);
}
if (AutoSmp.hasAutoSmpMaxCpus()) {
SeekBarView maxCpus = new SeekBarView();
maxCpus.setTitle(getString(R.string.max_cpu_online));
maxCpus.setSummary(getString(R.string.max_cpu_online_summary));
maxCpus.setMax(CPUFreq.getCpuCount());
maxCpus.setMin(1);
maxCpus.setProgress(AutoSmp.getAutoSmpMaxCpus() - 1);
maxCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpMaxCpus(position + 1, getActivity());
}
});
autoSmp.add(maxCpus);
}
if (AutoSmp.hasAutoSmpMinCpus()) {
SeekBarView minCpus = new SeekBarView();
minCpus.setTitle(getString(R.string.min_cpu_online));
minCpus.setSummary(getString(R.string.min_cpu_online_summary));
minCpus.setMax(CPUFreq.getCpuCount());
minCpus.setMin(1);
minCpus.setProgress(AutoSmp.getAutoSmpMinCpus() - 1);
minCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
AutoSmp.setAutoSmpMinCpus(position + 1, getActivity());
}
});
autoSmp.add(minCpus);
}
if (AutoSmp.hasAutoSmpScroffSingleCore()) {
SwitchView scroffSingleCore = new SwitchView();
scroffSingleCore.setTitle(getString(R.string.screen_off_single_cpu));
scroffSingleCore.setSummary(getString(R.string.screen_off_single_cpu_summary));
scroffSingleCore.setChecked(AutoSmp.isAutoSmpScroffSingleCoreEnabled());
scroffSingleCore.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
AutoSmp.enableAutoSmpScroffSingleCoreActive(isChecked, getActivity());
}
});
autoSmp.add(scroffSingleCore);
}
if (autoSmp.size() > 0) {
items.add(title);
items.addAll(autoSmp);
}
}
private void coreCtlInit(List<RecyclerViewItem> items) {
List<RecyclerViewItem> coreCtl = new ArrayList<>();
TitleView title = new TitleView();
title.setText(getString(CoreCtl.hasEnable() ? R.string.hcube : R.string.core_control));
if (CoreCtl.hasMinCpus(CPUFreq.getBigCpu())) {
SeekBarView minCpus = new SeekBarView();
minCpus.setTitle(getString(R.string.min_cpus_big));
minCpus.setSummary(getString(R.string.min_cpus_big_summary));
minCpus.setMax(CPUFreq.getBigCpuRange().size());
minCpus.setProgress(CoreCtl.getMinCpus(CPUFreq.getBigCpu()));
minCpus.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
CoreCtl.setMinCpus(position, CPUFreq.getBigCpu(), getActivity());
}
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
});
coreCtl.add(minCpus);
}
if (CoreCtl.hasBusyDownThreshold()) {
SeekBarView busyDownThreshold = new SeekBarView();
busyDownThreshold.setTitle(getString(R.string.busy_down_threshold));
busyDownThreshold.setSummary(getString(R.string.busy_down_threshold_summary));
busyDownThreshold.setProgress(CoreCtl.getBusyDownThreshold());
busyDownThreshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
CoreCtl.setBusyDownThreshold(position, getActivity());
}
});
coreCtl.add(busyDownThreshold);
}
if (CoreCtl.hasBusyUpThreshold()) {
SeekBarView busyUpThreshold = new SeekBarView();
busyUpThreshold.setTitle(getString(R.string.busy_up_threshold));
busyUpThreshold.setSummary(getString(R.string.busy_up_threshold_summary));
busyUpThreshold.setProgress(CoreCtl.getBusyUpThreshold());
busyUpThreshold.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
CoreCtl.setBusyUpThreshold(position, getActivity());
}
});
coreCtl.add(busyUpThreshold);
}
if (CoreCtl.hasOfflineDelayMs()) {
SeekBarView offlineDelayMs = new SeekBarView();
offlineDelayMs.setTitle(getString(R.string.offline_delay));
offlineDelayMs.setSummary(getString(R.string.offline_delay_summary));
offlineDelayMs.setUnit(getString(R.string.ms));
offlineDelayMs.setMax(5000);
offlineDelayMs.setOffset(100);
offlineDelayMs.setProgress(CoreCtl.getOfflineDelayMs() / 100);
offlineDelayMs.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
CoreCtl.setOfflineDelayMs(position * 100, getActivity());
}
});
coreCtl.add(offlineDelayMs);
}
if (coreCtl.size() > 0) {
items.add(title);
if (CoreCtl.hasEnable()) {
SwitchView enable = new SwitchView();
enable.setTitle(getString(R.string.hcube));
enable.setSummary(getString(R.string.hcube_summary));
enable.setChecked(CoreCtl.isEnabled());
enable.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
CoreCtl.enable(isChecked, getActivity());
}
});
items.add(enable);
mEnableViews.add(enable);
} else {
DescriptionView description = new DescriptionView();
description.setTitle(getString(R.string.core_control));
description.setSummary(getString(R.string.core_control_summary));
items.add(description);
}
items.addAll(coreCtl);
}
}
}