/*
This program 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.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
Copyright 2015 Jose A. Gonzalez Cervera
Copyright 2015 Juan A. Fernández Sánchez
*/
package butterflydevs.brainstudio;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import butterflydevs.brainstudio.extras.ConexionServidor;
import butterflydevs.brainstudio.extras.Dialogos.DialogoBorrarBD;
import butterflydevs.brainstudio.extras.Dialogos.DialogoGrabadoAlias;
import butterflydevs.brainstudio.extras.utilidades;
/**
* Actividad que permite al usuario configurar algunos ajustes de la aplicación.
* En principio, su nombre de usuario (que será el que se use para grabar sus datos en el ranking)
* y el color en el que prefiere la aplicación (por meter algo distinto, ya que no había muchos más
* ajustes que hacer).
*/
public class Ajustes extends Activity {
private Button buttonBack, buttonBorrarDatos, buttonEditarNombre;
private TextView textNombreUsuario;
private Button colorA, colorB, colorC, colorD;
private info.hoang8f.android.segmented.SegmentedGroup grupo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ajustes);
//Con esta orden conseguimos hacer que no se muestre la ActionBar.
//getSupportActionBar().hide();
//Con esta hacemos que la barra de estado del teléfono no se vea y la actividad sea a pantalla completa.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
buttonBack=(Button)findViewById(R.id.buttonBack);
buttonBorrarDatos=(Button)findViewById(R.id.buttonBorrarDatos);
textNombreUsuario=(TextView)findViewById(R.id.textViewNombreUsuario2);
buttonEditarNombre=(Button)findViewById(R.id.buttonEditName);
colorA=(Button)findViewById(R.id.ColorA);
colorB=(Button)findViewById(R.id.ColorB);
colorC=(Button)findViewById(R.id.ColorC);
colorD=(Button)findViewById(R.id.ColorD);
grupo=(info.hoang8f.android.segmented.SegmentedGroup)findViewById(R.id.grupoLista);
cargarNombreUsuario();
//Al pulsar uno de los colores cambiamos el color de fondo.
colorA.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Cambiamos de color el fondo, extrayendolo desde colors.xml
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.colorfondoA));
grabaColor("a");
}
}
);
colorB.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Cambiamos de color el fondo, extrayendolo desde colors.xml
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.colorfondoB));
grabaColor("b");
}
}
);
colorC.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Cambiamos de color el fondo, extrayendolo desde colors.xml
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.colorfondoC));
grabaColor("c");
}
}
);
colorD.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Cambiamos de color el fondo, extrayendolo desde colors.xml
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.colorfondoD));
grabaColor("d");
}
}
);
buttonBack.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Creamos el Intent
Intent intent = new Intent(Ajustes.this, ActividadPrincipal.class);
//Iniciamos la nueva actividad
startActivity(intent);
}
}
);
buttonEditarNombre.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Se procede de la misma manera que cuando se arranca la activida principal por primera vez.
DialogoGrabadoAlias dga = new DialogoGrabadoAlias();
dga.setPadre(Ajustes.this); //Para que pueda acceder a las sharesPreferences de la app
dga.show(getFragmentManager(), "");
}
}
);
buttonBorrarDatos.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
/*Cuando el usuario quiere borra la base de datos tenemos que advertirle
de las consecuencias con un diálogo.
*/
//Creamos el dialogo:
DialogoBorrarBD dialogoAlerta = new DialogoBorrarBD();
dialogoAlerta.setPadre(Ajustes.this);
//Lo mostramos:
dialogoAlerta.show(getFragmentManager(), "");
}
}
);
utilidades.cargarColorFondo(this);
String colorUsado=utilidades.colorUsado(this);
if (colorUsado.contains("a"))
grupo.check(colorA.getId());
if(colorUsado.contains("b"))
grupo.check(colorB.getId());
if(colorUsado.contains("c"))
grupo.check(colorC.getId());
if(colorUsado.contains("d"))
grupo.check(colorD.getId());
}
/**
* Función para grabar color en las shared preferences.
*/
public void grabaColor(String color){
SharedPreferences datos=getSharedPreferences("datos", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=datos.edit();
editor.putString("colorFondo",color);
editor.commit(); //Cuando se hace realmente la grabación.
}
/**
* Cambia el nombre del usuario en la base de datos.
*/
public void cambiarNombreUsuarioBD(){
SharedPreferences prefe=getSharedPreferences("datos", Context.MODE_PRIVATE);
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
ConexionServidor miConexion = new ConexionServidor();
miConexion.actualizarNombre(prefe.getString("alias","Nombre"),telephonyManager.getDeviceId() );
}
/**
* Se extrae a una función para que pueda llamarse desde un par de sitios y así no duplicar código.
*/
public void cargarNombreUsuario(){
SharedPreferences prefe=getSharedPreferences("datos", Context.MODE_PRIVATE);
textNombreUsuario.setText(prefe.getString("alias","Nombre"));
}
/**
* Comprueba si el dispositivo tiene conexión de red.
* @return
*/
public boolean hayRed(){
boolean salida=true;
System.out.println("HAY RED??");
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = conMgr.getActiveNetworkInfo();
if(info!=null)
return true;
else
return false;
}
@Override
protected void onResume(){
super.onResume();
}
@Override
protected void onStart(){
super.onStart();
}
@Override
protected void onPause(){
super.onPause();
}
}