Don't create unecessary changeshappened messages

pull/14/head
Sam Bosley 12 years ago
parent abc66a7bb5
commit 97067cb824

@ -86,7 +86,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
// --- listeners
public interface ModelUpdateListener<MTYPE> {
public void onModelUpdated(MTYPE model);
public void onModelUpdated(MTYPE model, boolean outstandingEntries);
}
private final ArrayList<ModelUpdateListener<TYPE>> listeners =
@ -96,10 +96,10 @@ public class DatabaseDao<TYPE extends AbstractModel> {
listeners.add(listener);
}
protected void onModelUpdated(TYPE model) {
protected void onModelUpdated(TYPE model, boolean outstandingEntries) {
TYPE modelCopy = (TYPE) model.clone();
for(ModelUpdateListener<TYPE> listener : listeners) {
listener.onModelUpdated(modelCopy);
listener.onModelUpdated(modelCopy, outstandingEntries);
}
}
@ -271,7 +271,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
database.getDatabase().endTransaction();
}
if (result.get()) {
onModelUpdated(item);
onModelUpdated(item, recordOutstanding);
item.markSaved();
}
return result.get();

@ -147,7 +147,7 @@ public final class ActFmSyncService {
taskDao.addListener(new ModelUpdateListener<Task>() {
@Override
public void onModelUpdated(final Task model) {
public void onModelUpdated(final Task model, boolean outstandingEntries) {
if(model.checkAndClearTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC))
return;
if (actFmPreferenceService.isOngoing() && model.getTransitory(TaskService.TRANS_EDIT_SAVE) == null)
@ -184,7 +184,7 @@ public final class ActFmSyncService {
updateDao.addListener(new ModelUpdateListener<Update>() {
@Override
public void onModelUpdated(final Update model) {
public void onModelUpdated(final Update model, boolean outstandingEntries) {
if(model.checkAndClearTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC))
return;
if (actFmPreferenceService.isOngoing())
@ -204,7 +204,7 @@ public final class ActFmSyncService {
tagDataDao.addListener(new ModelUpdateListener<TagData>() {
@Override
public void onModelUpdated(final TagData model) {
public void onModelUpdated(final TagData model, boolean outstandingEntries) {
if(model.checkAndClearTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC))
return;
if (actFmPreferenceService.isOngoing())

@ -21,12 +21,14 @@ public class SyncDatabaseListener<MTYPE extends AbstractModel> implements ModelU
}
@Override
public void onModelUpdated(MTYPE model) {
ChangesHappened<?, ?> ch = ChangesHappened.instantiateChangesHappened(model.getId(), modelType);
if (!queue.contains(ch)) {
queue.add(ch);
synchronized(monitor) {
monitor.notifyAll();
public void onModelUpdated(MTYPE model, boolean outstandingEntries) {
if (outstandingEntries) {
ChangesHappened<?, ?> ch = ChangesHappened.instantiateChangesHappened(model.getId(), modelType);
if (!queue.contains(ch)) {
queue.add(ch);
synchronized(monitor) {
monitor.notifyAll();
}
}
}
}

@ -101,7 +101,7 @@ public final class GtasksSyncService {
new OperationPushThread(operationQueue).start();
taskDao.addListener(new ModelUpdateListener<Task>() {
public void onModelUpdated(final Task model) {
public void onModelUpdated(final Task model, boolean outstandingEntries) {
if(model.checkAndClearTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC))
return;
if (gtasksPreferenceService.isOngoing() && !model.checkTransitory(TaskService.TRANS_REPEAT_COMPLETE)) //Don't try and sync changes that occur during a normal sync

@ -269,7 +269,7 @@ public class StartupService {
// the corresponding metadata will also update
tagDataDao.addListener(new ModelUpdateListener<TagData>() {
@Override
public void onModelUpdated(TagData model) {
public void onModelUpdated(TagData model, boolean outstandingEntries) {
ContentValues values = model.getSetValues();
Metadata m = new Metadata();
if (values != null) {

Loading…
Cancel
Save