/*
* 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.kernel.wake.Dt2s;
import com.grarak.kerneladiutor.utils.kernel.wake.Dt2w;
import com.grarak.kerneladiutor.utils.kernel.wake.Gestures;
import com.grarak.kerneladiutor.utils.kernel.wake.Misc;
import com.grarak.kerneladiutor.utils.kernel.wake.S2s;
import com.grarak.kerneladiutor.utils.kernel.wake.S2w;
import com.grarak.kerneladiutor.utils.kernel.wake.T2w;
import com.grarak.kerneladiutor.views.recyclerview.CardView;
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 java.util.ArrayList;
import java.util.List;
/**
* Created by willi on 23.06.16.
*/
public class WakeFrament extends RecyclerViewFragment {
@Override
protected void init() {
super.init();
addViewPagerFragment(ApplyOnBootFragment.newInstance(this));
}
@Override
protected void addItems(List<RecyclerViewItem> items) {
if (Dt2w.supported()) {
dt2wInit(items);
}
s2wInit(items);
if (T2w.supported()) {
t2wInit(items);
}
if (Dt2s.supported()) {
dt2sInit(items);
}
if (S2s.supported()) {
s2sInit(items);
}
if (Misc.hasWake()) {
wakeMiscInit(items);
}
if (Gestures.supported()) {
gestureInit(items);
}
if (Misc.hasCamera()) {
cameraInit(items);
}
if (Misc.hasPocket()) {
pocketInit(items);
}
if (Misc.hasTimeout()) {
timeoutInit(items);
}
if (Misc.hasPowerKeySuspend()) {
powerKeySuspendInit(items);
}
areaInit(items);
vibrationInit(items);
}
private void dt2wInit(List<RecyclerViewItem> items) {
SelectView dt2w = new SelectView();
dt2w.setTitle(getString(R.string.dt2w));
dt2w.setSummary(getString(R.string.dt2w_summary));
dt2w.setItems(Dt2w.getMenu(getActivity()));
dt2w.setItem(Dt2w.get());
dt2w.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
Dt2w.set(position, getActivity());
}
});
items.add(dt2w);
}
private void s2wInit(List<RecyclerViewItem> items) {
if (S2w.supported()) {
SelectView s2w = new SelectView();
s2w.setTitle(getString(R.string.s2w));
s2w.setSummary(getString(R.string.s2w_summary));
s2w.setItems(S2w.getMenu(getActivity()));
s2w.setItem(S2w.get());
s2w.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
S2w.set(position, getActivity());
}
});
items.add(s2w);
}
if (S2w.hasLenient()) {
SwitchView lenient = new SwitchView();
lenient.setTitle(getString(R.string.lenient));
lenient.setSummary(getString(R.string.lenient_summary));
lenient.setChecked(S2w.isLenientEnabled());
lenient.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
S2w.enableLenient(isChecked, getActivity());
}
});
items.add(lenient);
}
}
private void t2wInit(List<RecyclerViewItem> items) {
SelectView t2w = new SelectView();
t2w.setTitle(getString(R.string.t2w));
t2w.setSummary(getString(R.string.t2w_summary));
t2w.setItems(T2w.getMenu(getActivity()));
t2w.setItem(T2w.get());
t2w.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
T2w.set(position, getActivity());
}
});
items.add(t2w);
}
private void dt2sInit(List<RecyclerViewItem> items) {
SelectView dt2s = new SelectView();
dt2s.setTitle(getString(R.string.dt2s));
dt2s.setSummary(getString(R.string.dt2s_summary));
dt2s.setItems(Dt2s.getMenu(getActivity()));
dt2s.setItem(Dt2s.get());
dt2s.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
Dt2s.set(position, getActivity());
}
});
items.add(dt2s);
}
private void s2sInit(List<RecyclerViewItem> items) {
SelectView s2s = new SelectView();
s2s.setTitle(getString(R.string.s2s));
s2s.setSummary(getString(R.string.s2s_summary));
s2s.setItems(S2s.getMenu(getActivity()));
s2s.setItem(S2s.get());
s2s.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
S2s.set(position, getActivity());
}
});
items.add(s2s);
}
private void wakeMiscInit(List<RecyclerViewItem> items) {
SelectView wake = new SelectView();
wake.setSummary(getString(R.string.wake));
wake.setItems(Misc.getWakeMenu(getActivity()));
wake.setItem(Misc.getWake());
wake.setOnItemSelected(new SelectView.OnItemSelected() {
@Override
public void onItemSelected(SelectView selectView, int position, String item) {
Misc.setWake(position, getActivity());
}
});
items.add(wake);
}
private void gestureInit(List<RecyclerViewItem> items) {
List<String> gestures = Gestures.getMenu(getActivity());
for (int i = 0; i < gestures.size(); i++) {
SwitchView gesture = new SwitchView();
gesture.setSummary(gestures.get(i));
gesture.setChecked(Gestures.isEnabled(i));
final int position = i;
gesture.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
Gestures.enable(isChecked, position, getActivity());
}
});
items.add(gesture);
}
}
private void cameraInit(List<RecyclerViewItem> items) {
SwitchView camera = new SwitchView();
camera.setTitle(getString(R.string.camera_gesture));
camera.setSummary(getString(R.string.camera_gesture_summary));
camera.setChecked(Misc.isCameraEnabled());
camera.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
Misc.enableCamera(isChecked, getActivity());
}
});
items.add(camera);
}
private void pocketInit(List<RecyclerViewItem> items) {
SwitchView pocket = new SwitchView();
pocket.setTitle(getString(R.string.pocket_mode));
pocket.setSummary(getString(R.string.pocket_mode_summary));
pocket.setChecked(Misc.isPocketEnabled());
pocket.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
Misc.enablePocket(isChecked, getActivity());
}
});
items.add(pocket);
}
private void timeoutInit(List<RecyclerViewItem> items) {
List<String> list = new ArrayList<>();
list.add(getString(R.string.disabled));
for (int i = 1; i <= Misc.getTimeoutMax(); i++)
list.add(i + getString(R.string.min));
SeekBarView timeout = new SeekBarView();
timeout.setTitle(getString(R.string.timeout));
timeout.setSummary(getString(R.string.timeout_summary));
timeout.setItems(list);
timeout.setProgress(Misc.getTimeout());
timeout.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
Misc.setTimeout(position, getActivity());
}
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
});
items.add(timeout);
}
private void powerKeySuspendInit(List<RecyclerViewItem> items) {
SwitchView powerKeySuspend = new SwitchView();
powerKeySuspend.setTitle(getString(R.string.power_key_suspend));
powerKeySuspend.setSummary(getString(R.string.power_key_suspend_summary));
powerKeySuspend.setChecked(Misc.isPowerKeySuspendEnabled());
powerKeySuspend.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
Misc.enablePowerKeySuspend(isChecked, getActivity());
}
});
items.add(powerKeySuspend);
}
private void areaInit(List<RecyclerViewItem> items) {
CardView areaCard = new CardView(getActivity());
areaCard.setTitle(getString(R.string.area));
if (Dt2s.hasWidth()) {
final int w = getResources().getDisplayMetrics().widthPixels;
SeekBarView width = new SeekBarView();
width.setTitle(getString(R.string.width));
width.setUnit(getString(R.string.px));
width.setMax(w);
width.setMin(Math.round(w / 28.8f));
width.setProgress(Dt2s.getWidth() - Math.round(w / 28.8f));
width.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
Dt2s.setWidth(position + Math.round(w / 28.8f), getActivity());
}
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
});
areaCard.addItem(width);
}
if (Dt2s.hasHeight()) {
final int h = getResources().getDisplayMetrics().heightPixels;
SeekBarView height = new SeekBarView();
height.setTitle(getString(R.string.height));
height.setUnit(getString(R.string.px));
height.setMax(h);
height.setMin(Math.round(h / 51.2f));
height.setProgress(Dt2s.getHeight() - Math.round(h / 51.2f));
height.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
Dt2s.setHeight(position + Math.round(h / 51.2f), getActivity());
}
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
});
areaCard.addItem(height);
}
if (areaCard.size() > 0) {
items.add(areaCard);
}
}
private void vibrationInit(List<RecyclerViewItem> items) {
if (Misc.hasVibration()) {
SwitchView vibration = new SwitchView();
vibration.setSummary(getString(R.string.vibration));
vibration.setChecked(Misc.isVibrationEnabled());
vibration.addOnSwitchListener(new SwitchView.OnSwitchListener() {
@Override
public void onChanged(SwitchView switchView, boolean isChecked) {
Misc.enableVibration(isChecked, getActivity());
}
});
items.add(vibration);
}
if (Misc.hasVibVibration()) {
SeekBarView vibVibration = new SeekBarView();
vibVibration.setTitle(getString(R.string.vibration_strength));
vibVibration.setUnit("%");
vibVibration.setMax(90);
vibVibration.setProgress(Misc.getVibVibration());
vibVibration.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
@Override
public void onStop(SeekBarView seekBarView, int position, String value) {
Misc.setVibVibration(position, getActivity());
}
@Override
public void onMove(SeekBarView seekBarView, int position, String value) {
}
});
items.add(vibVibration);
}
}
}