package cat.foixench.apps.lectorss;
import cat.foixench.apps.lectorss.utils.LectoRSSInterface;
import cat.foixench.apps.lectorss.utils.Utils;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.TextView;
// import android.widget.Toast;
public class SplashActivity extends Activity implements OnClickListener , LectoRSSInterface {
SplashActivity splash;
LinearLayout splashBox;
// private Handler delayed;
MyResultReceiver resultReceiver = new MyResultReceiver();
/* private Runnable delayedTask = new Runnable () {
public void run() {
Toast toast = Toast.makeText (splash, "cargando", Toast.LENGTH_LONG);
toast.show ();
// eliminamos posibles entradas en la cola de este runnable
delayed.removeCallbacks(this);
// lamamos al m�todo onclick de la splashbox
onClick (splashBox);
}
};*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// guardamos una referencia global a esta clase
splash = this;
// cargamos el layout splash.xml
setContentView(R.layout.splash);
// actualizamos la etiqueta de version
TextView txtVersion = (TextView) findViewById(R.id.txtVersion);
txtVersion.setText(Utils.getManifestVersionName(this));
// recuperamos el recuadro de fondo del splash para hacerlo clickable.
splashBox = (LinearLayout) findViewById (R.id.splash_box);
splashBox.setOnClickListener(this);
// creamos un temporizador para que, pasados 30 segundos, se muestre la activity ArticleListActivity
/* delayed = new Handler ();
delayed.removeCallbacks(delayedTask);
delayed.postDelayed(delayedTask, 30000);*/
// llamamos al volcado de feeds en la bbdd
Intent service = new Intent ("cat.foixench.lectoRSS.LOAD_FEED");
// a�adimos info extra via el result receiver
service.putExtra (EXTRA_FEED_RECEIVER, resultReceiver);
startService (service);
}
/**
* cuando la activity entra en pausa, desactivamos la tarea en pausa
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
super.onPause();
// desactivamos el timer
// delayed.removeCallbacks(delayedTask);
}
/**
* procesa el evento click sobre el cuadro de informaci�n de la activity. En este caso
* se muestra la activity ArticleListActivity.
*/
public void onClick(View v) {
// mostramos la activity ArticleListActivity
this.showActivity (ARTICLE_LIST_ACTIVITY);
}
/**
* lanza una activity
* @param activity identificador de la activity a lanzar
*/
private void showActivity (int activity) {
Intent i = null;
switch (activity) {
case ABOUT_ACTIVITY :
i = new Intent (this, AboutActivity.class);
break;
case ARTICLE_LIST_ACTIVITY :
i = new Intent (this, ArticleListActivity.class);
break;
}
if (i != null) {
startActivity(i);
} else {
Log.e (SPLASH_ACTIVITY_TAG, "activity no v�lida");
}
}
class MyResultReceiver extends ResultReceiver {
public MyResultReceiver () {
super (new Handler ());
}
/**
* clase encargada de registrar el proceso carga de feeds.
* @see android.os.ResultReceiver#onReceiveResult(int, android.os.Bundle)
*/
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
switch (resultCode) {
case LOAD_STARTED :
break;
case LOAD_ENDED :
showActivity (ARTICLE_LIST_ACTIVITY);
break;
}
}
}
}