From e99e52b64f809159446c5e318e7f7c1382ac419a Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 23 Jul 2010 19:22:06 -0700 Subject: [PATCH] Locale plugin. --- astrid/.classpath | 2 +- .../com/todoroo/astrid/api/Filter.java | 3 +- astrid/astrid.launch | 5 +- .../com/todoroo/andlib/sql/Functions.java | 7 + astrid/lib/locale_platform.jar | Bin 3550 -> 9415 bytes .../todoroo/astrid/backup/BackupService.java | 14 +- .../astrid/core/CoreFilterExposer.java | 8 +- .../astrid/locale/LocaleEditAlerts.java | 394 ++++++++++++------ .../todoroo/astrid/locale/LocaleReceiver.java | 102 +++-- .../astrid/rmilk/MilkFilterExposer.java | 3 +- .../astrid/rmilk/data/MilkDataService.java | 3 +- .../com/todoroo/astrid/tags/TagService.java | 3 +- astrid/res/drawable/filter_selected_icon.png | Bin 0 -> 328 bytes astrid/res/layout/filter_adapter_row.xml | 52 +++ astrid/res/layout/locale_edit_alerts.xml | 52 ++- .../res/layout/locale_ellipsizing_title.xml | 19 - astrid/res/layout/task_adapter_row.xml | 6 - astrid/res/menu/locale_edit_alerts.xml | 17 - astrid/res/values/strings-filters.xml | 2 +- astrid/res/values/strings-locale.xml | 38 +- astrid/res/values/styles-3.0.xml | 17 +- .../astrid/activity/FilterListActivity.java | 81 +--- .../todoroo/astrid/adapter/FilterAdapter.java | 299 ++++++++----- .../src/com/todoroo/astrid/dao/TaskDao.java | 19 +- .../service/Astrid2To3UpgradeHelper.java | 24 +- .../astrid/service/StartupService.java | 6 +- .../todoroo/astrid/utility/Preferences.java | 50 ++- .../com/todoroo/astrid/dao/TaskDaoTests.java | 8 +- 28 files changed, 762 insertions(+), 472 deletions(-) create mode 100644 astrid/res/drawable/filter_selected_icon.png create mode 100644 astrid/res/layout/filter_adapter_row.xml delete mode 100644 astrid/res/layout/locale_ellipsizing_title.xml delete mode 100644 astrid/res/menu/locale_edit_alerts.xml diff --git a/astrid/.classpath b/astrid/.classpath index 17e78b6c2..bc28b5eed 100644 --- a/astrid/.classpath +++ b/astrid/.classpath @@ -4,7 +4,7 @@ - + diff --git a/astrid/api-src/com/todoroo/astrid/api/Filter.java b/astrid/api-src/com/todoroo/astrid/api/Filter.java index 9c8c258c8..83083c6b5 100644 --- a/astrid/api-src/com/todoroo/astrid/api/Filter.java +++ b/astrid/api-src/com/todoroo/astrid/api/Filter.java @@ -79,7 +79,8 @@ public final class Filter extends FilterListItem { QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { this.listingTitle = listingTitle; this.title = title; - this.sqlQuery = sqlQuery.toString(); + if(sqlQuery != null) + this.sqlQuery = sqlQuery.toString(); this.valuesForNewTasks = valuesForNewTasks; } diff --git a/astrid/astrid.launch b/astrid/astrid.launch index 0a7cd7209..72aa24a68 100644 --- a/astrid/astrid.launch +++ b/astrid/astrid.launch @@ -4,8 +4,9 @@ - + + @@ -14,9 +15,11 @@ + + diff --git a/astrid/common-src/com/todoroo/andlib/sql/Functions.java b/astrid/common-src/com/todoroo/andlib/sql/Functions.java index ca56da772..4099d3c72 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Functions.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Functions.java @@ -18,4 +18,11 @@ public final class Functions { return new Field("UPPER(" + title.toString() + ")"); } + /** + * @return SQL now (in milliseconds) + */ + public static Field now() { + return new Field("(strftime('%s','now')*1000)"); + } + } diff --git a/astrid/lib/locale_platform.jar b/astrid/lib/locale_platform.jar index a26346f2855a3c2c33c6ee98e776ed83dca8310e..cd7183aa04cd194d58b37a79d935ec813dca48af 100644 GIT binary patch literal 9415 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 bRgq!-r8-=XmV7