@ -22,13 +22,11 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager ;
import com.todoroo.andlib.service.ContextManager ;
import com.todoroo.andlib.sql.Criterion ;
import com.todoroo.andlib.sql.Criterion ;
import com.todoroo.andlib.sql.Functions ;
import com.todoroo.andlib.sql.Functions ;
import com.todoroo.andlib.sql.Join ;
import com.todoroo.andlib.sql.Query ;
import com.todoroo.andlib.sql.Query ;
import com.todoroo.andlib.utility.Preferences ;
import com.todoroo.andlib.utility.Preferences ;
import com.todoroo.astrid.billing.BillingConstants ;
import com.todoroo.astrid.billing.BillingConstants ;
import com.todoroo.astrid.dao.Database ;
import com.todoroo.astrid.dao.Database ;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria ;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria ;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria ;
import com.todoroo.astrid.dao.UserDao ;
import com.todoroo.astrid.dao.UserDao ;
import com.todoroo.astrid.data.Metadata ;
import com.todoroo.astrid.data.Metadata ;
import com.todoroo.astrid.data.TagData ;
import com.todoroo.astrid.data.TagData ;
@ -42,8 +40,8 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksUpdater ;
import com.todoroo.astrid.subtasks.SubtasksUpdater ;
import com.todoroo.astrid.sync.SyncResultCallback ;
import com.todoroo.astrid.sync.SyncResultCallback ;
import com.todoroo.astrid.sync.SyncV2Provider ;
import com.todoroo.astrid.sync.SyncV2Provider ;
import com.todoroo.astrid.tags.TaskToTagMetadata ;
import com.todoroo.astrid.tags.TagService ;
import com.todoroo.astrid.tags.TagService ;
import com.todoroo.astrid.tags.TaskToTagMetadata ;
import com.todoroo.astrid.utility.Flags ;
import com.todoroo.astrid.utility.Flags ;
/ * *
/ * *
@ -107,7 +105,7 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
@Override
@Override
public void pushRemoteModel ( User model ) {
public void pushRemoteModel ( User model ) {
actFmSyncService . pushUser ( model ) ;
// actFmSyncService.pushUser(model);
}
}
} ;
} ;
@ -115,14 +113,14 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
@Override
@Override
public void pushRemoteModel ( Metadata model ) {
public void pushRemoteModel ( Metadata model ) {
long taskId = model . getValue ( Metadata . TASK ) ;
// long taskId = model.getValue(Metadata.TASK);
Task localTask = taskService . fetchById ( taskId , Task . REMOTE_ID ) ;
// Task localTask = taskService.fetchById(taskId, Task.REMOTE_ID);
long remoteTaskId = localTask . getValue ( Task . REMOTE_ID ) ;
// long remoteTaskId = localTask.getValue(Task.REMOTE_ID);
//
if ( model . getValue ( FileMetadata . DELETION_DATE ) > 0 )
// if (model.getValue(FileMetadata.DELETION_DATE) > 0)
actFmSyncService . deleteAttachment ( model ) ;
// actFmSyncService.deleteAttachment(model);
else if ( remoteTaskId > 0 )
// else if (remoteTaskId > 0)
actFmSyncService . pushAttachment ( remoteTaskId , model ) ;
// actFmSyncService.pushAttachment(remoteTaskId, model);
} ;
} ;
public Metadata getRemoteModelInstance ( TodorooCursor < Metadata > cursor ) {
public Metadata getRemoteModelInstance ( TodorooCursor < Metadata > cursor ) {
@ -239,21 +237,21 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
new Thread ( new Runnable ( ) {
new Thread ( new Runnable ( ) {
@Override
@Override
public void run ( ) {
public void run ( ) {
int time = Preferences . getInt ( LAST_USERS_FETCH_TIME , 0 ) ;
// int time = Preferences.getInt(LAST_USERS_FETCH_TIME, 0);
try {
// try {
pushQueuedUsers ( callback , finisher ) ;
// pushQueuedUsers(callback, finisher);
time = actFmSyncService . fetchUsers ( ) ;
// time = actFmSyncService.fetchUsers();
Preferences . setInt ( LAST_USERS_FETCH_TIME , time ) ;
// Preferences.setInt(LAST_USERS_FETCH_TIME, time);
} catch ( JSONException e ) {
// } catch (JSONException e) {
handler . handleException ( "actfm-sync" , e , e . toString ( ) ) ; //$NON-NLS-1$
// handler.handleException("actfm-sync", e, e.toString()); //$NON-NLS-1$
} catch ( IOException e ) {
// } catch (IOException e) {
handler . handleException ( "actfm-sync" , e , e . toString ( ) ) ; //$NON-NLS-1$
// handler.handleException("actfm-sync", e, e.toString()); //$NON-NLS-1$
} finally {
// } finally {
callback . incrementProgress ( 20 ) ;
// callback.incrementProgress(20);
if ( finisher . decrementAndGet ( ) = = 0 ) {
// if(finisher.decrementAndGet() == 0) {
finishSync ( callback ) ;
// finishSync(callback);
}
// }
}
// }
}
}
} ) . start ( ) ;
} ) . start ( ) ;
}
}
@ -286,15 +284,15 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
/** fetch changes to personal updates and push unpushed updates */
/** fetch changes to personal updates and push unpushed updates */
private void startUpdatesFetcher ( final boolean manual , final SyncResultCallback callback ,
private void startUpdatesFetcher ( final boolean manual , final SyncResultCallback callback ,
final AtomicInteger finisher ) {
final AtomicInteger finisher ) {
actFmSyncService . fetchPersonalUpdates ( manual , new Runnable ( ) { // Also pushes queued updates
// actFmSyncService.fetchPersonalUpdates(manual, new Runnable() { // Also pushes queued updates
@Override
// @Override
public void run ( ) {
// public void run() {
callback . incrementProgress ( 20 ) ;
// callback.incrementProgress(20);
if ( finisher . decrementAndGet ( ) = = 0 ) {
// if (finisher.decrementAndGet() == 0) {
finishSync ( callback ) ;
// finishSync(callback);
}
// }
}
// }
} ) ;
// });
}
}
/** fetch changes to tags */
/** fetch changes to tags */
@ -392,48 +390,48 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
private void pushQueuedTasks ( final SyncResultCallback callback ,
private void pushQueuedTasks ( final SyncResultCallback callback ,
final AtomicInteger finisher ) {
final AtomicInteger finisher ) {
TodorooCursor < Task > taskCursor ;
// TodorooCursor<Task> taskCursor;
Query query = Query . select ( Task . PROPERTIES ) .
// Query query = Query.select(Task.PROPERTIES).
where ( Criterion . or (
// where(Criterion.or(
Criterion . and ( TaskCriteria . isActive ( ) ,
// Criterion.and(TaskCriteria.isActive(),
Task . REMOTE_ID . isNull ( ) ) ,
// Task.REMOTE_ID.isNull()),
Criterion . and ( Task . REMOTE_ID . isNotNull ( ) ,
// Criterion.and(Task.REMOTE_ID.isNotNull(),
Task . MODIFICATION_DATE . gt ( Task . LAST_SYNC ) ) ) ) ;
// Task.MODIFICATION_DATE.gt(Task.LAST_SYNC))));
taskCursor = taskService . query ( query ) ;
// taskCursor = taskService.query(query);
//
try {
// try {
pushQueued ( callback , finisher , taskCursor , true , taskPusher ) ;
// pushQueued(callback, finisher, taskCursor, true, taskPusher);
} finally {
// } finally {
taskCursor . close ( ) ;
// taskCursor.close();
}
// }
//
if ( ActFmPreferenceService . isPremiumUser ( ) ) {
// if (ActFmPreferenceService.isPremiumUser()) {
TodorooCursor < Metadata > filesCursor = metadataService . query ( Query . select ( Metadata . PROPERTIES )
// TodorooCursor<Metadata> filesCursor = metadataService.query(Query.select(Metadata.PROPERTIES)
. where ( Criterion . and (
// .where(Criterion.and(
MetadataCriteria . withKey ( FileMetadata . METADATA_KEY ) ,
// MetadataCriteria.withKey(FileMetadata.METADATA_KEY),
Criterion . or ( FileMetadata . REMOTE_ID . eq ( 0 ) , FileMetadata . DELETION_DATE . gt ( 0 ) ) ) ) ) ;
// Criterion.or(FileMetadata.REMOTE_ID.eq(0), FileMetadata.DELETION_DATE.gt(0)))));
try {
// try {
pushQueued ( callback , finisher , filesCursor , false , filesPusher ) ;
// pushQueued(callback, finisher, filesCursor, false, filesPusher);
} finally {
// } finally {
filesCursor . close ( ) ;
// filesCursor.close();
}
// }
}
// }
}
}
private void pushQueuedTags ( final SyncResultCallback callback ,
private void pushQueuedTags ( final SyncResultCallback callback ,
final AtomicInteger finisher , int lastTagSyncTime ) {
final AtomicInteger finisher , int lastTagSyncTime ) {
TodorooCursor < TagData > tagDataCursor = tagDataService . query ( Query . select ( TagData . PROPERTIES )
// TodorooCursor<TagData> tagDataCursor = tagDataService.query(Query.select(TagData.PROPERTIES)
. where ( Criterion . and (
// .where(Criterion.and(
Functions . bitwiseAnd ( TagData . FLAGS , TagData . FLAG_FEATURED ) . eq ( 0 ) ,
// Functions.bitwiseAnd(TagData.FLAGS, TagData.FLAG_FEATURED).eq(0),
Criterion . or (
// Criterion.or(
TagData . REMOTE_ID . eq ( 0 ) ,
// TagData.REMOTE_ID.eq(0),
Criterion . and ( TagData . REMOTE_ID . gt ( 0 ) ,
// Criterion.and(TagData.REMOTE_ID.gt(0),
TagData . MODIFICATION_DATE . gt ( lastTagSyncTime ) ) ) ) ) ) ;
// TagData.MODIFICATION_DATE.gt(lastTagSyncTime))))));
try {
// try {
pushQueued ( callback , finisher , tagDataCursor , true , tagPusher ) ;
// pushQueued(callback, finisher, tagDataCursor, true, tagPusher);
} finally {
// } finally {
tagDataCursor . close ( ) ;
// tagDataCursor.close();
}
// }
}
}
@ -487,24 +485,24 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
}
}
private void synchronizeUser ( final User user , final boolean manual , final SyncResultCallback callback ) {
private void synchronizeUser ( final User user , final boolean manual , final SyncResultCallback callback ) {
if ( user . getValue ( User . REMOTE_ID ) = = 0 )
// if (user.getValue(User.REMOTE_ID) == 0)
return ;
// return;
//
new Thread ( new Runnable ( ) {
// new Thread(new Runnable() {
@Override
// @Override
public void run ( ) {
// public void run() {
callback . started ( ) ;
// callback.started();
callback . incrementMax ( 100 ) ;
// callback.incrementMax(100);
//
actFmSyncService . waitUntilEmpty ( ) ;
// actFmSyncService.waitUntilEmpty();
actFmSyncService . fetchTasksForUser ( user , manual , new Runnable ( ) {
// actFmSyncService.fetchTasksForUser(user, manual, new Runnable() {
public void run ( ) {
// public void run() {
callback . finished ( ) ;
// callback.finished();
}
// }
} ) ;
// });
callback . incrementProgress ( 50 ) ;
// callback.incrementProgress(50);
}
// }
} ) . start ( ) ;
// }).start();
}
}
private void fetchTagData ( final TagData tagData , final boolean noRemoteId ,
private void fetchTagData ( final TagData tagData , final boolean noRemoteId ,
@ -541,14 +539,14 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
private void fetchUpdatesForTag ( final TagData tagData , boolean manual , final SyncResultCallback callback ,
private void fetchUpdatesForTag ( final TagData tagData , boolean manual , final SyncResultCallback callback ,
final AtomicInteger finisher ) {
final AtomicInteger finisher ) {
actFmSyncService . fetchUpdatesForTag ( tagData , manual , new Runnable ( ) {
// actFmSyncService.fetchUpdatesForTag(tagData, manual, new Runnable() {
@Override
// @Override
public void run ( ) {
// public void run() {
callback . incrementProgress ( 20 ) ;
// callback.incrementProgress(20);
if ( finisher . decrementAndGet ( ) = = 0 )
// if(finisher.decrementAndGet() == 0)
callback . finished ( ) ;
// callback.finished();
}
// }
} ) ;
// });
}
}
private void fetchTasksForTag ( final TagData tagData , boolean manual , final boolean pushOrder , final SyncResultCallback callback ,
private void fetchTasksForTag ( final TagData tagData , boolean manual , final boolean pushOrder , final SyncResultCallback callback ,
@ -587,19 +585,19 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
allTagged . close ( ) ;
allTagged . close ( ) ;
}
}
TodorooCursor < Task > taskCursor = taskService . query ( Query . select ( Task . PROPERTIES )
// TodorooCursor<Task> taskCursor = taskService.query(Query.select(Task.PROPERTIES)
. join ( Join . inner ( Metadata . TABLE , Criterion . and ( Metadata . KEY . eq ( TaskToTagMetadata . KEY ) , Metadata . TASK . eq ( Task . ID ) ,
// .join(Join.inner(Metadata.TABLE, Criterion.and(Metadata.KEY.eq(TaskToTagMetadata.KEY), Metadata.TASK.eq(Task.ID),
TaskToTagMetadata . TAG_NAME . eqCaseInsensitive ( tagData . getValue ( TagData . NAME ) ) ) ) )
// TaskToTagMetadata.TAG_NAME.eqCaseInsensitive(tagData.getValue(TagData.NAME)))))
. where ( Criterion . or (
// .where(Criterion.or(
Criterion . and ( TaskCriteria . isActive ( ) ,
// Criterion.and(TaskCriteria.isActive(),
Task . REMOTE_ID . isNull ( ) ) ,
// Task.REMOTE_ID.isNull()),
Criterion . and ( Task . REMOTE_ID . isNotNull ( ) ,
// Criterion.and(Task.REMOTE_ID.isNotNull(),
Task . MODIFICATION_DATE . gt ( Task . LAST_SYNC ) ) ) ) ) ;
// Task.MODIFICATION_DATE.gt(Task.LAST_SYNC)))));
try {
// try {
pushQueued ( callback , finisher , taskCursor , true , taskPusher ) ;
// pushQueued(callback, finisher, taskCursor, true, taskPusher);
} finally {
// } finally {
taskCursor . close ( ) ;
// taskCursor.close();
}
// }
TodorooCursor < Metadata > filesCursor = metadataService . query ( Query . select ( Metadata . PROPERTIES )
TodorooCursor < Metadata > filesCursor = metadataService . query ( Query . select ( Metadata . PROPERTIES )
. where ( Criterion . and (
. where ( Criterion . and (