Removed several references to TagData.MEMBERS in TagSettingsActivity. Still need to figure out how to detect member added/removed

pull/14/head
Sam Bosley 12 years ago
parent db1610970e
commit baa05dfb46

@ -9,6 +9,7 @@ import java.io.IOException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
@ -33,9 +34,11 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.timsu.astrid.R;
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.Query;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
@ -45,9 +48,13 @@ 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.dao.TagMetadataDao;
import com.todoroo.astrid.dao.UserDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.TagMetadata;
import com.todoroo.astrid.data.User;
import com.todoroo.astrid.helper.AsyncImageView;
import com.todoroo.astrid.helper.ImageDiskCache;
import com.todoroo.astrid.service.StatisticsConstants;
@ -55,6 +62,7 @@ import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagMemberMetadata;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.ui.PeopleContainer;
import com.todoroo.astrid.ui.PeopleContainer.ParseSharedException;
@ -89,6 +97,10 @@ public class TagSettingsActivity extends FragmentActivity {
@Autowired ExceptionService exceptionService;
@Autowired UserDao userDao;
@Autowired TagMetadataDao tagMetadataDao;
private PeopleContainer tagMembers;
private AsyncImageView picture;
private EditText tagName;
@ -135,7 +147,7 @@ public class TagSettingsActivity extends FragmentActivity {
runOnUiThread(new Runnable() {
@Override
public void run() {
updateMembers(members);
updateMembers(members, RemoteModel.NO_UUID);
}
});
}
@ -235,7 +247,7 @@ public class TagSettingsActivity extends FragmentActivity {
String autopopulateMembers = getIntent().getStringExtra(TOKEN_AUTOPOPULATE_MEMBERS);
if (!TextUtils.isEmpty(autopopulateMembers)) {
updateMembers(autopopulateMembers);
updateMembers(autopopulateMembers, RemoteModel.NO_UUID);
getIntent().removeExtra(TOKEN_AUTOPOPULATE_MEMBERS);
}
@ -330,46 +342,15 @@ public class TagSettingsActivity extends FragmentActivity {
if (members.length() > oldMemberCount) {
StatisticsService.reportEvent(StatisticsConstants.ACTFM_LIST_SHARED);
}
tagData.setValue(TagData.MEMBERS, members.toString());
tagData.setValue(TagData.MEMBER_COUNT, members.length());
tagData.setFlag(TagData.FLAGS, TagData.FLAG_SILENT, isSilent.isChecked());
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tagName.getWindowToken(), 0);
if (isNewTag) {
tagData.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
tagDataService.save(tagData);
final Runnable loadTag = new Runnable() {
@Override
public void run() {
setResult(RESULT_OK, new Intent().putExtra(TOKEN_NEW_FILTER,
TagFilterExposer.filterFromTagData(TagSettingsActivity.this, tagData)));
finish();
}
};
if(actFmPreferenceService.isLoggedIn()) {
new Thread(new Runnable() {
@Override
public void run() {
actFmSyncService.pushTagDataOnSave(tagData, tagData.getMergedValues());
if(setBitmap != null && !RemoteModel.NO_UUID.equals(tagData.getValue(TagData.UUID)))
uploadTagPicture(setBitmap);
runOnUiThread(loadTag);
}
}).start();
} else {
loadTag.run();
}
return;
} else {
setResult(RESULT_OK);
tagDataService.save(tagData);
}
setResult(RESULT_OK);
tagDataService.save(tagData);
tagMetadataDao.synchronizeMembers(tagData.getId(), tagData.getUuid(), members);
refreshSettingsPage();
finish();
@ -424,21 +405,49 @@ public class TagSettingsActivity extends FragmentActivity {
}
String peopleJson = tagData.getValue(TagData.MEMBERS);
updateMembers(peopleJson);
updateMembers(peopleJson, tagData.getUuid());
tagDescription.setText(tagData.getValue(TagData.TAG_DESCRIPTION));
}
@SuppressWarnings("nls")
private void updateMembers(String peopleJson) {
private void updateMembers(String peopleJson, String tagUuid) {
tagMembers.removeAllViews();
if(!TextUtils.isEmpty(peopleJson)) {
JSONArray people = null;
try {
people = new JSONArray(peopleJson);
} catch (JSONException e) {
if (!RemoteModel.isUuidEmpty(tagUuid)) {
people = new JSONArray();
TodorooCursor<User> members = userDao.query(Query.select(User.PROPERTIES)
.where(User.UUID.in(Query.select(TagMemberMetadata.USER_UUID)
.from(TagMetadata.TABLE).where(TagMetadata.TAG_UUID.eq(tagUuid)))));
try {
User user = new User();
for (members.moveToFirst(); !members.isAfterLast(); members.moveToNext()) {
user.clear();
user.readFromCursor(members);
try {
JSONObject userJson = new JSONObject();
ActFmSyncService.JsonHelper.jsonFromUser(userJson, user);
people.put(userJson);
} catch (JSONException e2) {
//
}
}
} finally {
members.close();
}
}
}
if (people != null) {
try {
JSONArray people = new JSONArray(peopleJson);
tagMembers.fromJSONArray(people);
} catch (JSONException e) {
Log.e("tag-view-activity", "json error refresh members - " + peopleJson, e);
Log.e("tag-settings", "Error parsing tag members: " + people, e);
}
}

@ -1698,7 +1698,7 @@ public final class ActFmSyncService {
json.put("id", model.getValue(User.UUID));
json.put("name", model.getDisplayName());
json.put("email", model.getValue(User.EMAIL));
json.put("picture", model.getPictureUrl(User.PICTURE, RemoteModel.PICTURE_MEDIUM));
json.put("picture", model.getPictureUrl(User.PICTURE, RemoteModel.PICTURE_THUMB));
}
public static void updateFromJson(JSONObject json, Update model) throws JSONException {

@ -5,6 +5,8 @@
*/
package com.todoroo.astrid.dao;
import org.json.JSONArray;
import android.content.ContentValues;
import com.todoroo.andlib.data.AbstractModel;
@ -117,5 +119,9 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
}
}
}
public void synchronizeMembers(long tagId, String tagUuid, JSONArray members) {
throw new RuntimeException("IMPLEMENT ME!");
}
}

Loading…
Cancel
Save