diff --git a/astrid/plugin-src/com/todoroo/astrid/core/DefaultsPreferences.java b/astrid/plugin-src/com/todoroo/astrid/core/DefaultsPreferences.java index 8eb13dae0..67aa5bdb6 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/DefaultsPreferences.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/DefaultsPreferences.java @@ -5,12 +5,15 @@ package com.todoroo.astrid.core; import android.content.SharedPreferences.Editor; import android.content.res.Resources; +import android.os.Bundle; +import android.preference.ListPreference; import android.preference.Preference; import com.timsu.astrid.R; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.TodorooPreferenceActivity; +import com.todoroo.astrid.gcal.Calendars; /** * Displays the preference screen for users to edit their preferences @@ -25,6 +28,14 @@ public class DefaultsPreferences extends TodorooPreferenceActivity { return R.xml.preferences_defaults; } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ListPreference defaultCalendarPreference = (ListPreference) findPreference(getString(R.string.gcal_p_default)); + Calendars.initCalendarsPreference(this, defaultCalendarPreference); + } + /** * * @param resource if null, updates all resources @@ -57,6 +68,15 @@ public class DefaultsPreferences extends TodorooPreferenceActivity { String setting = r.getStringArray(R.array.EPr_reminder_random)[index]; preference.setSummary(r.getString(R.string.rmd_EPr_defaultRemind_desc, setting)); } + } else if(r.getString(R.string.gcal_p_default).equals(preference.getKey())) { + ListPreference listPreference = (ListPreference) preference; + int index = AndroidUtilities.indexOf(listPreference.getEntryValues(), (String)value); + if(index <= 0) + preference.setSummary(r.getString(R.string.EPr_default_addtocalendar_desc_disabled)); + else { + String setting = listPreference.getEntries()[index].toString(); + preference.setSummary(r.getString(R.string.EPr_default_addtocalendar_desc, setting)); + } } } diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/Calendars.java b/astrid/plugin-src/com/todoroo/astrid/gcal/Calendars.java index c668d9b8a..60d2c151a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/Calendars.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/Calendars.java @@ -1,10 +1,15 @@ package com.todoroo.astrid.gcal; +import java.util.ArrayList; +import java.util.Arrays; + import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; +import android.preference.ListPreference; +import android.util.Log; import com.timsu.astrid.R; import com.todoroo.andlib.service.ContextManager; @@ -69,9 +74,7 @@ public class Calendars { } /** - * Appends all user-modifiable calendars to listPreference. Always includes - * entry called "Astrid default" with calendar id of - * prefs_defaultCalendar_default. + * Appends all user-modifiable calendars to listPreference. * * @param context * context @@ -135,6 +138,69 @@ public class Calendars { } } + /** + * Appends all user-modifiable calendars to listPreference. + * + * @param context + * context + * @param listPreference + * preference to init + */ + public static void initCalendarsPreference(Context context, + ListPreference listPreference) { + + Resources r = context.getResources(); + CalendarResult calendars = getCalendars(); + + // Fetch the current setting. Invalid calendar id will + // be changed to default value. + String currentSetting = Preferences.getStringValue(R.string.gcal_p_default); + boolean calendarWasSelected = currentSetting != null && !currentSetting.equals("-1"); + + int currentSettingIndex = -1; + + ArrayList entries = new ArrayList(); + entries.addAll(Arrays.asList(r.getStringArray(R.array.EPr_default_addtocalendar))); + entries.addAll(Arrays.asList(calendars.calendars)); + + ArrayList entryValues = new ArrayList(); + entryValues.addAll(Arrays.asList(r.getStringArray(R.array.EPr_default_addtocalendar_values))); + entryValues.addAll(Arrays.asList(calendars.calendarIds)); + + listPreference.setEntries(entries.toArray(new CharSequence[entries.size()])); + listPreference.setEntryValues(entryValues.toArray(new CharSequence[entryValues.size()])); + + listPreference.setValueIndex(0); + listPreference.setEnabled(true); + + if (calendars == null || calendars.calendarIds.length == 0 || calendars.calendars.length == 0) { + // Something went wrong when querying calendars + // Leave the preference at disabled. + return; + } + + // Iterate calendars one by one, and fill up the list preference + if (currentSetting != null) { + for (int i=0; i calendars.calendarIds.length+1) { + // Should not happen! + // Leave the preference at disabled. + Log.d("astrid", "initCalendarsPreference: Unknown calendar."); + currentSettingIndex = 0; + } + + listPreference.setValueIndex(currentSettingIndex); + listPreference.setEnabled(true); + } + /** * sets the default calendar for future use * @param defaultCalendar default calendar id @@ -143,4 +209,12 @@ public class Calendars { Preferences.setString(R.string.gcal_p_default, defaultCalendar); } + /** + * gets the default calendar for future use + * @return the calendar id for use with the contentresolver + */ + public static String getDefaultCalendar() { + return Preferences.getStringValue(R.string.gcal_p_default); + } + } \ No newline at end of file diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java index ce1ec4fb3..0d49e07d1 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java @@ -24,7 +24,6 @@ import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; -import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.activity.TaskEditActivity.TaskEditControlSet; import com.todoroo.astrid.data.Task; @@ -40,9 +39,6 @@ import com.todoroo.astrid.service.StatisticsService; */ public class GCalControlSet implements TaskEditControlSet { - /** If task has no estimated time, how early to set a task in calendar (seconds)*/ - private static final long DEFAULT_CAL_TIME = DateUtilities.ONE_HOUR; - // --- instance variables @Autowired @@ -120,7 +116,7 @@ public class GCalControlSet implements TaskEditControlSet { @Override public void readFromTask(Task task) { this.myTask = task; - String uri = task.getValue(Task.CALENDAR_URI); + String uri = GCalHelper.getTaskEventUri(task); if(!TextUtils.isEmpty(uri)) { try { calendarUri = Uri.parse(uri); @@ -148,34 +144,23 @@ public class GCalControlSet implements TaskEditControlSet { @SuppressWarnings("nls") @Override public String writeToModel(Task task) { - if (((Preferences.getBoolean(R.string.p_default_addtocalendar_key, false) && !task.isSaved()) - || addToCalendar.isChecked()) && + boolean gcalCreateEventEnabled = Preferences.getStringValue(R.string.gcal_p_default) != null && + !Preferences.getStringValue(R.string.gcal_p_default).equals("-1"); + if ((gcalCreateEventEnabled || addToCalendar.isChecked()) && calendarUri == null) { StatisticsService.reportEvent(StatisticsConstants.CREATE_CALENDAR_EVENT); try{ - Uri uri = Calendars.getCalendarContentUri(Calendars.CALENDAR_CONTENT_EVENTS); ContentResolver cr = activity.getContentResolver(); ContentValues values = new ContentValues(); - values.put("title", task.getValue(Task.TITLE)); String calendarId = calendars.calendarIds[calendarSelector.getSelectedItemPosition()]; - Calendars.setDefaultCalendar(calendarId); values.put("calendar_id", calendarId); - values.put("description", task.getValue(Task.NOTES)); - values.put("hasAlarm", 0); - values.put("transparency", 0); - values.put("visibility", 0); - - createStartAndEndDate(task, values); - calendarUri = cr.insert(uri, values); - cr.notifyChange(uri, null); + calendarUri = GCalHelper.createTaskEvent(task, cr, values); task.setValue(Task.CALENDAR_URI, calendarUri.toString()); - // if the default-setting says so, create the gcal-event silently - if (!Preferences.getBoolean(R.string.p_default_addtocalendar_key, false) || - (addToCalendar.isChecked() && addToCalendar.isShown())) { + if (addToCalendar.isChecked() && addToCalendar.isShown()) { // pop up the new event Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri); intent.putExtra("beginTime", values.getAsLong("dtstart")); @@ -197,8 +182,8 @@ public class GCalControlSet implements TaskEditControlSet { updateValues.put("title", task.getValue(Task.TITLE)); if(setValues.containsKey(Task.NOTES.name)) updateValues.put("description", task.getValue(Task.NOTES)); - if(setValues.containsKey(Task.DUE_DATE.name)) - createStartAndEndDate(task, updateValues); + if(setValues.containsKey(Task.DUE_DATE.name) || setValues.containsKey(Task.ESTIMATED_SECONDS.name)) + GCalHelper.createStartAndEndDate(task, updateValues); ContentResolver cr = activity.getContentResolver(); if(cr.update(calendarUri, updateValues, null, null) > 0) @@ -211,28 +196,4 @@ public class GCalControlSet implements TaskEditControlSet { return null; } - - @SuppressWarnings("nls") - private void createStartAndEndDate(Task task, ContentValues values) { - long dueDate = task.getValue(Task.DUE_DATE); - // FIXME: doesnt respect timezones, see story 17443653 - if(task.hasDueDate()) { - if(task.hasDueTime()) { - long estimatedTime = task.getValue(Task.ESTIMATED_SECONDS); - if(estimatedTime <= 0) - estimatedTime = DEFAULT_CAL_TIME; - values.put("dtstart", dueDate - estimatedTime); - values.put("dtend", dueDate); - } else { - // calendar thinks 23:59:59 is next day, move it back - values.put("dtstart", dueDate - DateUtilities.ONE_DAY + 1000L); - values.put("dtend", dueDate - DateUtilities.ONE_DAY + 1000L); - values.put("allDay", "1"); - } - } else { - values.put("dtstart", DateUtilities.now()); - values.put("dtend", DateUtilities.now()); - values.put("allDay", "1"); - } - } } \ No newline at end of file diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalHelper.java b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalHelper.java index 86aad5773..e797223e9 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalHelper.java @@ -1,16 +1,75 @@ package com.todoroo.astrid.gcal; +import java.util.TimeZone; + import android.content.ContentResolver; +import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.text.TextUtils; import android.util.Log; import com.todoroo.andlib.service.ContextManager; +import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.Task; public class GCalHelper { + /** If task has no estimated time, how early to set a task in calendar (seconds)*/ + private static final long DEFAULT_CAL_TIME = DateUtilities.ONE_HOUR; + + public static String getTaskEventUri(Task task) { + String uri; + if (!TextUtils.isEmpty(task.getValue(Task.CALENDAR_URI))) + uri = task.getValue(Task.CALENDAR_URI); + else { + task = PluginServices.getTaskService().fetchById(task.getId(), Task.CALENDAR_URI); + if(task == null) + return null; + uri = task.getValue(Task.CALENDAR_URI); + } + + return uri; + } + + public static Uri createTaskEvent(Task task, ContentResolver cr, ContentValues values) { + String eventuri = getTaskEventUri(task); + + if(!TextUtils.isEmpty(eventuri)) { + deleteTaskEvent(task); + } + + try{ + // FIXME test this with empty quickadd and full quickadd and taskedit-page + Uri uri = Calendars.getCalendarContentUri(Calendars.CALENDAR_CONTENT_EVENTS); + values.put("title", task.getValue(Task.TITLE)); + values.put("description", task.getValue(Task.NOTES)); + values.put("hasAlarm", 0); + values.put("transparency", 0); + values.put("visibility", 0); + boolean valuesContainCalendarId = (values.containsKey("calendar_id") && + !TextUtils.isEmpty(values.getAsString("calendar_id"))); + if (!valuesContainCalendarId) { + String calendarId = Calendars.getDefaultCalendar(); + if (!TextUtils.isEmpty(calendarId)) { + values.put("calendar_id", calendarId); + } + } + + createStartAndEndDate(task, values); + + Uri eventUri = cr.insert(uri, values); + cr.notifyChange(eventUri, null); + + return eventUri; + + } catch (Exception e) { + Log.e("astrid-gcal", "error-creating-calendar-event", e); //$NON-NLS-1$ //$NON-NLS-2$ + } + + return null; + } + public static void deleteTaskEvent(Task task) { String uri; if(task.containsNonNullValue(Task.CALENDAR_URI)) @@ -35,9 +94,38 @@ public class GCalHelper { if (!deleted) { cr.delete(calendarUri, null, null); } + + task.setValue(Task.CALENDAR_URI,""); } catch (Exception e) { Log.e("astrid-gcal", "error-deleting-calendar-event", e); //$NON-NLS-1$ //$NON-NLS-2$ } } } -} + + @SuppressWarnings("nls") + static void createStartAndEndDate(Task task, ContentValues values) { + long dueDate = task.getValue(Task.DUE_DATE); + long tzCorrectedDueDate = dueDate + TimeZone.getDefault().getOffset(dueDate); + long tzCorrectedDueDateNow = DateUtilities.now() + TimeZone.getDefault().getOffset(DateUtilities.now()); + // FIXME: doesnt respect timezones, see story 17443653 + if(task.hasDueDate()) { + if(task.hasDueTime()) { + long estimatedTime = task.getValue(Task.ESTIMATED_SECONDS) * 1000; + if(estimatedTime <= 0) + estimatedTime = DEFAULT_CAL_TIME; + values.put("dtstart", dueDate - estimatedTime); + values.put("dtend", dueDate); + // setting a duetime to a previously timeless event requires explicitly setting allDay=0 + values.put("allDay", "0"); + } else { + values.put("dtstart", tzCorrectedDueDate); + values.put("dtend", tzCorrectedDueDate); + values.put("allDay", "1"); + } + } else { + values.put("dtstart", tzCorrectedDueDateNow); + values.put("dtend", tzCorrectedDueDateNow); + values.put("allDay", "1"); + } + } +} \ No newline at end of file diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index 1dca7b97c..e0aeb0a9b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -9,8 +9,11 @@ import java.util.List; import java.util.TimeZone; import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.ContentValues; import android.content.Context; import android.content.Intent; +import android.net.Uri; import com.google.ical.iter.RecurrenceIterator; import com.google.ical.iter.RecurrenceIteratorFactory; @@ -20,14 +23,17 @@ import com.google.ical.values.DateValueImpl; import com.google.ical.values.Frequency; import com.google.ical.values.RRule; import com.google.ical.values.WeekdayNum; +import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.DateUtilities; +import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.gcal.GCalHelper; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.utility.Flags; @@ -46,8 +52,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { if(taskId == -1) return; - Task task = PluginServices.getTaskService().fetchById(taskId, Task.ID, Task.RECURRENCE, - Task.DUE_DATE, Task.FLAGS, Task.HIDE_UNTIL, Task.REMOTE_ID, Task.COMPLETION_DATE); + Task task = PluginServices.getTaskService().fetchById(taskId, Task.PROPERTIES); if(task == null || !task.isCompleted()) return; @@ -91,11 +96,21 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { clone.setValue(Task.ELAPSED_SECONDS, 0); clone.setValue(Task.REMINDER_SNOOZE, 0L); clone.setValue(Task.REMINDER_LAST, 0L); + + boolean gcalCreateEventEnabled = Preferences.getStringValue(R.string.gcal_p_default) != null && + !Preferences.getStringValue(R.string.gcal_p_default).equals("-1"); + if (gcalCreateEventEnabled) { + ContentResolver cr = ContextManager.getContext().getContentResolver(); + Uri calendarUri = GCalHelper.createTaskEvent(clone, cr, new ContentValues()); + clone.setValue(Task.CALENDAR_URI, calendarUri.toString()); + } PluginServices.getTaskService().save(clone); // clear recurrence from completed task so it can be re-completed task.setValue(Task.RECURRENCE, ""); //$NON-NLS-1$ task.setValue(Task.DETAILS_DATE, 0L); + + GCalHelper.deleteTaskEvent(task); PluginServices.getTaskService().save(task); // send a broadcast diff --git a/astrid/res/values-de/strings.xml b/astrid/res/values-de/strings.xml index eed5827a4..aadb862dc 100644 --- a/astrid/res/values-de/strings.xml +++ b/astrid/res/values-de/strings.xml @@ -651,6 +651,8 @@ Astrid: Einstellungen + deaktiviert + Erscheinungsbild diff --git a/astrid/res/values/keys.xml b/astrid/res/values/keys.xml index 15b98c221..7bc2c9398 100644 --- a/astrid/res/values/keys.xml +++ b/astrid/res/values/keys.xml @@ -257,6 +257,11 @@ rmd_default_reminder_mode + + + -1 + + diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index cc0fd64df..63fa649c5 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -368,6 +368,8 @@ Astrid: Settings + + deactivated Appearance @@ -390,70 +392,6 @@ Currently: %s Setting requires Android 2.0+ - - - New Task Defaults - - - Default Urgency - - Currently: %s - - - Default Importance - - Currently: %s - - - Default Hide Until - - Currently: %s - - - Default Reminders - - Currently: %s - - - Default Ring/Vibrate type - - Currently: %s - - - Default Add To Calendar - - - - !!!! (Highest) - !!! - !! - ! (Lowest) - - - - - No Deadline - Today - Tomorrow - Day After Tomorrow - Next Week - - - - - Don\'t hide - Task is due - Day before due - Week before due - - - - - No deadline reminders - At deadline - When overdue - At deadline or overdue - diff --git a/astrid/res/values/strings-defaults.xml b/astrid/res/values/strings-defaults.xml new file mode 100644 index 000000000..b919d1508 --- /dev/null +++ b/astrid/res/values/strings-defaults.xml @@ -0,0 +1,76 @@ + + + + + New Task Defaults + + + Default Urgency + + Currently: %s + + + Default Importance + + Currently: %s + + + Default Hide Until + + Currently: %s + + + Default Reminders + + Currently: %s + + + Default Add To Calendar + + New tasks will not create an event in the Google Calendar + + New tasks will be in the calendar: \"%s\" + + + Default Ring/Vibrate type + + Currently: %s + + + + !!!! (Highest) + !!! + !! + ! (Lowest) + + + + + No Deadline + Today + Tomorrow + Day After Tomorrow + Next Week + + + + + Don\'t hide + Task is due + Day before due + Week before due + + + + + No deadline reminders + At deadline + When overdue + At deadline or overdue + + + + + @string/EPr_deactivated + + diff --git a/astrid/res/xml/preferences_defaults.xml b/astrid/res/xml/preferences_defaults.xml index f3b34263d..8779dcc09 100644 --- a/astrid/res/xml/preferences_defaults.xml +++ b/astrid/res/xml/preferences_defaults.xml @@ -32,8 +32,9 @@ android:title="@string/EPr_default_reminders_mode_title" android:entries="@array/EPr_default_reminders_mode" android:entryValues="@array/EPr_default_reminders_mode_values" /> - + android:key="@string/gcal_p_default" + android:entries="@array/EPr_default_addtocalendar" + android:entryValues="@array/EPr_default_addtocalendar_values" /> diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index d4e5f1ea5..ab0e13d0e 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -332,7 +332,6 @@ public final class TaskEditActivity extends TabActivity { (LinearLayout) findViewById(R.id.addons_urgency))); LinearLayout alarmsAddons = (LinearLayout) findViewById(R.id.addons_alarms); LinearLayout moreAddons = (LinearLayout) findViewById(R.id.addons_more); - controls.add(new GCalControlSet(TaskEditActivity.this, moreAddons)); try { @@ -357,6 +356,7 @@ public final class TaskEditActivity extends TabActivity { controls.add(new TimerControlSet(TaskEditActivity.this, moreAddons)); controls.add(new AlarmControlSet(TaskEditActivity.this, alarmsAddons)); + controls.add(new GCalControlSet(TaskEditActivity.this, moreAddons)); if(!Constants.MARKET_DISABLED && !addOnService.hasPowerPack()) { // show add-on help if necessary @@ -486,6 +486,9 @@ public final class TaskEditActivity extends TabActivity { /** Save task model from values in UI components */ private void save(boolean onPause) { + if(title.getText().length() > 0) + model.setValue(Task.DELETION_DATE, 0L); + StringBuilder toast = new StringBuilder(); synchronized(controls) { for(TaskEditControlSet controlSet : controls) { @@ -495,9 +498,6 @@ public final class TaskEditActivity extends TabActivity { } } - if(title.getText().length() > 0) - model.setValue(Task.DELETION_DATE, 0L); - taskService.save(model); if(title.getText().length() == 0) return; diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index ebd9ef854..e86ba7ac8 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -87,6 +87,7 @@ import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.gcal.GCalHelper; import com.todoroo.astrid.helper.MetadataHelper; import com.todoroo.astrid.helper.TaskListContextMenuExtensionLoader; import com.todoroo.astrid.helper.TaskListContextMenuExtensionLoader.ContextMenuItem; @@ -848,6 +849,14 @@ public class TaskListActivity extends ListActivity implements OnScrollListener, Task task = createWithValues(filter.valuesForNewTasks, title, taskService, metadataService); + boolean gcalCreateEventEnabled = Preferences.getStringValue(R.string.gcal_p_default) != null && + !Preferences.getStringValue(R.string.gcal_p_default).equals("-1"); + if (title.length()>0 && gcalCreateEventEnabled) { + Uri calendarUri = GCalHelper.createTaskEvent(task, getContentResolver(), new ContentValues()); + task.setValue(Task.CALENDAR_URI, calendarUri.toString()); + taskService.save(task); + } + TextView quickAdd = (TextView)findViewById(R.id.quickAddText); quickAdd.setText(""); //$NON-NLS-1$