//clase de la vista de configuraciones puede
//iniciarse como configuraciones normales o como
//el editor de notas si la propiedad openNota es true
package com.example.nav;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import android.animation.LayoutTransition;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
public class Settings extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
getActionBar().setDisplayHomeAsUpEnabled(false);
if (Properties.isOpenNota()) {
Properties.setOpenNota(false);
makeNotas();
} else {
ListView lista = (ListView) findViewById(R.id.config);
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
if (position == 0) {
makeNotas();
}
if (position == 1) {
makeChangeMail();
}
if (position == 2) {
}
if (position == 3) {
makeAbout();
}
}
});
}
}
// muestra el fragment about
public void makeAbout() {
setContentView(R.layout.about);
}
// muestra un dialogo para editar el mail
public void makeChangeMail() {
CambiarMail dialogo = new CambiarMail();
FragmentManager fragmentManager = getFragmentManager();
dialogo.show(fragmentManager,
getResources().getString(R.string.nuevo_mail));
}
// muestra el editor de notas
public void makeNotas() {
setContentView(R.layout.notas_edit);
getActionBar().setTitle(
getResources().getString(R.string.edicion_de_notas));
final EditText textIn = (EditText) findViewById(R.id.textin);
final Spinner notaIn = (Spinner) findViewById(R.id.notain);
Button buttonAdd = (Button) findViewById(R.id.add);
Button buttonAceptar = (Button) findViewById(R.id.aceptarNotas);
Button buttonCancelar = (Button) findViewById(R.id.cancelarNotas);
final LinearLayout container = (LinearLayout) findViewById(R.id.container);
for (int i = 0; i < Properties.getObservaciones().length; i++) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View addView = layoutInflater.inflate(R.layout.row, null);
TextView textOut = (TextView) addView
.findViewById(R.id.observacionT);
Spinner nota = (Spinner) addView.findViewById(R.id.notaT);
nota.setSelection(Properties.getNotas()[i] - 1);
textOut.setText(Properties.getObservaciones()[i]);
Button buttonRemove = (Button) addView.findViewById(R.id.remove);
buttonRemove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((LinearLayout) addView.getParent()).removeView(addView);
}
});
container.addView(addView, 0);
}
buttonAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View addView = layoutInflater.inflate(R.layout.row, null);
Spinner nota = (Spinner) addView.findViewById(R.id.notaT);
nota.setSelection(notaIn.getSelectedItemPosition());
TextView textOut = (TextView) addView
.findViewById(R.id.observacionT);
textOut.setText(textIn.getText().toString());
Button buttonRemove = (Button) addView
.findViewById(R.id.remove);
buttonRemove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((LinearLayout) addView.getParent())
.removeView(addView);
}
});
((EditText) findViewById(R.id.textin)).setText("");
container.addView(addView, 0);
}
});
buttonCancelar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
buttonAceptar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
int len = container.getChildCount();
int[] notas = new int[len];
String[] observaciones = new String[len];
for (int i = 0; i < len; i++) {
Spinner spinner = (Spinner) container.getTouchables().get(
i * 3);
EditText edit = (EditText) container.getTouchables().get(
(i * 3) + 1);
String obs = edit.getText().toString();
int nota = Integer.parseInt(spinner.getSelectedItem()
.toString());
notas[(len - 1) - i] = nota;
observaciones[(len - 1) - i] = obs;
}
Properties.setNotas(notas);
Properties.setObservaciones(observaciones);
finish();
}
});
LayoutTransition transition = new LayoutTransition();
container.setLayoutTransition(transition);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_settings, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public class CambiarMail extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) { //
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View agregarAlumnoDialog = inflater.inflate(
R.layout.add_dialog, null);
final EditText mail1 = (EditText) agregarAlumnoDialog
.findViewById(R.id.input);
mail1.setText(Properties.getMail());
builder.setView(agregarAlumnoDialog)
.setMessage(
getResources().getString(
R.string.inserte_nuevo_mail))
.setPositiveButton(
getResources().getString(R.string.aceptar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
String mail = mail1.getText().toString();
Properties.setMail(mail);
}
})
.setNegativeButton(
getResources().getString(R.string.cancelar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
}
});
return builder.create();
}
}
}