From 7b3be5575232868da39662244df518ef707f0802 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 6 Jun 2014 09:08:40 -0500 Subject: [PATCH] Inject more contexts --- .../astrid/service/TitleParserTest.java | 26 +++++++++++++++++++ .../AstridDefaultPreferenceSpecTest.java | 11 +------- .../astrid/core/CoreFilterExposer.java | 15 +++++------ .../astrid/core/CustomFilterExposer.java | 13 ++++------ .../com/todoroo/astrid/gcal/GCalHelper.java | 11 +++++--- .../astrid/gtasks/GtasksFilterExposer.java | 12 ++++----- .../astrid/tags/RenameTagActivity.java | 6 +++-- .../todoroo/astrid/tags/TagFilterExposer.java | 14 ++++------ .../astrid/timers/TimerFilterExposer.java | 12 ++++----- .../org/tasks/preferences/Preferences.java | 7 +++-- 10 files changed, 67 insertions(+), 60 deletions(-) diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java index f345955b7..3e5de242f 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java @@ -12,7 +12,11 @@ import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.test.DatabaseTestCase; import com.todoroo.astrid.utility.TitleParser; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.tasks.Freeze; import org.tasks.R; +import org.tasks.Snippet; import org.tasks.preferences.Preferences; import java.util.ArrayList; @@ -36,6 +40,28 @@ public class TitleParserTest extends DatabaseTestCase { preferences.setStringFromInteger(R.string.p_default_urgency_key, 0); } + public void testTrimParenthesisWithDate() { + Freeze.freezeAt(new DateTime(2014, 6, 5, 14, 10, 14)).thawAfter(new Snippet() {{ + Task task = new Task() {{ + setTitle("Call mom (tomorrow)"); + }}; + TitleParser.parse(tagService, task, new ArrayList()); + assertEquals("Call mom", task.getTitle()); + assertEquals(new DateTime(2014, 6, 6, 12, 0, 0, DateTimeZone.UTC).getMillis(), (long) task.getDueDate()); + }}); + } + + public void disabled_testTrimParenthesisWithDateAndTime() { + Freeze.freezeAt(new DateTime(2014, 6, 5, 14, 10, 14)).thawAfter(new Snippet() {{ + Task task = new Task() {{ + setTitle("Call mom (tomorrow 9am)"); + }}; + TitleParser.parse(tagService, task, new ArrayList()); + assertEquals("Call mom", task.getTitle()); + assertEquals(new DateTime(2014, 6, 6, 14, 0, 0, DateTimeZone.UTC).getMillis(), (long) task.getDueDate()); + }}); + } + /** test that completing a task w/ no regular expressions creates a simple task with no date, no repeat, no lists*/ public void testNoRegexes() throws Exception{ Task task = new Task(); diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpecTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpecTest.java index 20569876c..012642349 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpecTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpecTest.java @@ -3,8 +3,6 @@ package com.todoroo.astrid.utility; import android.annotation.SuppressLint; import android.test.AndroidTestCase; -import com.todoroo.andlib.service.ContextManager; - import org.tasks.R; import org.tasks.preferences.Preferences; @@ -37,7 +35,7 @@ public class AstridDefaultPreferenceSpecTest extends AndroidTestCase { } public void testQuietHoursDisabledAfterMigration() { - setString(R.string.p_rmd_quietStart_old, ""); + preferences.setString(getContext().getString(R.string.p_rmd_quietStart_old), ""); spec.migrateToNewQuietHours(); @@ -125,11 +123,4 @@ public class AstridDefaultPreferenceSpecTest extends AndroidTestCase { private int newReminderTime() { return preferences.getInt(R.string.p_rmd_time); } - - /** - * Sets string preference - */ - private void setString(int resourceId, String value) { - preferences.setString(ContextManager.getContext().getString(resourceId), value); - } } diff --git a/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java index bc710a06a..139f66609 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java @@ -30,6 +30,7 @@ import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.tags.TaskToTagMetadata; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.Injector; import org.tasks.preferences.Preferences; @@ -48,21 +49,22 @@ import javax.inject.Inject; public final class CoreFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { @Inject Preferences preferences; + @Inject @ForApplication Context context; @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); - Resources r = context.getResources(); ContextManager.setContext(context); - FilterListItem[] list = prepareFilters(r); + FilterListItem[] list = prepareFilters(); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); } - private FilterListItem[] prepareFilters(Resources r) { + private FilterListItem[] prepareFilters() { + Resources r = context.getResources(); // core filters List filters = new ArrayList<>(3); @@ -122,14 +124,9 @@ public final class CoreFilterExposer extends InjectingBroadcastReceiver implemen @Override public FilterListItem[] getFilters(Injector injector) { - if (ContextManager.getContext() == null || ContextManager.getContext().getResources() == null) { - return null; - } - injector.inject(this); - Resources r = ContextManager.getContext().getResources(); - return prepareFilters(r); + return prepareFilters(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java index 9dd78e368..5792f55f5 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -13,7 +13,6 @@ import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Order; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; @@ -30,6 +29,7 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.ThemeService; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingActivity; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.Injector; @@ -52,12 +52,13 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem @Inject StoreObjectDao storeObjectDao; @Inject Preferences preferences; + @Inject @ForApplication Context context; @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); - FilterListItem[] list = prepareFilters(context); + FilterListItem[] list = prepareFilters(); // transmit filter list Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); @@ -65,7 +66,7 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); } - private FilterListItem[] prepareFilters(Context context) { + private FilterListItem[] prepareFilters() { Resources r = context.getResources(); return buildSavedFilters(context, r); @@ -163,13 +164,9 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem @Override public FilterListItem[] getFilters(Injector injector) { - if (ContextManager.getContext() == null) { - return null; - } - injector.inject(this); - return prepareFilters(ContextManager.getContext()); + return prepareFilters(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java index b2491d043..fe4eee209 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java @@ -7,6 +7,7 @@ package com.todoroo.astrid.gcal; import android.content.ContentResolver; import android.content.ContentValues; +import android.content.Context; import android.database.Cursor; import android.database.CursorIndexOutOfBoundsException; import android.net.Uri; @@ -14,13 +15,13 @@ import android.text.TextUtils; import android.text.format.Time; import android.util.Log; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskService; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.preferences.Preferences; import java.util.TimeZone; @@ -33,11 +34,13 @@ public class GCalHelper { public static final String CALENDAR_ID_COLUMN = "calendar_id"; //$NON-NLS-1$ + private final Context context; private final TaskService taskService; private final Preferences preferences; @Inject - public GCalHelper(TaskService taskService, Preferences preferences) { + public GCalHelper(@ForApplication Context context, TaskService taskService, Preferences preferences) { + this.context = context; this.taskService = taskService; this.preferences = preferences; } @@ -68,7 +71,7 @@ public class GCalHelper { boolean gcalCreateEventEnabled = preferences.getStringValue(R.string.gcal_p_default) != null && !preferences.getStringValue(R.string.gcal_p_default).equals("-1"); //$NON-NLS-1$ if (gcalCreateEventEnabled) { - ContentResolver cr = ContextManager.getContext().getContentResolver(); + ContentResolver cr = context.getContentResolver(); Uri calendarUri = createTaskEvent(t, cr, new ContentValues(), deleteEventIfExists); if (calendarUri != null) { t.setCalendarUri(calendarUri.toString()); @@ -170,7 +173,7 @@ public class GCalHelper { Uri calendarUri = Uri.parse(uri); // try to load calendar - ContentResolver cr = ContextManager.getContext().getContentResolver(); + ContentResolver cr = context.getContentResolver(); Cursor cursor = cr.query(calendarUri, new String[] { "dtstart" }, null, null, null); //$NON-NLS-1$ try { boolean alreadydeleted = cursor.getCount() == 0; diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index 6e3fcbbcf..16efc473e 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -34,6 +34,7 @@ import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.Task; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.Injector; @@ -49,6 +50,7 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A @Inject GtasksListService gtasksListService; @Inject GtasksPreferenceService gtasksPreferenceService; + @Inject @ForApplication Context context; private StoreObject[] lists; @@ -81,14 +83,14 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A super.onReceive(context, intent); ContextManager.setContext(context); - FilterListItem[] list = prepareFilters(context); + FilterListItem[] list = prepareFilters(); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, GtasksPreferenceService.IDENTIFIER); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); } - private FilterListItem[] prepareFilters(Context context) { + private FilterListItem[] prepareFilters() { // if we aren't logged in (or we are logged in to astrid.com), don't expose features if(!gtasksPreferenceService.isLoggedIn()) { return null; @@ -123,13 +125,9 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A @Override public FilterListItem[] getFilters(Injector injector) { - if (ContextManager.getContext() == null) { - return null; - } - injector.inject(this); - return prepareFilters(ContextManager.getContext()); + return prepareFilters(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/tags/RenameTagActivity.java b/astrid/src/main/java/com/todoroo/astrid/tags/RenameTagActivity.java index e912fcf02..39f0ba325 100644 --- a/astrid/src/main/java/com/todoroo/astrid/tags/RenameTagActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/tags/RenameTagActivity.java @@ -1,15 +1,16 @@ package com.todoroo.astrid.tags; +import android.content.Context; import android.content.Intent; import android.widget.EditText; import android.widget.Toast; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.api.AstridApiConstants; import org.tasks.R; +import org.tasks.injection.ForApplication; import javax.inject.Inject; @@ -18,6 +19,7 @@ public class RenameTagActivity extends TagActivity { private EditText editor; @Inject TagService tagService; + @Inject @ForApplication Context context; @Override protected void showDialog() { @@ -42,7 +44,7 @@ public class RenameTagActivity extends TagActivity { if (renamed > 0) { Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED); intent.putExtra(TagViewFragment.EXTRA_TAG_UUID, uuid); - ContextManager.getContext().sendBroadcast(intent); + context.sendBroadcast(intent); return intent; } return null; diff --git a/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java index 405b7ee0f..d17af756c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java @@ -18,7 +18,6 @@ import android.text.TextUtils; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.api.AstridApiConstants; @@ -36,6 +35,7 @@ import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.tags.TagService.Tag; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.Injector; @@ -55,6 +55,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr public static final String TAG = "tag"; //$NON-NLS-1$ @Inject TagService tagService; + @Inject @ForApplication Context context; /** Create filter from new tag object */ public static FilterWithCustomIntent filterFromTag(Context context, Tag tag, Criterion criterion) { @@ -113,7 +114,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); - FilterListItem[] listAsArray = prepareFilters(context); + FilterListItem[] listAsArray = prepareFilters(); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, listAsArray); @@ -121,7 +122,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); } - private FilterListItem[] prepareFilters(Context context) { + private FilterListItem[] prepareFilters() { ContextManager.setContext(context); ArrayList list = new ArrayList<>(); @@ -142,7 +143,6 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr ArrayList filters = new ArrayList<>(tags.length); - Context context = ContextManager.getContext(); Resources r = context.getResources(); int themeFlags = ThemeService.getFilterThemeFlags(); @@ -173,13 +173,9 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr @Override public FilterListItem[] getFilters(Injector injector) { - if (ContextManager.getContext() == null) { - return null; - } - injector.inject(this); - return prepareFilters(ContextManager.getContext()); + return prepareFilters(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java index a35bce478..b3466aa0d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java @@ -23,6 +23,7 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskService; import org.tasks.R; +import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.Injector; @@ -37,20 +38,21 @@ import javax.inject.Inject; public final class TimerFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { @Inject TaskService taskService; + @Inject @ForApplication Context context; @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); ContextManager.setContext(context); - FilterListItem[] list = prepareFilters(context); + FilterListItem[] list = prepareFilters(); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); } - private FilterListItem[] prepareFilters(Context context) { + private FilterListItem[] prepareFilters() { if(taskService.count(Query.select(Task.ID). where(Task.TIMER_START.gt(0))) == 0) { return null; @@ -78,12 +80,8 @@ public final class TimerFilterExposer extends InjectingBroadcastReceiver impleme @Override public FilterListItem[] getFilters(Injector injector) { - if (ContextManager.getContext() == null) { - return null; - } - injector.inject(this); - return prepareFilters(ContextManager.getContext()); + return prepareFilters(); } } diff --git a/astrid/src/main/java/org/tasks/preferences/Preferences.java b/astrid/src/main/java/org/tasks/preferences/Preferences.java index f45092ea4..5b1a1eb75 100644 --- a/astrid/src/main/java/org/tasks/preferences/Preferences.java +++ b/astrid/src/main/java/org/tasks/preferences/Preferences.java @@ -5,7 +5,6 @@ import android.content.SharedPreferences; import android.content.res.Resources; import android.preference.PreferenceManager; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec; import org.tasks.injection.ForApplication; @@ -87,7 +86,7 @@ public class Preferences { } public void setString(int resourceId, String value) { - setString(ContextManager.getContext().getString(resourceId), value); + setString(context.getString(resourceId), value); } public void setString(String key, String newValue) { @@ -133,7 +132,7 @@ public class Preferences { } public int getInt(int resourceId, int defValue) { - return getInt(ContextManager.getContext().getString(resourceId), defValue); + return getInt(context.getString(resourceId), defValue); } public int getInt(String key, int defValue) { @@ -141,7 +140,7 @@ public class Preferences { } public void setInt(int resourceId, int value) { - setInt(ContextManager.getContext().getString(resourceId), value); + setInt(context.getString(resourceId), value); } public void setInt(String key, int value) {