Combine two callbacks into one
Этот коммит содержится в:
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user