diff --git a/api/src/com/todoroo/andlib/utility/AndroidUtilities.java b/api/src/com/todoroo/andlib/utility/AndroidUtilities.java index 45fe76a64..a5893e2d4 100644 --- a/api/src/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/api/src/com/todoroo/andlib/utility/AndroidUtilities.java @@ -14,6 +14,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.math.BigInteger; @@ -57,7 +58,6 @@ import android.view.inputmethod.InputMethodManager; import android.widget.PopupWindow; import android.widget.TextView; -import com.todoroo.andlib.data.Property; import com.todoroo.andlib.service.ExceptionService; /** @@ -791,7 +791,7 @@ public class AndroidUtilities { * @param newItems * @return */ - public static Property[] addToArray(Property[] list, Property... newItems) { + public static T[] addToArray(Class type, T[] list, T... newItems) { int originalListLength = 0; int length = 0; if (list != null) { @@ -801,7 +801,7 @@ public class AndroidUtilities { if (newItems != null) length += newItems.length; - Property[] newList = new Property[length]; + T[] newList = (T[]) Array.newInstance(type, length); if (list != null) { for(int i = 0; i < list.length; i++) newList[i] = list[i]; diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/WaitingOnMeFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/WaitingOnMeFragment.java index a43fce97d..68e2f8b13 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/WaitingOnMeFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/WaitingOnMeFragment.java @@ -32,7 +32,7 @@ public class WaitingOnMeFragment extends TaskListFragment { @Override public Property[] taskProperties() { - return AndroidUtilities.addToArray(super.taskProperties(), WaitingOnMe.READ_AT, WaitingOnMe.ACKNOWLEDGED); + return AndroidUtilities.addToArray(Property.class, super.taskProperties(), WaitingOnMe.READ_AT, WaitingOnMe.ACKNOWLEDGED); } @Override diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ConstructOutstandingTableFromMasterTable.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ConstructOutstandingTableFromMasterTable.java index e6567a466..1c12085f8 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ConstructOutstandingTableFromMasterTable.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ConstructOutstandingTableFromMasterTable.java @@ -36,7 +36,7 @@ public class ConstructOutstandingTableFromMasterTable[] syncableProperties = NameMaps.syncableProperties(table); - TodorooCursor items = dao.query(Query.select(AndroidUtilities.addToArray(syncableProperties, AbstractModel.ID_PROPERTY, RemoteModel.UUID_PROPERTY))); + TodorooCursor items = dao.query(Query.select(AndroidUtilities.addToArray(Property.class, syncableProperties, AbstractModel.ID_PROPERTY, RemoteModel.UUID_PROPERTY))); try { OE oe = outstandingDao.getModelClass().newInstance(); for (items.moveToFirst(); !items.isAfterLast(); items.moveToNext()) { diff --git a/astrid/src/com/todoroo/astrid/service/TagDataService.java b/astrid/src/com/todoroo/astrid/service/TagDataService.java index 414abf52e..55b5e59f9 100644 --- a/astrid/src/com/todoroo/astrid/service/TagDataService.java +++ b/astrid/src/com/todoroo/astrid/service/TagDataService.java @@ -23,7 +23,6 @@ import com.todoroo.andlib.sql.Order; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.actfm.sync.ActFmSyncService; -import com.todoroo.astrid.actfm.sync.messages.NameMaps; import com.todoroo.astrid.adapter.UpdateAdapter; import com.todoroo.astrid.api.PermaSql; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; @@ -151,7 +150,7 @@ public class TagDataService { if (extraCriterion != null) criteria = Criterion.and(criteria, extraCriterion); - Query result = Query.select(AndroidUtilities.addToArray(activityProperties, userProperties)).where(criteria); + Query result = Query.select(AndroidUtilities.addToArray(Property.class, activityProperties, userProperties)).where(criteria); if (!TextUtils.isEmpty(userTableAlias)) result = result.join(Join.left(User.TABLE.as(userTableAlias), UserActivity.USER_UUID.eq(Field.field(userTableAlias + "." + User.UUID.name)))); //$NON-NLS-1$ return result; @@ -176,7 +175,7 @@ public class TagDataService { else historyCriterion = History.TAG_ID.eq(tagData.getUuid()); - Query historyQuery = Query.select(AndroidUtilities.addToArray(UpdateAdapter.HISTORY_PROPERTIES, userProperties)).from(History.TABLE) + Query historyQuery = Query.select(AndroidUtilities.addToArray(Property.class, UpdateAdapter.HISTORY_PROPERTIES, userProperties)).from(History.TABLE) .where(historyCriterion) .join(Join.left(User.TABLE.as(userTableAlias), History.USER_UUID.eq(Field.field(userTableAlias + "." + User.UUID.name)))); //$NON-NLS-1$ diff --git a/astrid/src/com/todoroo/astrid/service/TaskService.java b/astrid/src/com/todoroo/astrid/service/TaskService.java index 6ac6fe444..5a7849819 100644 --- a/astrid/src/com/todoroo/astrid/service/TaskService.java +++ b/astrid/src/com/todoroo/astrid/service/TaskService.java @@ -574,7 +574,7 @@ public class TaskService { public TodorooCursor getActivityAndHistoryForTask(Task task) { Query taskQuery = queryForTask(task, UpdateAdapter.USER_TABLE_ALIAS, UpdateAdapter.USER_ACTIVITY_PROPERTIES, UpdateAdapter.USER_PROPERTIES); - Query historyQuery = Query.select(AndroidUtilities.addToArray(UpdateAdapter.HISTORY_PROPERTIES, UpdateAdapter.USER_PROPERTIES)).from(History.TABLE) + Query historyQuery = Query.select(AndroidUtilities.addToArray(Property.class, UpdateAdapter.HISTORY_PROPERTIES, UpdateAdapter.USER_PROPERTIES)).from(History.TABLE) .where(Criterion.and(History.TABLE_ID.eq(NameMaps.TABLE_ID_TASKS), History.TARGET_ID.eq(task.getUuid()))) .from(History.TABLE) .join(Join.left(User.TABLE.as(UpdateAdapter.USER_TABLE_ALIAS), History.USER_UUID.eq(Field.field(UpdateAdapter.USER_TABLE_ALIAS + "." + User.UUID.name)))); //$NON-NLS-1$; @@ -585,7 +585,7 @@ public class TaskService { } private static Query queryForTask(Task task, String userTableAlias, Property[] activityProperties, Property[] userProperties) { - Query result = Query.select(AndroidUtilities.addToArray(activityProperties, userProperties)) + Query result = Query.select(AndroidUtilities.addToArray(Property.class, activityProperties, userProperties)) .where(Criterion.and(UserActivity.ACTION.eq(UserActivity.ACTION_TASK_COMMENT), UserActivity.TARGET_ID.eq(task.getUuid()), UserActivity.DELETED_AT.eq(0))); if (!TextUtils.isEmpty(userTableAlias)) result = result.join(Join.left(User.TABLE.as(userTableAlias), UserActivity.USER_UUID.eq(Field.field(userTableAlias + "." + User.UUID.name)))); //$NON-NLS-1$