fix #196 & asyncify TaskScoringCallback

This commit is contained in:
Negue 2015-12-13 01:15:05 +01:00
parent 1ebf256cd1
commit 013be22cb3

View file

@ -5,6 +5,8 @@ import android.util.Log;
import com.crashlytics.android.Crashlytics; import com.crashlytics.android.Crashlytics;
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData; import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
import com.raizlabs.android.dbflow.runtime.transaction.BaseTransaction;
import com.raizlabs.android.dbflow.runtime.transaction.TransactionListener;
import com.raizlabs.android.dbflow.sql.builder.Condition; import com.raizlabs.android.dbflow.sql.builder.Condition;
import com.raizlabs.android.dbflow.sql.language.Select; import com.raizlabs.android.dbflow.sql.language.Select;
@ -25,14 +27,31 @@ public class TaskScoringCallback implements Callback<TaskDirectionData> {
} }
@Override @Override
public void success(TaskDirectionData taskDirectionData, Response response) { public void success(final TaskDirectionData taskDirectionData, Response response) {
Task task = new Select().from(Task.class).where(Condition.column("id").eq(taskId)).querySingle(); new Select().from(Task.class).where(Condition.column("id").eq(taskId))
if (!task.type.equals("reward")) { .async()
task.value = task.value + taskDirectionData.getDelta(); .querySingle(new TransactionListener<Task>() {
@Override
public void onResultReceived(Task task) {
if(task != null && task.type != null && !task.type.equals("reward")) {
task.value = task.value + taskDirectionData.getDelta();
task.save(); task.save();
} }
this.mCallback.onTaskDataReceived(taskDirectionData, task);
mCallback.onTaskDataReceived(taskDirectionData, task);
}
@Override
public boolean onReady(BaseTransaction<Task> baseTransaction) {
return true;
}
@Override
public boolean hasResult(BaseTransaction<Task> baseTransaction, Task task) {
return task != null;
}
});
} }
@Override @Override