package it.quadrata.android.quad_prox_mob;
import it.quadrata.android.quad_prox_mob.WidgetPrefsActivity.CheckboxChangeListener;
import java.util.Map;
import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class NotifyActivity extends Activity implements OnClickCallback {
private Map<String, String> prefs;
private CheckBox notifyChange;
private CheckBox notifyCpu;
private CheckBox notifyMem;
private CheckBox notifyEnable;
private EditText cpuLimit;
private EditText memLimit;
public void onCreate(Bundle savedInstanceState) {
String value;
super.onCreate(savedInstanceState);
setContentView(R.layout.notify_layout);
Intent intent = getIntent();
int widgetId = intent.getIntExtra("widgetId", AppWidgetManager.INVALID_APPWIDGET_ID);
prefs = WidgetPrefsActivity.getPrefs(NotifyActivity.this, widgetId);
notifyChange = (CheckBox) findViewById(R.id.notifyChange);
value = prefs.get("notifyChange");
if (value != null) {
if (value.equals("true")) {
notifyChange.setChecked(true);
}
else {
notifyChange.setChecked(false);
}
}
else {
notifyChange.setChecked(false);
}
CheckboxChangeListener changeListener =
new WidgetPrefsActivity.CheckboxChangeListener("notifyChange", notifyChange);
notifyChange.setOnClickListener(changeListener);
changeListener.setOnClickCallback(this);
notifyCpu = (CheckBox) findViewById(R.id.notifyCpu);
cpuLimit = (EditText) findViewById(R.id.cpuLimit);
cpuLimit.setText(prefs.get("cpuLimit"));
value = prefs.get("notifyCpu");
if (value != null) {
if (value.equals("true")) {
notifyCpu.setChecked(true);
cpuLimit.setEnabled(true);
}
else {
notifyCpu.setChecked(false);
cpuLimit.setEnabled(false);
}
}
else {
notifyCpu.setChecked(false);
cpuLimit.setEnabled(false);
}
CheckboxChangeListener cpuListener =
new WidgetPrefsActivity.CheckboxChangeListener("notifyCpu", notifyCpu);
notifyCpu.setOnClickListener(cpuListener);
cpuListener.setOnClickCallback(this);
cpuLimit.addTextChangedListener(new WidgetPrefsActivity.TextChangeListener(
"cpuLimit", cpuLimit));
notifyMem = (CheckBox) findViewById(R.id.notifyMem);
memLimit = (EditText) findViewById(R.id.memLimit);
memLimit.setText(prefs.get("memLimit"));
value = prefs.get("notifyMem");
if (value != null) {
if (value.equals("true")) {
notifyMem.setChecked(true);
memLimit.setEnabled(true);
}
else {
notifyMem.setChecked(false);
memLimit.setEnabled(false);
}
}
else {
notifyMem.setChecked(false);
memLimit.setEnabled(false);
}
CheckboxChangeListener memListener =
new WidgetPrefsActivity.CheckboxChangeListener("notifyMem", notifyMem);
notifyMem.setOnClickListener(memListener);
memListener.setOnClickCallback(this);
memLimit.addTextChangedListener(new WidgetPrefsActivity.TextChangeListener(
"memLimit", memLimit));
notifyEnable = (CheckBox) findViewById(R.id.notifyEnable);
value = prefs.get("notifyEnable");
if (value != null) {
if (value.equals("true")) {
notifyEnable.setChecked(true);
notifyChange.setEnabled(true);
notifyCpu.setEnabled(true);
notifyMem.setEnabled(true);
}
else {
disableDependant();
}
}
else {
disableDependant();
}
CheckboxChangeListener notifyListener =
new WidgetPrefsActivity.CheckboxChangeListener("notifyEnable", notifyCpu);
notifyEnable.setOnClickListener(notifyListener);
notifyListener.setOnClickCallback(this);
}
@Override
public void callback(String pref, CheckBox object) {
if (pref.equals("notifyEnable")) {
notifyChange.setEnabled(object.isChecked());
notifyCpu.setEnabled(object.isChecked());
notifyMem.setEnabled(object.isChecked());
if (object.isChecked() == false) {
disableDependant();
}
}
else if (pref.equals("notifyChange")) {
}
else if (pref.equals("notifyCpu")) {
cpuLimit.setEnabled(object.isChecked());
}
else if (pref.equals("notifyMem")) {
memLimit.setEnabled(object.isChecked());
}
}
private void disableDependant() {
if (notifyChange.isChecked())
notifyChange.performClick();
if (notifyCpu.isChecked())
notifyCpu.performClick();
if (notifyMem.isChecked())
notifyMem.performClick();
memLimit.setEnabled(false);
cpuLimit.setEnabled(false);
notifyChange.setEnabled(false);
notifyCpu.setEnabled(false);
notifyMem.setEnabled(false);
}
}