Fun with generics, fixed signature generation when using gcm

pull/14/head
Sam Bosley 11 years ago
parent 3698244f13
commit e3ebe0c544

@ -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> T[] addToArray(Class<T> 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];

@ -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

@ -36,7 +36,7 @@ public class ConstructOutstandingTableFromMasterTable<TYPE extends RemoteModel,
public void execute() {
Property<?>[] syncableProperties = NameMaps.syncableProperties(table);
TodorooCursor<TYPE> items = dao.query(Query.select(AndroidUtilities.addToArray(syncableProperties, AbstractModel.ID_PROPERTY, RemoteModel.UUID_PROPERTY)));
TodorooCursor<TYPE> 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()) {

@ -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$

@ -574,7 +574,7 @@ public class TaskService {
public TodorooCursor<UserActivity> 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$

Loading…
Cancel
Save