[android] - avoid crashing when deleting already deleted region (#8920)
This commit is contained in:
@@ -37,6 +37,9 @@ public class OfflineRegion {
|
||||
//Region id
|
||||
private long id;
|
||||
|
||||
// delete status
|
||||
private boolean isDeleted;
|
||||
|
||||
private OfflineRegionDefinition definition;
|
||||
|
||||
/**
|
||||
@@ -353,28 +356,31 @@ public class OfflineRegion {
|
||||
* @param callback the callback to be invoked
|
||||
*/
|
||||
public void delete(@NonNull final OfflineRegionDeleteCallback callback) {
|
||||
deleteOfflineRegion(new OfflineRegionDeleteCallback() {
|
||||
@Override
|
||||
public void onDelete() {
|
||||
getHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onDelete();
|
||||
OfflineRegion.this.finalize();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!isDeleted) {
|
||||
deleteOfflineRegion(new OfflineRegionDeleteCallback() {
|
||||
@Override
|
||||
public void onDelete() {
|
||||
isDeleted = true;
|
||||
getHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onDelete();
|
||||
OfflineRegion.this.finalize();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(final String error) {
|
||||
getHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onError(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onError(final String error) {
|
||||
getHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onError(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user