Record emails shared with when not friends with them

pull/14/head
Sam Bosley 12 years ago
parent d5bfbd196f
commit 9dc1fc280a

@ -117,6 +117,7 @@ public class SortHelper {
Task.IMPORTANCE + " + 2*" + Task.COMPLETION_DATE);
}
@SuppressWarnings("nls")
private static String adjustedDueDateFunction() {
return new StringBuilder("(CASE WHEN (").append(Task.DUE_DATE.name).append(" / 1000) % 60 > 0")
.append(" THEN ").append(Task.DUE_DATE.name).append(" ELSE ").append("(").append(Task.DUE_DATE.name)

@ -46,6 +46,8 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DialogUtilities;
@ -413,6 +415,7 @@ public class EditPeopleControlSet extends PopupControlSet {
if (assignedIndex == 0) {
assignedIndex = findAssignedIndex(t, coreUsers, listUsers, astridUsers);
System.err.println("Returned index: " + assignedIndex);
}
} catch (JSONException e) {
@ -503,7 +506,7 @@ public class EditPeopleControlSet extends PopupControlSet {
String assignedStr = t.getValue(Task.USER);
if (!TextUtils.isEmpty(assignedStr)) {
JSONObject assigned = new JSONObject(assignedStr);
long assignedId = assigned.optLong("id", -2);
long assignedId = assigned.optLong("id", Task.USER_ID_EMAIL);
String assignedEmail = assigned.optString("email");
int index = 0;
@ -526,7 +529,10 @@ public class EditPeopleControlSet extends PopupControlSet {
private ArrayList<JSONObject> getAstridFriends() {
ArrayList<JSONObject> astridFriends = new ArrayList<JSONObject>();
TodorooCursor<User> users = userDao.query(Query.select(User.PROPERTIES).orderBy(Order.asc(User.NAME)));
TodorooCursor<User> users = userDao.query(Query.select(User.PROPERTIES)
.orderBy(Order.asc(Functions.caseStatement(Criterion.or(User.NAME.isNull(), User.NAME.eq("")), //$NON-NLS-1$
Functions.upper(User.EMAIL),
Functions.upper(User.NAME)))));
try {
User user = new User();
for (users.moveToFirst(); !users.isAfterLast(); users.moveToNext()) {

@ -210,7 +210,8 @@ public final class ActFmDataService {
@SuppressWarnings("nls")
public void saveUserData(JSONObject userObject) throws JSONException {
TodorooCursor<User> cursor = userDao.query(Query.select(User.PROPERTIES).where(
User.REMOTE_ID.eq(userObject.get("id"))));
Criterion.or(User.REMOTE_ID.eq(userObject.get("id")),
Criterion.and(User.EMAIL.isNotNull(), User.EMAIL.eq(userObject.optString("email"))))));
try {
cursor.moveToFirst();
User user = new User();
@ -224,4 +225,18 @@ public final class ActFmDataService {
cursor.close();
}
}
public void addUserByEmail(String email) {
TodorooCursor<User> cursor = userDao.query(Query.select(User.ID).where(User.EMAIL.eq(email)));
try {
if (cursor.getCount() == 0) {
User user = new User();
user.setValue(User.REMOTE_ID, Task.USER_ID_IGNORE);
user.setValue(User.EMAIL, email);
userDao.persist(user);
}
} finally {
cursor.close();
}
}
}

@ -389,6 +389,8 @@ public final class ActFmSyncService {
if (!TextUtils.isEmpty(userEmail)) {
params.add("user_email");
params.add(userEmail);
actFmDataService.addUserByEmail(userEmail);
}
} catch (JSONException e) {
Log.e("Error parsing user", task.getValue(Task.USER), e);

Loading…
Cancel
Save