Finished first draft of activity to create list for cal event

pull/14/head
Sam Bosley 13 years ago
parent 20493df375
commit 28c925284f

@ -3,20 +3,35 @@ package com.todoroo.astrid.gcal;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
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.sql.Query;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.dao.UserDao;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.User;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.tags.TagFilterExposer;
public class CreateEventListActivity extends Activity {
@ -25,12 +40,22 @@ public class CreateEventListActivity extends Activity {
@Autowired
private UserDao userDao;
@Autowired
private TagDataService tagDataService;
@Autowired
private ActFmPreferenceService actFmPreferenceService;
private ArrayList<String> names;
private ArrayList<String> emails;
private HashMap<String, User> emailsToUsers;
private boolean loggedIn;
private Button saveButton;
private Button cancelButton;
private ListView membersList;
private EditText tagName;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -40,13 +65,20 @@ public class CreateEventListActivity extends Activity {
saveButton = (Button) findViewById(R.id.save);
cancelButton = (Button) findViewById(R.id.cancel);
tagName = (EditText) findViewById(R.id.list_name);
membersList = (ListView) findViewById(R.id.members_list);
Intent intent = getIntent();
names = intent.getStringArrayListExtra(CalendarReminderActivity.TOKEN_NAMES);
emails = intent.getStringArrayListExtra(CalendarReminderActivity.TOKEN_EMAILS);
tagName.setText(intent.getStringExtra(TOKEN_LIST_NAME));
loggedIn = actFmPreferenceService.isLoggedIn();
initializeUserMap();
initializeListView();
addListeners();
}
@ -80,29 +112,68 @@ public class CreateEventListActivity extends Activity {
}
private void save() {
// Perform save
String name = tagName.getText().toString();
TagData checkName = tagDataService.getTag(name, TagData.PROPERTIES);
if (checkName != null) {
DialogUtilities.okDialog(this, getString(R.string.CRA_list_exists_title), null);
return;
}
TagData newTag = new TagData();
newTag.setValue(TagData.NAME, name);
if (loggedIn) { // include members
JSONArray membersArray = getMembersArray();
newTag.setValue(TagData.MEMBERS, membersArray.toString());
newTag.setValue(TagData.MEMBER_COUNT, membersArray.length());
}
tagDataService.save(newTag);
FilterWithCustomIntent filter = TagFilterExposer.filterFromTagData(this, newTag);
Intent listIntent = new Intent(this, TaskListActivity.class);
listIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
listIntent.putExtras(filter.customExtras);
startActivity(listIntent);
finish();
}
private void initializeListView() {
if (loggedIn) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, android.R.id.text1);
membersList.setAdapter(adapter);
for (int i = 0; i < emails.size(); i++) {
String email = emails.get(i);
if (email.equals(ActFmPreferenceService.thisUser().optString("email", null))) //$NON-NLS-1$
continue;
adapter.add(email);
membersList.setItemChecked(i, true);
}
if (adapter.getCount() == 0)
membersList.setVisibility(View.GONE);
} else {
membersList.setVisibility(View.GONE);
}
}
// private void maybeDoStuff() {
// LinearLayout root = (LinearLayout) findViewById(R.id.reminder_root);
//
// for (int i = 0; i < emails.size(); i++) {
// String email = emails.get(i);
// if (email.equals(ActFmPreferenceService.thisUser().optString("email", null)))
// continue;
// String displayString = email;
// if (!TextUtils.isEmpty(names.get(i))) {
// displayString = names.get(i);
// } else if (emailsToUsers.containsKey(email)) {
// User u = emailsToUsers.get(email);
// displayString = u.getDisplayName();
// }
//
// TextView tv = new TextView(this);
// tv.setText(displayString);
// tv.setTextColor(getResources().getColor(android.R.color.white));
// root.addView(tv);
// }
// }
private JSONArray getMembersArray() {
JSONArray array = new JSONArray();
for (int i = 0; i < membersList.getCount(); i++) {
if (membersList.isItemChecked(i)) {
try {
JSONObject member = new JSONObject();
member.put("email", (String) membersList.getItemAtPosition(i)); //$NON-NLS-1$
array.put(member);
} catch (JSONException e) {
// ignored
}
}
}
return array;
}
}

@ -11,7 +11,11 @@
android:layout_height="50dip"
android:hint="@string/CRA_list_name_hint"/>
<!-- Put names of shared people here -->
<ListView
android:id="@+id/members_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="fill_parent"

@ -561,6 +561,9 @@
<!-- Calendar reminder: list title hint -->
<string name="CRA_list_name_hint">List name</string>
<!-- Calendar reminder: include event members -->
<string name="CRA_include_members">Share with event members</string>
<!-- ===================================================== HelpActivity == -->
<!-- Help: Button to get support from our website -->

Loading…
Cancel
Save