package ca.ualberta.cs.cmput301f14t14.questionapp.data.threading; import java.io.IOException; import java.util.UUID; import android.content.Context; import android.util.Log; import ca.ualberta.cs.cmput301f14t14.questionapp.data.DataManager; import ca.ualberta.cs.cmput301f14t14.questionapp.data.IDataStore; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Answer; public class GetAnswerTask extends AbstractDataManagerTask<UUID, Void, Answer> { public GetAnswerTask(Context c) { super(c); // TODO Auto-generated constructor stub } @Override protected Answer doInBackground(UUID... uuid) { UUID id = uuid[0]; IDataStore remoteDataStore = DataManager.getInstance(this.getContext()) .getRemoteDataStore(); IDataStore localDataStore = DataManager.getInstance(this.getContext()) .getLocalDataStore(); Answer a = null; try { a = remoteDataStore.getAnswer(id); // Cache visited question localDataStore.putAnswer(a); localDataStore.save(); } catch (IOException e) { //We could not access the question online. Log.d("GetAnswerTask", "Getting local record"); try { return localDataStore.getAnswer(id); } catch (IOException e1) { Log.e("GetAnswerTask", "Failed to get answer"); e1.printStackTrace(); } } return a; } }