package org.tyszecki.rozkladpkp;
import java.io.FileOutputStream;
import org.tyszecki.rozkladpkp.pln.PLN;
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.format.Time;
import android.util.Log;
public class RememberedService extends IntentService {
public RememberedService() {
super("RemeberedService");
}
@Override
protected void onHandleIntent(Intent in) {
Bundle ex = in.getExtras();
//Do poprawienia jest ogólnie większość rzeczy związana z zapamiętywaniem czasu w PLN.
//FIXME: Tutaj zakładamy, że hafas zwraca wyniki w strefie czasowej użytkownika, co nie jest prawdą.
//Z drugiej strony, nie wiadomo w jakiej strefie te wyniki są zwracane.
String t = null;
String Sid = ex.getString("SID");
String Zid = null;
int cacheID = ex.containsKey("cacheID") ? ex.getInt("cacheID") : -1;
if(ex.containsKey("ZID"))
Zid = ex.getString("ZID");
if(ex.containsKey("pln"))
{
PLN pln = new PLN(ex.getByteArray("pln"));
try{
/*pln.edate
TripIterator p = pln.tripIterator();
p.moveToLast();
Trip t1 = p.next();
*/
Time time = new Time(pln.edate);
time.monthDay++;
time.normalize(false);
t = time.format2445();
String s = CommonUtils.ResultsHash(Sid, Zid, null, cacheID);
Log.w("RozkladPKP", "zapisuję... "+s);
try {
FileOutputStream fos = openFileOutput(s, Context.MODE_PRIVATE);
fos.write(pln.data);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
catch(Exception e){
return;
}
RememberedManager.addtoHistory(this, Sid, Zid, t, cacheID);
}
else if(ex.containsKey("timetable"))
{
t = ex.getString("time");
String s = CommonUtils.ResultsHash(Sid, null, ex.getBoolean("departure"), cacheID);
try {
FileOutputStream fos = openFileOutput(s, Context.MODE_PRIVATE);
fos.write(ex.getByteArray("timetable"));
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
RememberedManager.addtoHistory(this, Sid, ex.getBoolean("departure"), t, cacheID);
}
}
}