Don't create unecessary changeshappened messages

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

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

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

@ -21,7 +21,8 @@ public class SyncDatabaseListener<MTYPE extends AbstractModel> implements ModelU
} }
@Override @Override
public void onModelUpdated(MTYPE model) { public void onModelUpdated(MTYPE model, boolean outstandingEntries) {
if (outstandingEntries) {
ChangesHappened<?, ?> ch = ChangesHappened.instantiateChangesHappened(model.getId(), modelType); ChangesHappened<?, ?> ch = ChangesHappened.instantiateChangesHappened(model.getId(), modelType);
if (!queue.contains(ch)) { if (!queue.contains(ch)) {
queue.add(ch); queue.add(ch);
@ -30,5 +31,6 @@ public class SyncDatabaseListener<MTYPE extends AbstractModel> implements ModelU
} }
} }
} }
}
} }

@ -101,7 +101,7 @@ public final class GtasksSyncService {
new OperationPushThread(operationQueue).start(); new OperationPushThread(operationQueue).start();
taskDao.addListener(new ModelUpdateListener<Task>() { 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)) if(model.checkAndClearTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC))
return; return;
if (gtasksPreferenceService.isOngoing() && !model.checkTransitory(TaskService.TRANS_REPEAT_COMPLETE)) //Don't try and sync changes that occur during a normal sync 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 // the corresponding metadata will also update
tagDataDao.addListener(new ModelUpdateListener<TagData>() { tagDataDao.addListener(new ModelUpdateListener<TagData>() {
@Override @Override
public void onModelUpdated(TagData model) { public void onModelUpdated(TagData model, boolean outstandingEntries) {
ContentValues values = model.getSetValues(); ContentValues values = model.getSetValues();
Metadata m = new Metadata(); Metadata m = new Metadata();
if (values != null) { if (values != null) {

Loading…
Cancel
Save