Combine two callbacks into one

Этот коммит содержится в:
Anton Tananaev
2015-08-24 12:15:52 +12:00
родитель 5f7a1a8bfd
Коммит c78cac2da5
3 изменённых файлов: 30 добавлений и 50 удалений
+2 -7
Просмотреть файл
@@ -31,8 +31,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "traccar.db"; public static final String DATABASE_NAME = "traccar.db";
public interface DatabaseHandler<T> { public interface DatabaseHandler<T> {
void onSuccess(T result); void onComplete(boolean success, T result);
void onFailure(RuntimeException error);
} }
private static abstract class DatabaseAsyncTask<T> extends AsyncTask<Void, Void, T> { private static abstract class DatabaseAsyncTask<T> extends AsyncTask<Void, Void, T> {
@@ -58,11 +57,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
@Override @Override
protected void onPostExecute(T result) { protected void onPostExecute(T result) {
if (error == null) { handler.onComplete(error == null, result);
handler.onSuccess(result);
} else {
handler.onFailure(error);
}
} }
} }
+2 -7
Просмотреть файл
@@ -27,8 +27,7 @@ public class RequestManager {
private static final int TIMEOUT = 15 * 1000; private static final int TIMEOUT = 15 * 1000;
public interface RequestHandler { public interface RequestHandler {
void onSuccess(); void onComplete(boolean success);
void onFailure();
} }
private static class RequestAsyncTask extends AsyncTask<String, Void, Boolean> { private static class RequestAsyncTask extends AsyncTask<String, Void, Boolean> {
@@ -46,11 +45,7 @@ public class RequestManager {
@Override @Override
protected void onPostExecute(Boolean result) { protected void onPostExecute(Boolean result) {
if (result) { handler.onComplete(result);
handler.onSuccess();
} else {
handler.onFailure();
}
} }
} }
+26 -36
Просмотреть файл
@@ -122,18 +122,15 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
lock(); lock();
databaseHelper.insertPositionAsync(position, new DatabaseHelper.DatabaseHandler<Void>() { databaseHelper.insertPositionAsync(position, new DatabaseHelper.DatabaseHandler<Void>() {
@Override @Override
public void onSuccess(Void result) { public void onComplete(boolean success, Void result) {
if (isOnline && isWaiting) { if (success) {
read(); if (isOnline && isWaiting) {
isWaiting = false; read();
isWaiting = false;
}
} }
unlock(); unlock();
} }
@Override
public void onFailure(RuntimeException error) {
unlock();
}
}); });
} }
@@ -142,20 +139,18 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
lock(); lock();
databaseHelper.selectPositionAsync(new DatabaseHelper.DatabaseHandler<Position>() { databaseHelper.selectPositionAsync(new DatabaseHelper.DatabaseHandler<Position>() {
@Override @Override
public void onSuccess(Position result) { public void onComplete(boolean success, Position result) {
if (result != null) { if (success) {
send(result); if (result != null) {
send(result);
} else {
isWaiting = true;
}
} else { } else {
isWaiting = true; retry();
} }
unlock(); unlock();
} }
@Override
public void onFailure(RuntimeException error) {
retry();
unlock();
}
}); });
} }
@@ -164,14 +159,12 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
lock(); lock();
databaseHelper.deletePositionAsync(position.getId(), new DatabaseHelper.DatabaseHandler<Void>() { databaseHelper.deletePositionAsync(position.getId(), new DatabaseHelper.DatabaseHandler<Void>() {
@Override @Override
public void onSuccess(Void result) { public void onComplete(boolean success, Void result) {
read(); if (success) {
unlock(); read();
} } else {
retry();
@Override }
public void onFailure(RuntimeException error) {
retry();
unlock(); unlock();
} }
}); });
@@ -187,15 +180,12 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
RequestManager.sendRequestAsync(request, new RequestManager.RequestHandler() { RequestManager.sendRequestAsync(request, new RequestManager.RequestHandler() {
@Override @Override
public void onSuccess() { public void onComplete(boolean success) {
delete(position); if (success) {
unlock(); delete(position);
} } else {
retry();
@Override }
public void onFailure() {
StatusActivity.addMessage(context.getString(R.string.status_send_fail));
retry();
unlock(); unlock();
} }
}); });