public class Principal extends Activity implements AlertDialog.OnClickListener{
private Autoupdater updater;
private RelativeLayout loadingPanel;
private Context context;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_Principal);
try {
loadingPanel = (RelativeLayout) findViewById(R.id.loadingPanel);
//Esto sirve si la actualizacion no se realiza al principio. No es este caso.
//loadingPanel.setVisibility(View.GONE);
comenzarActualizacion();
}catch (Exception ex){
//Por Cualquier error.
Toast.makeText(this,ex.getMessage(),Toast.LENGTH_LONG)
}
}
private void comenzarActualizar(){
//Para tener el contexto mas a mano.
context = this;
//Creamos el Autoupdater.
updater = new Autoupdater(this);
//Ponemos a correr el ProgressBar.
loadingPanel.setVisibility(View.VISIBLE);
//Ejecutamos el primer metodo del Autoupdater.
updater.DownloadData(finishBackgroundDownload);
}
/**
* Codigo que se va a ejecutar una vez terminado de bajar los datos.
*/
private Runnable finishBackgroundDownload = new Runnable() {
@Override
public void run() {
//Volvemos el ProgressBar a invisible.
loadingPanel.setVisibility(View.GONE);
//Comprueba que halla nueva versión.
if(updater.isNewVersionAvailable()){
//Crea mensaje con datos de versión.
String msj = "Nueva Version: " + updater.isNewVersionAvailable();
msj += "\\nCurrent Version: " + updater.getCurrentVersionName() + "(" + updater.getCurrentVersionCode() + ")";
msj += "\\nLastest Version: " + updater.getLatestVersionName() + "(" + updater.getLatestVersionCode() +")";
msj += "\\nDesea Actualizar?";
//Crea ventana de alerta.
AlertDialog.Builder dialog1 = new AlertDialog.Builder(context);
dialog1.setMessage(msj);
dialog1.setNegativeButton(R.string.cancel, null);
//Establece el boton de Aceptar y que hacer si se selecciona.
dialog1.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Vuelve a poner el ProgressBar mientras se baja e instala.
loadingPanel.setVisibility(View.VISIBLE);
//Se ejecuta el Autoupdater con la orden de instalar. Se puede poner un listener o no
updater.InstallNewVersion(null);
}
});
//Muestra la ventana esperando respuesta.
dialog1.show();
}else{
//No existen Actualizaciones.
Log.d("No Hay actualizaciones");
}
}
};
}