Fixed a bug when saving suggested users, which don't have email strings

pull/14/head
Sam Bosley 12 years ago
parent 5203b8b0cb
commit 3984cfb2c2

@ -116,7 +116,7 @@ public final class User extends RemoteModel {
public String getDisplayName() {
String name = getValue(NAME);
if (!TextUtils.isEmpty(name))
if (!(TextUtils.isEmpty(name) || "null".equals(name)))
return name;
return getValue(EMAIL);
}

@ -10,6 +10,7 @@ import org.json.JSONObject;
import android.content.ContentValues;
import android.content.Context;
import android.text.TextUtils;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
@ -158,9 +159,10 @@ public final class ActFmDataService {
*/
@SuppressWarnings("nls")
public void saveUserData(JSONObject userObject) throws JSONException {
TodorooCursor<User> cursor = userDao.query(Query.select(User.PROPERTIES).where(
Criterion.or(User.REMOTE_ID.eq(userObject.get("id")),
Criterion.and(User.EMAIL.isNotNull(), User.EMAIL.eq(userObject.optString("email"))))));
Criterion criterion = User.REMOTE_ID.eq(userObject.getLong("id"));
if (!TextUtils.isEmpty(userObject.optString("email")))
criterion = Criterion.or(criterion, Criterion.and(User.EMAIL.isNotNull(), User.EMAIL.eq(userObject.optString("email"))));
TodorooCursor<User> cursor = userDao.query(Query.select(User.PROPERTIES).where(criterion));
try {
cursor.moveToFirst();
User user = new User();

@ -874,8 +874,8 @@ public final class ActFmSyncService {
for (int i = 0; i < users.length(); i++) {
JSONObject userObject = users.getJSONObject(i);
ids.add(userObject.optLong("id"));
actFmDataService.saveUserData(userObject); }
actFmDataService.saveUserData(userObject);
}
}
public int fetchUsers() throws JSONException, IOException {

@ -59,6 +59,7 @@ public class PeopleFilterExposer extends BroadcastReceiver {
private FilterListItem[] prepareFilters(Context context) {
TodorooCursor<User> users = PluginServices.getUserDao().query(Query.select(User.PROPERTIES)
.where(Criterion.all)
.orderBy(Order.asc(User.NAME), Order.asc(User.EMAIL)));
try {
List<FilterListItem> items = new ArrayList<FilterListItem>();

@ -106,8 +106,11 @@ public class PersonViewFragment extends TaskListFragment {
private void setupUserStatusButton() {
String status = user.getValue(User.STATUS);
String pendingStatus = user.getValue(User.PENDING_STATUS);
userStatusButton.setVisibility(View.VISIBLE);
if (TextUtils.isEmpty(status))
if (!TextUtils.isEmpty(pendingStatus))
userStatusButton.setVisibility(View.GONE);
else if (TextUtils.isEmpty(status))
userStatusButton.setText(getString(R.string.actfm_friendship_connect));
else if (User.STATUS_OTHER_PENDING.equals(status))
userStatusButton.setText(getString(R.string.actfm_friendship_accept));
@ -192,6 +195,7 @@ public class PersonViewFragment extends TaskListFragment {
@Override
public void run() {
if (!TextUtils.isEmpty(user.getValue(User.PENDING_STATUS))) {
System.err.println("PUSHING USER");
actFmSyncService.pushUser(user);
user = userDao.fetch(user.getId(), User.PROPERTIES);
}

Loading…
Cancel
Save