Using BigInteger was dumb. Just use strings

pull/14/head
Sam Bosley 12 years ago
parent 8585a1e2cd
commit 88ad53977a

@ -6,7 +6,6 @@
package com.todoroo.andlib.data;
import java.lang.reflect.Field;
import java.math.BigInteger;
import java.util.ArrayList;
import android.content.ContentValues;
@ -367,10 +366,6 @@ abstract public class AbstractDatabase {
public String visitString(Property<String> property, Void data) {
return String.format("%s TEXT", property.getColumnName());
}
public String visitBigInteger(Property<BigInteger> property, Void data) {
return String.format("%s TEXT", property.getColumnName());
}
}
}

@ -8,7 +8,6 @@ package com.todoroo.andlib.data;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -479,11 +478,6 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
store.put(property.getColumnName(), (String) value);
return null;
}
public Void visitBigInteger(Property<BigInteger> property, Object value) {
store.put(property.getColumnName(), ((BigInteger) value).toString());
return null;
}
}
// --- parcelable helpers

@ -10,8 +10,6 @@ import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS;
import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS;
import static com.todoroo.andlib.sql.SqlConstants.SPACE;
import java.math.BigInteger;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Field;
import com.todoroo.andlib.sql.Operator;
@ -103,8 +101,6 @@ public abstract class Property<TYPE> extends Field implements Cloneable {
public RETURN visitDouble(Property<Double> property, PARAMETER data);
public RETURN visitString(Property<String> property, PARAMETER data);
public RETURN visitBigInteger(Property<BigInteger> property, PARAMETER data);
}
// --- children
@ -243,27 +239,6 @@ public abstract class Property<TYPE> extends Field implements Cloneable {
}
}
public static class BigIntegerProperty extends Property<BigInteger> {
public BigIntegerProperty(Table table, String name) {
super(table, name);
}
public BigIntegerProperty(Table table, String name, boolean nullable) {
super(table, name, nullable);
}
protected BigIntegerProperty(Table table, String name, String expression) {
super(table, name, expression);
}
@Override
public <RETURN, PARAMETER> RETURN accept(
PropertyVisitor<RETURN, PARAMETER> visitor, PARAMETER data) {
return visitor.visitBigInteger(this, data);
}
}
public String getColumnName() {
if (hasAlias())
return alias;

@ -5,7 +5,6 @@
*/
package com.todoroo.andlib.data;
import java.math.BigInteger;
import java.util.WeakHashMap;
import android.database.Cursor;
@ -130,14 +129,6 @@ public class TodorooCursor<TYPE extends AbstractModel> extends CursorWrapper {
return cursor.getString(column);
}
public Object visitBigInteger(Property<BigInteger> property,
TodorooCursor<?> cursor) {
int column = columnIndex(property, cursor);
if(property.nullable && cursor.isNull(column))
return null;
return new BigInteger(cursor.getString(column));
}
private int columnIndex(Property<?> property, TodorooCursor<?> cursor) {
return cursor.getColumnIndexFromCache(property.getColumnName());
}

@ -6,7 +6,6 @@
package com.todoroo.astrid.data;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property.BigIntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
@ -52,5 +51,8 @@ abstract public class RemoteModel extends AbstractModel {
public static final String UUID_PROPERTY_NAME = "uuid"; //$NON-NLS-1$
/** new uuid property */
public static final BigIntegerProperty UUID_PROPERTY = new BigIntegerProperty(null, UUID_PROPERTY_NAME);
public static final StringProperty UUID_PROPERTY = new StringProperty(null, UUID_PROPERTY_NAME);
/** constant value for no uuid */
public static final String NO_UUID = "0"; //$NON-NLS-1$
}

@ -11,7 +11,6 @@ import android.net.Uri;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.BigIntegerProperty;
import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
@ -127,7 +126,7 @@ public final class TagData extends RemoteModel {
TABLE, PUSHED_AT_PROPERTY_NAME);
/** UUID */
public static final BigIntegerProperty UUID = new BigIntegerProperty(
public static final StringProperty UUID = new StringProperty(
TABLE, UUID_PROPERTY_NAME);
/** List of all properties for this model */

@ -14,7 +14,6 @@ import android.net.Uri;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.BigIntegerProperty;
import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
@ -172,8 +171,8 @@ public final class Task extends RemoteModel {
TABLE, PUSHED_AT_PROPERTY_NAME);
/** UUID */
public static final BigIntegerProperty UUID = new BigIntegerProperty(
TABLE, UUID_PROPERTY_NAME);
public static final StringProperty UUID = new StringProperty(
TABLE, UUID_PROPERTY_NAME, true);
/** List of all properties for this model */
public static final Property<?>[] PROPERTIES = generateProperties(Task.class);

@ -11,7 +11,6 @@ import android.net.Uri;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.BigIntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.data.Table;
@ -111,7 +110,7 @@ public class Update extends RemoteModel {
TABLE, PUSHED_AT_PROPERTY_NAME);
/** UUID */
public static final BigIntegerProperty UUID = new BigIntegerProperty(
public static final StringProperty UUID = new StringProperty(
TABLE, UUID_PROPERTY_NAME);
/** List of all properties for this model */

@ -6,7 +6,6 @@
package com.timsu.astrid;
import java.io.IOException;
import java.math.BigInteger;
import org.json.JSONException;
import org.json.JSONObject;
@ -138,7 +137,7 @@ public class C2DMReceiver extends BroadcastReceiver {
try {
TagData tagData = new TagData();
if(cursor.getCount() == 0) {
tagData.setValue(TagData.UUID, new BigInteger(intent.getStringExtra("tag_id")));
tagData.setValue(TagData.UUID, intent.getStringExtra("tag_id"));
tagData.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
tagDataService.save(tagData);
} else {
@ -157,7 +156,7 @@ public class C2DMReceiver extends BroadcastReceiver {
try {
final Task task = new Task();
if(cursor.getCount() == 0) {
task.setValue(Task.UUID, new BigInteger(intent.getStringExtra("task_id")));
task.setValue(Task.UUID, intent.getStringExtra("task_id"));
task.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
taskService.save(task);
} else {
@ -304,7 +303,7 @@ public class C2DMReceiver extends BroadcastReceiver {
final Task task = new Task();
if(cursor.getCount() == 0) {
task.setValue(Task.TITLE, intent.getStringExtra("title"));
task.setValue(Task.UUID, new BigInteger(intent.getStringExtra("task_id")));
task.setValue(Task.UUID, intent.getStringExtra("task_id"));
task.setValue(Task.USER_ID, Task.USER_ID_UNASSIGNED);
task.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
taskService.save(task);
@ -345,7 +344,7 @@ public class C2DMReceiver extends BroadcastReceiver {
final TagData tagData = new TagData();
if(cursor.getCount() == 0) {
tagData.setValue(TagData.NAME, intent.getStringExtra("title"));
tagData.setValue(TagData.UUID, new BigInteger(intent.getStringExtra("tag_id")));
tagData.setValue(TagData.UUID, intent.getStringExtra("tag_id"));
tagData.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
tagDataService.save(tagData);
@ -371,7 +370,7 @@ public class C2DMReceiver extends BroadcastReceiver {
if(intent.hasExtra("activity_id")) {
try {
Update update = new Update();
update.setValue(Update.UUID, new BigInteger(intent.getStringExtra("activity_id")));
update.setValue(Update.UUID, intent.getStringExtra("activity_id"));
update.setValue(Update.USER_ID, Long.parseLong(intent.getStringExtra("user_id")));
JSONObject user = new JSONObject();
user.put("id", update.getValue(Update.USER_ID));

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.actfm;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@ -828,7 +827,7 @@ public class EditPeopleControlSet extends PopupControlSet {
ArrayList<Object> values = new ArrayList<Object>();
if(task.containsNonNullValue(Task.UUID)) {
BigInteger currentTaskID = task.getValue(Task.UUID);
String currentTaskID = task.getValue(Task.UUID);
values.add("id");
values.add(currentTaskID);
}

@ -6,7 +6,6 @@
package com.todoroo.astrid.actfm;
import java.io.IOException;
import java.math.BigInteger;
import org.json.JSONArray;
import org.json.JSONException;
@ -46,6 +45,7 @@ import com.todoroo.astrid.actfm.sync.ActFmSyncService;
import com.todoroo.astrid.activity.FilterListFragment;
import com.todoroo.astrid.activity.ShortcutActivity;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.helper.AsyncImageView;
@ -334,7 +334,7 @@ public class TagSettingsActivity extends FragmentActivity {
@Override
public void run() {
actFmSyncService.pushTagDataOnSave(tagData, tagData.getMergedValues());
if(setBitmap != null && BigInteger.ZERO.compareTo(tagData.getValue(TagData.UUID)) != 0)
if(setBitmap != null && !RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID)))
uploadTagPicture(setBitmap);
runOnUiThread(loadTag);
@ -460,7 +460,7 @@ public class TagSettingsActivity extends FragmentActivity {
public void handleCameraResult(Bitmap bitmap) {
picture.setImageBitmap(bitmap);
setBitmap = bitmap;
if(BigInteger.ZERO.compareTo(tagData.getValue(TagData.UUID)) != 0)
if(!RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID)))
uploadTagPicture(bitmap);
saveTagPictureLocally(bitmap);
}

@ -5,8 +5,6 @@
*/
package com.todoroo.astrid.actfm;
import java.math.BigInteger;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
@ -48,6 +46,7 @@ import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.adapter.UpdateAdapter;
import com.todoroo.astrid.dao.UpdateDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Update;
@ -277,7 +276,7 @@ public class TagUpdatesFragment extends ListFragment {
}
public void setLastViewed() {
if(tagData != null && BigInteger.ZERO.compareTo(tagData.getValue(TagData.UUID)) != 0) {
if(tagData != null && !RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID))) {
Preferences.setLong(UPDATES_LAST_VIEWED + tagData.getValue(TagData.UUID), DateUtilities.now());
Activity activity = getActivity();
if (activity instanceof TaskListActivity)

@ -5,8 +5,6 @@
*/
package com.todoroo.astrid.actfm;
import java.math.BigInteger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -53,6 +51,7 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.Update;
@ -200,14 +199,14 @@ public class TagViewFragment extends TaskListFragment {
TaskListActivity activity = (TaskListActivity) getActivity();
String tag = extras.getString(EXTRA_TAG_NAME);
BigInteger uuid = BigInteger.ZERO;
String uuid = RemoteModel.NO_UUID;
if (extras.containsKey(EXTRA_TAG_UUID))
uuid = new BigInteger(extras.getString(EXTRA_TAG_UUID));
uuid = extras.getString(EXTRA_TAG_UUID);
else if (extras.containsKey(EXTRA_TAG_REMOTE_ID)) // For legacy support with shortcuts, widgets, etc.
uuid = BigInteger.valueOf(extras.getLong(EXTRA_TAG_REMOTE_ID));
uuid = Long.toString(extras.getLong(EXTRA_TAG_REMOTE_ID));
if(tag == null && BigInteger.ZERO.compareTo(uuid) == 0)
if(tag == null && RemoteModel.NO_UUID.equals(uuid))
return;
TodorooCursor<TagData> cursor = tagDataService.query(Query.select(TagData.PROPERTIES).where(
@ -484,7 +483,11 @@ public class TagViewFragment extends TaskListFragment {
refreshData(false);
NotificationManager nm = new AndroidNotificationManager(ContextManager.getContext());
nm.cancel(tagData.getValue(TagData.UUID).intValue());
try {
nm.cancel(Integer.parseInt(tagData.getValue(TagData.UUID)));
} catch (NumberFormatException e) {
// Eh
}
}
};

@ -8,7 +8,6 @@ package com.todoroo.astrid.actfm.sync;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -451,7 +450,7 @@ public final class ActFmSyncService {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
metadata.readFromCursor(cursor);
if(metadata.containsNonNullValue(TagMetadata.TAG_UUID) &&
metadata.getValue(TagMetadata.TAG_UUID).compareTo(BigInteger.ZERO) != 0) {
!RemoteModel.NO_UUID.equals(metadata.getValue(TagMetadata.TAG_UUID))) {
params.add("tag_ids[]");
params.add(metadata.getValue(TagMetadata.TAG_UUID));
} else {
@ -1099,7 +1098,7 @@ public final class ActFmSyncService {
* @throws IOException
* @throws ActFmServiceException
*/
public String setTagPicture(BigInteger tagId, Bitmap bitmap) throws ActFmServiceException, IOException {
public String setTagPicture(String tagId, Bitmap bitmap) throws ActFmServiceException, IOException {
if(!checkForToken())
return null;
@ -1540,8 +1539,8 @@ public final class ActFmSyncService {
public static void taskFromJson(JSONObject json, Task model, ArrayList<Metadata> metadata) throws JSONException {
metadata.clear();
model.clearValue(Task.UUID);
BigInteger remoteId = new BigInteger(json.getString("id"));
if (remoteId.compareTo(BigInteger.ZERO) == 0)
String remoteId = json.getString("id");
if (RemoteModel.NO_UUID.equals(remoteId))
model.setValue(Task.UUID, null);
else
model.setValue(Task.UUID, remoteId);
@ -1575,7 +1574,7 @@ public final class ActFmSyncService {
String name = tag.getString("name");
if(TextUtils.isEmpty(name))
continue;
Metadata tagMetadata = TagMetadata.newTagMetadata(model.getId(), remoteId, name, new BigInteger(tag.getString("id")));
Metadata tagMetadata = TagMetadata.newTagMetadata(model.getId(), remoteId, name, tag.getString("id"));
metadata.add(tagMetadata);
}
}

@ -1,13 +1,11 @@
package com.todoroo.astrid.actfm.sync.messages;
import java.math.BigInteger;
import com.todoroo.astrid.data.RemoteModel;
public class BriefMe<TYPE extends RemoteModel> implements ClientToServerMessage {
private final Class<? extends RemoteModel> modelClass;
private final BigInteger uuid;
private final String uuid;
private long pushedAt; // TODO: Populate and use
public BriefMe(TYPE entity) {

@ -1,7 +1,6 @@
package com.todoroo.astrid.actfm.sync.messages;
import java.lang.reflect.Field;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
@ -23,7 +22,7 @@ public class ChangesHappened<TYPE extends RemoteModel, OE extends OutstandingEnt
private final Class<? extends RemoteModel> modelClass;
private final Class<OE> outstandingClass;
private final long id;
private final BigInteger uuid;
private final String uuid;
private final List<OE> changes;
private long pushedAt;
private final OutstandingEntryDao<OE> outstandingDao;
@ -41,7 +40,7 @@ public class ChangesHappened<TYPE extends RemoteModel, OE extends OutstandingEnt
entity = modelDao.fetch(entity.getId(), getModelProperties(modelClass));
}
if (entity == null) {
this.uuid = BigInteger.ZERO;
this.uuid = RemoteModel.NO_UUID;
this.pushedAt = 0;
} else {
this.uuid = entity.getValue(RemoteModel.UUID_PROPERTY);

@ -1,13 +1,11 @@
package com.todoroo.astrid.actfm.sync.messages;
import java.math.BigInteger;
import com.todoroo.astrid.data.RemoteModel;
public class RequestDoubleCheck<TYPE extends RemoteModel> implements ClientToServerMessage {
private final Class<? extends RemoteModel> modelClass;
private final BigInteger uuid;
private final String uuid;
public RequestDoubleCheck(TYPE entity) {
this.modelClass = entity.getClass();

@ -8,7 +8,6 @@ package com.todoroo.astrid.backup;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import org.xmlpull.v1.XmlSerializer;
@ -316,27 +315,6 @@ public class TasksXmlExporter {
}
return null;
}
@Override
public Void visitBigInteger(Property<BigInteger> property,
AbstractModel data) {
try {
BigInteger value = data.getValue(property);
if(value == null)
return null;
xml.attribute(null, property.name, value.toString());
} catch (UnsupportedOperationException e) {
// didn't read this value, do nothing
} catch (IllegalArgumentException e) {
throw new RuntimeException(e);
} catch (IllegalStateException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
return null;
}
}
private void onFinishExport(final String outputFile) {

@ -7,7 +7,6 @@ package com.todoroo.astrid.backup;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.StringTokenizer;
@ -387,14 +386,6 @@ public class TasksXmlImporter {
return null;
}
@Override
public Void visitBigInteger(Property<BigInteger> property,
AbstractModel data) {
String value = xpp.getAttributeValue(null, property.name);
if(value != null)
data.setValue(property, new BigInteger(value));
return null;
}
}
}

@ -137,7 +137,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
public void loadViewForTaskID(long t){
try {
task = PluginServices.getTaskService().fetchById(t, Task.NOTES, Task.ID, Task.REMOTE_ID, Task.TITLE);
task = PluginServices.getTaskService().fetchById(t, Task.NOTES, Task.ID, Task.UUID, Task.TITLE);
} catch (SQLiteException e) {
StartupService.handleSQLiteColumnMissing(ContextManager.getContext(), e);
}
@ -148,7 +148,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
setUpListAdapter();
if(actFmPreferenceService.isLoggedIn()) {
if(!task.containsNonNullValue(Task.REMOTE_ID))
if(!task.containsNonNullValue(Task.UUID))
refreshData(true, null);
else {
String fetchKey = LAST_FETCH_KEY + task.getId();
@ -285,12 +285,12 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
TodorooCursor<Update> updates;
if (!task.containsNonNullValue(Task.REMOTE_ID)) {
if (!task.containsNonNullValue(Task.UUID)) {
updates = updateDao.query(Query.select(Update.PROPERTIES).where(Update.TASK_LOCAL.eq(task.getId())));
}
else {
updates = updateDao.query(Query.select(Update.PROPERTIES).where(Criterion.or(
Update.TASK.eq(task.getValue(Task.REMOTE_ID)), Update.TASK_LOCAL.eq(task.getId()))));
Update.TASK.eq(task.getValue(Task.UUID)), Update.TASK_LOCAL.eq(task.getId()))));
}
try {
Update update = new Update();
@ -391,7 +391,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
}
public void refreshData(boolean manual, SyncResultCallback existingCallback) {
if(!task.containsNonNullValue(Task.REMOTE_ID)) {
if(!task.containsNonNullValue(Task.UUID)) {
return;
}

@ -1,7 +1,5 @@
package com.todoroo.astrid.tags;
import java.math.BigInteger;
import android.util.Log;
import com.todoroo.andlib.data.DatabaseDao;
@ -104,14 +102,14 @@ public class Astrid44SyncMigrator {
if (Constants.DEBUG)
Log.w(LOG_TAG, "Incomplete linking task " + m.getValue(Metadata.TASK) + " to " + m.getValue(TagMetadata.TAG_NAME));
if (!m.containsNonNullValue(TagMetadata.TASK_UUID) || m.getValue(TagMetadata.TASK_UUID).compareTo(BigInteger.ZERO) == 0) {
if (!m.containsNonNullValue(TagMetadata.TASK_UUID) || RemoteModel.NO_UUID.equals(m.getValue(TagMetadata.TASK_UUID))) {
if (Constants.DEBUG)
Log.w(LOG_TAG, "No task uuid");
updateTaskUuid(m);
changes = true;
}
if (!m.containsNonNullValue(TagMetadata.TAG_UUID) || m.getValue(TagMetadata.TAG_UUID).compareTo(BigInteger.ZERO) == 0) {
if (!m.containsNonNullValue(TagMetadata.TAG_UUID) || RemoteModel.NO_UUID.equals(m.getValue(TagMetadata.TAG_UUID))) {
if (Constants.DEBUG)
Log.w(LOG_TAG, "No tag uuid");
updateTagUuid(m);
@ -138,12 +136,12 @@ public class Astrid44SyncMigrator {
instance.readPropertiesFromCursor(cursor);
if (!instance.containsNonNullValue(RemoteModel.REMOTE_ID_PROPERTY)) {
// No remote id exists, just create a UUID
Pair<BigInteger, String> uuidPair = UUIDHelper.newUUID();
Pair<String, String> uuidPair = UUIDHelper.newUUID();
instance.setValue(RemoteModel.UUID_PROPERTY, uuidPair.getLeft());
instance.setValue(RemoteModel.PROOF_TEXT_PROPERTY, uuidPair.getRight());
} else {
// Migrate remote id to uuid field
instance.setValue(RemoteModel.UUID_PROPERTY, BigInteger.valueOf(instance.getValue(RemoteModel.REMOTE_ID_PROPERTY)));
instance.setValue(RemoteModel.UUID_PROPERTY, Long.toString(instance.getValue(RemoteModel.REMOTE_ID_PROPERTY)));
}
dao.saveExisting(instance);
}

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.tags;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
@ -42,6 +41,7 @@ import com.todoroo.astrid.api.FilterWithUpdate;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.AstridDependencyInjector;
@ -79,7 +79,7 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE
FilterWithUpdate filter = new FilterWithUpdate(tag.tag,
title, tagTemplate,
contentValues);
if(BigInteger.ZERO.compareTo(tag.uuid) != 0) {
if(!RemoteModel.NO_UUID.equals(tag.uuid)) {
filter.listingTitle += " (" + tag.count + ")";
if(tag.count == 0)
filter.color = Color.GRAY;

@ -1,8 +1,5 @@
package com.todoroo.astrid.tags;
import java.math.BigInteger;
import com.todoroo.andlib.data.Property.BigIntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.astrid.data.Metadata;
@ -17,11 +14,11 @@ public class TagMetadata {
public static final StringProperty TAG_NAME = Metadata.VALUE1;
/** Tag uuid */
public static final BigIntegerProperty TAG_UUID = new BigIntegerProperty(
public static final StringProperty TAG_UUID = new StringProperty(
Metadata.TABLE, Metadata.VALUE2.name);
/** Task uuid */
public static final BigIntegerProperty TASK_UUID = new BigIntegerProperty(
public static final StringProperty TASK_UUID = new StringProperty(
Metadata.TABLE, Metadata.VALUE3.name);
/** Pushed at time */
@ -40,11 +37,11 @@ public class TagMetadata {
* @param tagUuid
* @return
*/
public static Metadata newTagMetadata(Task task, String tagName, BigInteger tagUuid) {
public static Metadata newTagMetadata(Task task, String tagName, String tagUuid) {
return newTagMetadata(task.getId(), task.getValue(Task.UUID), tagName, tagUuid);
}
public static Metadata newTagMetadata(long taskId, BigInteger taskUuid, String tagName, BigInteger tagUuid) {
public static Metadata newTagMetadata(long taskId, String taskUuid, String tagName, String tagUuid) {
Metadata link = new Metadata();
link.setValue(Metadata.KEY, KEY);
link.setValue(Metadata.TASK, taskId);

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.tags;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@ -105,14 +104,14 @@ public final class TagService {
public String tag;
public int count;
public long id;
public BigInteger uuid;
public String uuid;
public String image;
public long userId;
public long memberCount;
@Deprecated public long remoteId;
public static Tag tagFromUUID(BigInteger uuid) {
public static Tag tagFromUUID(String uuid) {
TodorooCursor<TagData> tagData = PluginServices.getTagDataService().query(Query.select(TagData.PROPERTIES).where(TagData.UUID.eq(uuid)));
try {
if (tagData.getCount() > 0) {
@ -257,7 +256,7 @@ public final class TagService {
}
}
public void createLink(Task task, String tagName, BigInteger tagUuid) {
public void createLink(Task task, String tagName, String tagUuid) {
TodorooCursor<Metadata> existing = metadataDao.query(Query.select(Metadata.PROPERTIES)
.where(Criterion.and(MetadataCriteria.withKey(TagMetadata.KEY),
TagMetadata.TASK_UUID.eq(task.getValue(Task.UUID)),
@ -420,8 +419,8 @@ public final class TagService {
* @param taskId
* @param tags
*/
public boolean synchronizeTags(long taskId, BigInteger taskUuid, Set<String> tags) {
HashSet<BigInteger> existingLinks = new HashSet<BigInteger>();
public boolean synchronizeTags(long taskId, String taskUuid, Set<String> tags) {
HashSet<String> existingLinks = new HashSet<String>();
TodorooCursor<Metadata> links = metadataDao.query(Query.select(Metadata.PROPERTIES)
.where(Criterion.and(TagMetadata.TASK_UUID.eq(taskUuid), Metadata.DELETION_DATE.eq(0))));
try {

@ -1,6 +1,5 @@
package com.todoroo.astrid.tags.reusable;
import java.math.BigInteger;
import java.util.concurrent.atomic.AtomicReference;
import android.content.Context;
@ -17,6 +16,7 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.utility.Flags;
@ -50,7 +50,7 @@ public class ReusableTaskAdapter extends TaskAdapter {
@Override
public void onClick(View v) {
ReusableTaskViewHolder holder = (ReusableTaskViewHolder) v.getTag();
taskService.cloneReusableTask(holder.task, null, BigInteger.ZERO);
taskService.cloneReusableTask(holder.task, null, RemoteModel.NO_UUID);
Toast.makeText(fragment.getActivity(), R.string.actfm_feat_list_task_clone_success, Toast.LENGTH_LONG).show();
Flags.set(Flags.REFRESH);
}

@ -7,7 +7,6 @@ package com.todoroo.astrid.activity;
import java.io.File;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -65,6 +64,7 @@ import com.todoroo.astrid.actfm.EditPeopleControlSet;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncService;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.files.FileExplore;
@ -259,7 +259,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
private boolean overrideFinishAnim;
private BigInteger remoteId = BigInteger.ZERO;
private String remoteId = RemoteModel.NO_UUID;
private WebServicesView webServices = null;
@ -303,7 +303,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
model = task;
}
if (savedInstanceState.containsKey(TASK_UUID)) {
remoteId = new BigInteger(savedInstanceState.getString(TASK_UUID));
remoteId = savedInstanceState.getString(TASK_UUID);
}
}
@ -790,7 +790,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
/** Convenience method to populate fields after setting model to null */
public void repopulateFromScratch(Intent intent) {
model = null;
remoteId = BigInteger.ZERO;
remoteId = RemoteModel.NO_UUID;
populateFields(intent);
if (webServices != null) {
webServices.setTask(model);
@ -1163,7 +1163,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Override
public void onPrepareOptionsMenu (Menu menu) {
if(actFmPreferenceService.isLoggedIn() && BigInteger.ZERO.compareTo(remoteId) != 0 && menu.findItem(MENU_COMMENTS_REFRESH_ID) == null) {
if(actFmPreferenceService.isLoggedIn() && !RemoteModel.NO_UUID.equals(remoteId) && menu.findItem(MENU_COMMENTS_REFRESH_ID) == null) {
MenuItem item = menu.add(Menu.NONE, MENU_COMMENTS_REFRESH_ID, Menu.NONE,
R.string.ENA_refresh_comments);
item.setIcon(R.drawable.icn_menu_refresh_dark);

@ -6,7 +6,6 @@
package com.todoroo.astrid.adapter;
import java.io.IOException;
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -362,7 +361,7 @@ public class UpdateAdapter extends CursorAdapter {
if (TASK_LINK_TYPE.equals(linkType)) {
long taskId = update.getValue(Update.TASK_LOCAL);
if (taskId <= 0) {
Task local = PluginServices.getTaskService().fetchByRemoteId(BigInteger.valueOf(update.getValue(Update.TASK)), Task.ID);
Task local = PluginServices.getTaskService().fetchByRemoteId(Long.toString(update.getValue(Update.TASK)), Task.ID);
if (local != null)
taskId = local.getId();
}

@ -1,7 +1,5 @@
package com.todoroo.astrid.dao;
import java.math.BigInteger;
import com.todoroo.andlib.data.DatabaseDao;
import com.todoroo.andlib.utility.Pair;
import com.todoroo.astrid.data.RemoteModel;
@ -25,7 +23,7 @@ public class RemoteModelDao<RTYPE extends RemoteModel> extends DatabaseDao<RTYPE
@Override
public boolean createNew(RTYPE item) {
if (!item.containsValue(RemoteModel.UUID_PROPERTY)) {
Pair<BigInteger, String> uuidPair = UUIDHelper.newUUID();
Pair<String, String> uuidPair = UUIDHelper.newUUID();
item.setValue(RemoteModel.UUID_PROPERTY, uuidPair.getLeft());
item.setValue(RemoteModel.PROOF_TEXT_PROPERTY, uuidPair.getRight());
}

@ -5,8 +5,6 @@
*/
package com.todoroo.astrid.dao;
import java.math.BigInteger;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
@ -338,7 +336,7 @@ public class TaskDao extends RemoteModelDao<Task> {
try {
saveExisting(item);
} catch (SQLiteConstraintException e) {
BigInteger uuid = item.getValue(Task.UUID);
String uuid = item.getValue(Task.UUID);
TodorooCursor<Task> tasksWithUUID = query(Query.select(
SQL_CONSTRAINT_MERGE_PROPERTIES).where(
Task.UUID.eq(uuid)));

@ -1,6 +1,5 @@
package com.todoroo.astrid.helper;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.UUID;
@ -40,7 +39,7 @@ public class UUIDHelper {
* @return a pair consisting of the newly
* generated uuid and the corresponding proof text
*/
public static Pair<BigInteger, String> newUUID() {
public static Pair<String, String> newUUID() {
long uuid = 0;
String proofText = ""; //$NON-NLS-1$
do {
@ -55,7 +54,7 @@ public class UUIDHelper {
proofText = d + "," + s; //$NON-NLS-1$
uuid = bcryptToLong(proofText);
} while (uuid < MIN_UUID);
return Pair.create(BigInteger.valueOf(uuid), proofText);
return Pair.create(Long.toString(uuid), proofText);
}
private static final String SALT = "$2a$10$2RHhxhKaPb4VXlQUJyBU/O"; //$NON-NLS-1$

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.service;
import java.math.BigInteger;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
@ -315,14 +314,6 @@ public class Astrid2To3UpgradeHelper {
Log.d("upgrade", "wrote " + value + " to -> " + property + " of model id " + data.cursor.getLong(1));
return null;
}
@Override
public Void visitBigInteger(Property<BigInteger> property, UpgradeVisitorContainer<?> data) {
BigInteger value = new BigInteger(data.cursor.getString(data.columnIndex));
data.model.setValue(property, value);
Log.d("upgrade", "wrote " + value + " to -> " + property + " of model id " + data.cursor.getLong(1));
return null;
}
}
/**

@ -5,8 +5,6 @@
*/
package com.todoroo.astrid.service;
import java.math.BigInteger;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
@ -19,6 +17,7 @@ import com.todoroo.astrid.api.PermaSql;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.dao.UpdateDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Update;
@ -147,7 +146,7 @@ public class TagDataService {
return updateDao.query(Query.select(Update.PROPERTIES).where(
criterion).
orderBy(Order.desc(Update.CREATION_DATE)));
if(BigInteger.ZERO.compareTo(tagData.getValue(TagData.UUID)) == 0)
if(RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID)))
return updateDao.query(Query.select(Update.PROPERTIES).where(Update.TAGS_LOCAL.like("%," + tagData.getId() + ",%")));
return updateDao.query(Query.select(Update.PROPERTIES).where(Criterion.and(criterion,
Criterion.or(Update.TAGS.like("%," + tagData.getValue(TagData.UUID) + ",%"),
@ -161,7 +160,7 @@ public class TagDataService {
* @return
*/
public Update getLatestUpdate(TagData tagData) {
if(BigInteger.ZERO.compareTo(tagData.getValue(TagData.UUID)) == 0)
if(RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID)))
return null;
@SuppressWarnings("nls")

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.service;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
@ -33,6 +32,7 @@ import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
@ -105,7 +105,7 @@ public class TaskService {
* @param properties
* @return item, or null if it doesn't exist
*/
public Task fetchByRemoteId(BigInteger uuid, Property<?>... properties) {
public Task fetchByRemoteId(String uuid, Property<?>... properties) {
TodorooCursor<Task> task = query(Query.select(properties).where(Task.UUID.eq(uuid)));
try {
if (task.getCount() > 0) {
@ -193,7 +193,7 @@ public class TaskService {
return newTask;
}
public Task cloneReusableTask(Task task, String tagName, BigInteger tagUuid) {
public Task cloneReusableTask(Task task, String tagName, String tagUuid) {
Task newTask = fetchById(task.getId(), Task.PROPERTIES);
if (newTask == null)
return new Task();
@ -205,7 +205,7 @@ public class TaskService {
taskDao.save(newTask);
if (BigInteger.ZERO.compareTo(tagUuid) != 0) {
if (!RemoteModel.NO_UUID.equals(tagUuid)) {
TagService.getInstance().createLink(task, tagName, tagUuid);
}
return newTask;
@ -535,7 +535,7 @@ public class TaskService {
metadata.setValue(Metadata.TASK, task.getId());
metadata.mergeWith(forMetadata);
if (TagMetadata.KEY.equals(metadata.getValue(Metadata.KEY))) {
if (metadata.containsNonNullValue(TagMetadata.TAG_UUID) && BigInteger.ZERO.compareTo(metadata.getValue(TagMetadata.TAG_UUID)) != 0) {
if (metadata.containsNonNullValue(TagMetadata.TAG_UUID) && !RemoteModel.NO_UUID.equals(metadata.getValue(TagMetadata.TAG_UUID))) {
// This is more efficient
TagService.getInstance().createLink(task, metadata.getValue(TagMetadata.TAG_NAME), metadata.getValue(TagMetadata.TAG_UUID));
} else {

Loading…
Cancel
Save