package com.androguide.honamicontrol.kernel.cpucontrol;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.androguide.honamicontrol.R;
import com.androguide.honamicontrol.helpers.CMDProcessor.CMDProcessor;
import com.androguide.honamicontrol.helpers.CPUHelper;
import com.androguide.honamicontrol.helpers.Helpers;
import com.fima.cardsui.objects.CardStack;
import com.fima.cardsui.views.CardEdit;
import com.fima.cardsui.views.CardUI;
public class GovernorDialog extends DialogFragment implements CPUInterface {
ActionBarActivity fa;
public static GovernorDialog newInstance() {
return new GovernorDialog();
}
public GovernorDialog() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle(getString(R.string.governor_customization));
LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.cardsui, container, false);
fa = (ActionBarActivity) super.getActivity();
assert ll != null;
CardUI cardsUI = (CardUI) ll.findViewById(R.id.cardsui);
final String currGovernor = CPUHelper.readOneLineNotRoot(GOVERNOR_ALL_CORES);
cardsUI.addStack(new CardStack(""));
cardsUI.addStack(new CardStack(currGovernor.toUpperCase()));
if (Helpers.doesFileExist(GOV_CUSTOMIZATION + "/" + currGovernor)) {
String[] paramsList = CMDProcessor.runShellCommand("ls " + GOV_CUSTOMIZATION + "/" + currGovernor)
.getStdout().split("\n");
final SharedPreferences govPrefs = fa.getSharedPreferences("GOVERNOR_CUSTOMIZATION", 0);
govPrefs.edit().putString("TARGET_GOV", currGovernor).commit();
for (final String param : paramsList) {
final String[] userInput = {""};
cardsUI.addCard(new CardEdit(
param,
Helpers.readOneLine(GOV_CUSTOMIZATION + "/" + currGovernor + "/" + param),
"#1abc9c",
new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
userInput[0] = s.toString();
}
},
new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
String toApply = "busybox echo \'" + userInput[0] + "\' > " + GOV_CUSTOMIZATION + "/" + currGovernor + "/" + param;
CMDProcessor.runSuCommand(toApply);
govPrefs.edit().putString(param, toApply).commit();
}
}
}
));
}
cardsUI.refresh();
} else
Toast.makeText(super.getActivity(), fa.getString(R.string.governor_customization_error), Toast.LENGTH_LONG).show();
return ll;
}
}