From 20493df3759a001a48458a8d01989c0f87742227 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 10 Oct 2012 14:58:26 -0700 Subject: [PATCH] Stub the activity for creating a new list for a calendar event, finish the event reminder activity --- astrid/AndroidManifest.xml | 4 + .../astrid/gcal/CalendarReminderActivity.java | 73 +++--------- .../astrid/gcal/CreateEventListActivity.java | 108 ++++++++++++++++++ .../todoroo/astrid/tags/TagFilterExposer.java | 2 +- .../res/layout/create_event_list_activity.xml | 37 ++++++ astrid/res/values/strings-core.xml | 3 + 6 files changed, 172 insertions(+), 55 deletions(-) create mode 100644 astrid/plugin-src/com/todoroo/astrid/gcal/CreateEventListActivity.java create mode 100644 astrid/res/layout/create_event_list_activity.xml diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 4db2257d0..f440b65c2 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -297,6 +297,10 @@ + + + diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java index adf6e3f12..973348864 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java @@ -1,35 +1,30 @@ package com.todoroo.astrid.gcal; -import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; -import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; -import android.widget.LinearLayout; 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.sql.Query; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; -import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.activity.EditPreferences; -import com.todoroo.astrid.dao.UserDao; +import com.todoroo.astrid.activity.TaskListActivity; +import com.todoroo.astrid.activity.TaskListFragment; +import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.data.TagData; -import com.todoroo.astrid.data.User; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.TagDataService; +import com.todoroo.astrid.tags.TagFilterExposer; @SuppressWarnings("nls") public class CalendarReminderActivity extends Activity { @@ -44,15 +39,9 @@ public class CalendarReminderActivity extends Activity { // Prompt user to ignore all missed calls after this many ignore presses private static final int IGNORE_PROMPT_COUNT = 3; - @Autowired - private UserDao userDao; - @Autowired private TagDataService tagDataService; - private ArrayList names; - private ArrayList emails; - private HashMap emailsToUsers; private String eventName; private long eventTime; @@ -112,8 +101,6 @@ public class CalendarReminderActivity extends Activity { Intent intent = getIntent(); - names = intent.getStringArrayListExtra(TOKEN_NAMES); - emails = intent.getStringArrayListExtra(TOKEN_EMAILS); eventName = intent.getStringExtra(TOKEN_EVENT_NAME); eventTime = intent.getLongExtra(TOKEN_EVENT_TIME, DateUtilities.now()); @@ -122,50 +109,15 @@ public class CalendarReminderActivity extends Activity { ignoreSettingsButton = findViewById(R.id.ignore_settings); dismissButton = findViewById(R.id.dismiss); - initializeUserMap(); - setupUi(); addListeners(); } - private void initializeUserMap() { - emailsToUsers = new HashMap(); - TodorooCursor users = userDao.query(Query.select(User.PROPERTIES).where(User.EMAIL.in(emails.toArray(new String[emails.size()])))); - try { - for (users.moveToFirst(); !users.isAfterLast(); users.moveToNext()) { - User u = new User(users); - emailsToUsers.put(u.getValue(User.EMAIL), u); - } - } finally { - users.close(); - } - } - private void setupUi() { ((TextView) findViewById(R.id.reminder_title)) .setText(getString(R.string.CRA_title, eventName)); - 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); - } - TextView dialogView = (TextView) findViewById(R.id.reminder_message); dialogView.setText(getString(R.string.CRA_speech_bubble)); } @@ -213,13 +165,26 @@ public class CalendarReminderActivity extends Activity { new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - // use existing list + FilterWithCustomIntent filter = TagFilterExposer.filterFromTagData(CalendarReminderActivity.this, tag); + + Intent listIntent = new Intent(CalendarReminderActivity.this, TaskListActivity.class); + listIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); + listIntent.putExtras(filter.customExtras); + + startActivity(listIntent); + dismissButton.performClick(); } }); } private void createNewList(String defaultName) { - // Do something + Intent newListIntent = new Intent(this, CreateEventListActivity.class); + newListIntent.putStringArrayListExtra(TOKEN_NAMES, getIntent().getStringArrayListExtra(TOKEN_NAMES)); + newListIntent.putStringArrayListExtra(TOKEN_EMAILS, getIntent().getStringArrayListExtra(TOKEN_EMAILS)); + newListIntent.putExtra(CreateEventListActivity.TOKEN_LIST_NAME, defaultName); + + startActivity(newListIntent); + dismissButton.performClick(); // finish with animation } } diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CreateEventListActivity.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CreateEventListActivity.java new file mode 100644 index 000000000..065c652e7 --- /dev/null +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CreateEventListActivity.java @@ -0,0 +1,108 @@ +package com.todoroo.astrid.gcal; + +import java.util.ArrayList; +import java.util.HashMap; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; + +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.astrid.dao.UserDao; +import com.todoroo.astrid.data.User; + +public class CreateEventListActivity extends Activity { + + public static final String TOKEN_LIST_NAME = "listName"; //$NON-NLS-1$ + + @Autowired + private UserDao userDao; + + private ArrayList names; + private ArrayList emails; + private HashMap emailsToUsers; + + private Button saveButton; + private Button cancelButton; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + DependencyInjectionService.getInstance().inject(this); + setContentView(R.layout.create_event_list_activity); + + saveButton = (Button) findViewById(R.id.save); + cancelButton = (Button) findViewById(R.id.cancel); + + Intent intent = getIntent(); + names = intent.getStringArrayListExtra(CalendarReminderActivity.TOKEN_NAMES); + emails = intent.getStringArrayListExtra(CalendarReminderActivity.TOKEN_EMAILS); + + initializeUserMap(); + + addListeners(); + } + + private void initializeUserMap() { + emailsToUsers = new HashMap(); + TodorooCursor users = userDao.query(Query.select(User.PROPERTIES).where(User.EMAIL.in(emails.toArray(new String[emails.size()])))); + try { + for (users.moveToFirst(); !users.isAfterLast(); users.moveToNext()) { + User u = new User(users); + emailsToUsers.put(u.getValue(User.EMAIL), u); + } + } finally { + users.close(); + } + } + + private void addListeners() { + cancelButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + saveButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + save(); + } + }); + } + + private void save() { + // Perform save + } + + // 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); + // } + // } + +} diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java index bcbd4db6e..e3ce8bba4 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java @@ -115,7 +115,7 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE } /** Create a filter from tag data object */ - public static Filter filterFromTagData(Context context, TagData tagData) { + public static FilterWithCustomIntent filterFromTagData(Context context, TagData tagData) { Tag tag = new Tag(tagData); return filterFromTag(context, tag, TaskCriteria.activeAndVisible()); } diff --git a/astrid/res/layout/create_event_list_activity.xml b/astrid/res/layout/create_event_list_activity.xml new file mode 100644 index 000000000..6bf96fafb --- /dev/null +++ b/astrid/res/layout/create_event_list_activity.xml @@ -0,0 +1,37 @@ + + + + + + + + + +