@ -1,7 +1,9 @@
package com.todoroo.astrid.actfm.sync.messages ;
package com.todoroo.astrid.actfm.sync.messages ;
import java.util.HashMap ;
import java.util.HashMap ;
import java.util.HashSet ;
import java.util.Map ;
import java.util.Map ;
import java.util.Set ;
import com.todoroo.andlib.data.Property ;
import com.todoroo.andlib.data.Property ;
import com.todoroo.andlib.data.Table ;
import com.todoroo.andlib.data.Table ;
@ -55,12 +57,16 @@ public class NameMaps {
private static final Map < String , Property < ? > > TASK_COLUMN_NAMES_TO_PROPERTIES ;
private static final Map < String , Property < ? > > TASK_COLUMN_NAMES_TO_PROPERTIES ;
private static final Map < String , String > TASK_COLUMNS_LOCAL_TO_SERVER ;
private static final Map < String , String > TASK_COLUMNS_LOCAL_TO_SERVER ;
private static final Map < String , Property < ? > > TASK_PROPERTIES_SERVER_TO_LOCAL ;
private static final Map < String , Property < ? > > TASK_PROPERTIES_SERVER_TO_LOCAL ;
private static final Set < String > TASK_PROPERTIES_EXCLUDED ;
private static void putPropertyToServerName ( Property < ? > property , String serverName ,
private static void putPropertyToServerName ( Property < ? > property , String serverName ,
Map < Property < ? > , String > propertyMap , Map < String , Property < ? > > localNameMap , Map < String , String > serverNameMap ) {
Map < Property < ? > , String > propertyMap , Map < String , Property < ? > > localNameMap , Map < String , String > serverNameMap ,
Set < String > excludedFromOutstandingSet , boolean excludedFromOustanding ) {
propertyMap . put ( property , serverName ) ;
propertyMap . put ( property , serverName ) ;
localNameMap . put ( property . name , property ) ;
localNameMap . put ( property . name , property ) ;
serverNameMap . put ( property . name , serverName ) ;
serverNameMap . put ( property . name , serverName ) ;
if ( excludedFromOustanding )
excludedFromOutstandingSet . add ( property . name ) ;
}
}
static {
static {
@ -68,21 +74,22 @@ public class NameMaps {
TASK_PROPERTIES_LOCAL_TO_SERVER = new HashMap < Property < ? > , String > ( ) ;
TASK_PROPERTIES_LOCAL_TO_SERVER = new HashMap < Property < ? > , String > ( ) ;
TASK_COLUMNS_LOCAL_TO_SERVER = new HashMap < String , String > ( ) ;
TASK_COLUMNS_LOCAL_TO_SERVER = new HashMap < String , String > ( ) ;
TASK_COLUMN_NAMES_TO_PROPERTIES = new HashMap < String , Property < ? > > ( ) ;
TASK_COLUMN_NAMES_TO_PROPERTIES = new HashMap < String , Property < ? > > ( ) ;
TASK_PROPERTIES_EXCLUDED = new HashSet < String > ( ) ;
putPropertyToServerName ( Task . TITLE , "title" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . IMPORTANCE , "importance" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . TITLE , "title" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . DUE_DATE , "due" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . IMPORTANCE , "importance" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . HIDE_UNTIL , "hide_until" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . DUE_DATE , "due" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . COMPLETION_DATE , "completed_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . HIDE_UNTIL , "hide_until" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , true ) ;
putPropertyToServerName ( Task . DELETION_DATE , "deleted_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . COMPLETION_DATE , "completed_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . NOTES , "notes" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . DELETION_DATE , "deleted_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . RECURRENCE , "repeat" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . NOTES , "notes" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . USER_ID , "user_id" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . RECURRENCE , "repeat" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . USER , "user" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . USER_ID , "user_id" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . CREATOR_ID , "creator_id" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . USER , "user" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , true ) ;
putPropertyToServerName ( Task . UUID , "uuid" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . CREATOR_ID , "creator_id" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , true ) ;
putPropertyToServerName ( Task . PROOF_TEXT , "proof_text" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . UUID , "uuid" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , true ) ;
putPropertyToServerName ( Task . PUSHED_AT , "pushed_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( Task . PROOF_TEXT , "proof_text" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( Task . PUSHED_AT , "pushed_at" , TASK_PROPERTIES_LOCAL_TO_SERVER , TASK_COLUMN_NAMES_TO_PROPERTIES , TASK_COLUMNS_LOCAL_TO_SERVER , TASK_PROPERTIES_EXCLUDED , true ) ;
TASK_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities . reverseMap ( TASK_PROPERTIES_LOCAL_TO_SERVER ) ;
TASK_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities . reverseMap ( TASK_PROPERTIES_LOCAL_TO_SERVER ) ;
}
}
@ -92,24 +99,26 @@ public class NameMaps {
private static final Map < String , Property < ? > > TAG_DATA_COLUMN_NAMES_TO_PROPERTIES ;
private static final Map < String , Property < ? > > TAG_DATA_COLUMN_NAMES_TO_PROPERTIES ;
private static final Map < String , String > TAG_DATA_COLUMNS_LOCAL_TO_SERVER ;
private static final Map < String , String > TAG_DATA_COLUMNS_LOCAL_TO_SERVER ;
private static final Map < String , Property < ? > > TAG_DATA_PROPERTIES_SERVER_TO_LOCAL ;
private static final Map < String , Property < ? > > TAG_DATA_PROPERTIES_SERVER_TO_LOCAL ;
private static final Set < String > TAG_PROPERTIES_EXCLUDED ;
static {
static {
// Hardcoded local columns mapped to corresponding server names
// Hardcoded local columns mapped to corresponding server names
TAG_DATA_PROPERTIES_LOCAL_TO_SERVER = new HashMap < Property < ? > , String > ( ) ;
TAG_DATA_PROPERTIES_LOCAL_TO_SERVER = new HashMap < Property < ? > , String > ( ) ;
TAG_DATA_COLUMNS_LOCAL_TO_SERVER = new HashMap < String , String > ( ) ;
TAG_DATA_COLUMNS_LOCAL_TO_SERVER = new HashMap < String , String > ( ) ;
TAG_DATA_COLUMN_NAMES_TO_PROPERTIES = new HashMap < String , Property < ? > > ( ) ;
TAG_DATA_COLUMN_NAMES_TO_PROPERTIES = new HashMap < String , Property < ? > > ( ) ;
TAG_PROPERTIES_EXCLUDED = new HashSet < String > ( ) ;
putPropertyToServerName ( TagData . USER_ID , "user_id" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . USER , "user" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . USER_ID , "user_id" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( TagData . NAME , "name" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . USER , "user" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . PICTURE , "picture_id" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . NAME , "name" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( TagData . MEMBERS , "members" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . PICTURE , "picture_id" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . CREATION_DATE , "created_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . MEMBERS , "members" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . DELETION_DATE , "deleted_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . CREATION_DATE , "created_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( TagData . UUID , "uuid" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . DELETION_DATE , "deleted_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( TagData . PROOF_TEXT , "proof_text" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . UUID , "uuid" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , true ) ;
putPropertyToServerName ( TagData . TAG_ORDERING , "tag_ordering" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . PROOF_TEXT , "proof_text" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ;
putPropertyToServerName ( TagData . PUSHED_AT , "pushed_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER ) ;
putPropertyToServerName ( TagData . TAG_ORDERING , "tag_ordering" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , false ) ; //TODO: NOT CORRECT
putPropertyToServerName ( TagData . PUSHED_AT , "pushed_at" , TAG_DATA_PROPERTIES_LOCAL_TO_SERVER , TAG_DATA_COLUMN_NAMES_TO_PROPERTIES , TAG_DATA_COLUMNS_LOCAL_TO_SERVER , TAG_PROPERTIES_EXCLUDED , true ) ;
// Reverse the mapping to construct the server to local map
// Reverse the mapping to construct the server to local map
TAG_DATA_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities . reverseMap ( TAG_DATA_PROPERTIES_LOCAL_TO_SERVER ) ;
TAG_DATA_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities . reverseMap ( TAG_DATA_PROPERTIES_LOCAL_TO_SERVER ) ;
@ -130,9 +139,11 @@ public class NameMaps {
public static boolean shouldRecordOutstandingColumnForTable ( String table , String column ) {
public static boolean shouldRecordOutstandingColumnForTable ( String table , String column ) {
if ( TABLE_ID_TASKS . equals ( table ) ) {
if ( TABLE_ID_TASKS . equals ( table ) ) {
return TASK_COLUMN_NAMES_TO_PROPERTIES . containsKey ( column ) ;
if ( TASK_COLUMN_NAMES_TO_PROPERTIES . containsKey ( column ) )
return ! TASK_PROPERTIES_EXCLUDED . contains ( column ) ;
} else if ( TABLE_ID_TAGS . equals ( table ) ) {
} else if ( TABLE_ID_TAGS . equals ( table ) ) {
return TAG_DATA_COLUMN_NAMES_TO_PROPERTIES . containsKey ( column ) ;
if ( TAG_DATA_COLUMN_NAMES_TO_PROPERTIES . containsKey ( column ) )
return ! TAG_PROPERTIES_EXCLUDED . contains ( column ) ;
}
}
return false ;
return false ;
}
}