From 9cc044abc7ac2872950d146628fb865cac89e381 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 23 May 2014 14:02:11 -0500 Subject: [PATCH] Add InjectingActivity --- .../astrid/calls/MissedCallActivity.java | 11 +++++----- .../astrid/core/CustomFilterExposer.java | 12 +++++------ .../astrid/gcal/CalendarAlarmListCreator.java | 11 +++++----- .../astrid/gcal/CalendarReminderActivity.java | 12 +++++------ .../astrid/gtasks/GtasksListAdder.java | 13 ++++++------ .../todoroo/astrid/tags/TagFilterExposer.java | 21 +++++++------------ .../org/tasks/injection/ActivityModule.java | 18 +++++++++++++++- .../tasks/injection/InjectingActivity.java | 13 ++++++++++++ .../org/tasks/voice/VoiceCommandActivity.java | 12 ++++------- 9 files changed, 68 insertions(+), 55 deletions(-) create mode 100644 astrid/src/main/java/org/tasks/injection/InjectingActivity.java diff --git a/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java b/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java index 9bbf38eeb..dd0ce2a6f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.calls; -import android.app.Activity; import android.app.AlertDialog; import android.content.ContentUris; import android.content.DialogInterface; @@ -22,8 +21,6 @@ import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; @@ -36,10 +33,13 @@ import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.ThemeService; import org.tasks.R; +import org.tasks.injection.InjectingActivity; import java.io.InputStream; -public class MissedCallActivity extends Activity { +import javax.inject.Inject; + +public class MissedCallActivity extends InjectingActivity { public static final String EXTRA_NUMBER = "number"; //$NON-NLS-1$ public static final String EXTRA_NAME = "name"; //$NON-NLS-1$ @@ -51,7 +51,7 @@ public class MissedCallActivity extends Activity { // Prompt user to ignore all missed calls after this many ignore presses private static final int IGNORE_PROMPT_COUNT = 3; - @Autowired private TaskService taskService; + @Inject TaskService taskService; private final OnClickListener dismissListener = new OnClickListener() { @Override @@ -107,7 +107,6 @@ public class MissedCallActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { new StartupService().onStartupApplication(this); super.onCreate(savedInstanceState); - DependencyInjectionService.getInstance().inject(this); setContentView(R.layout.missed_call_activity); 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 6f14b7189..6daf5ef19 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.core; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; @@ -35,9 +34,12 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.ThemeService; import org.tasks.R; +import org.tasks.injection.InjectingActivity; import java.util.ArrayList; +import javax.inject.Inject; + /** * Exposes Astrid's built in filters to the {@link FilterListFragment} * @@ -124,16 +126,14 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr * @author Tim Su * */ - public static class DeleteActivity extends Activity { + public static class DeleteActivity extends InjectingActivity { - @Autowired StoreObjectDao storeObjectDao; + @Inject StoreObjectDao storeObjectDao; @Override protected void onCreate(Bundle savedInstanceState) { - DependencyInjectionService.getInstance().inject(this); - - super.onCreate(savedInstanceState); setTheme(android.R.style.Theme_Dialog); + super.onCreate(savedInstanceState); final long id = getIntent().getLongExtra(TOKEN_FILTER_ID, -1); if(id == -1) { diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java index 1d644ce78..61f791dfe 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java @@ -1,6 +1,5 @@ package com.todoroo.astrid.gcal; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; @@ -9,8 +8,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.activity.EditPreferences; import com.todoroo.astrid.activity.TaskListActivity; @@ -22,14 +19,17 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.tasks.R; +import org.tasks.injection.InjectingActivity; import java.util.ArrayList; -public class CalendarAlarmListCreator extends Activity { +import javax.inject.Inject; + +public class CalendarAlarmListCreator extends InjectingActivity { public static final String TOKEN_LIST_NAME = "listName"; //$NON-NLS-1$ - @Autowired private TagDataService tagDataService; + @Inject TagDataService tagDataService; private ArrayList names; private ArrayList emails; @@ -59,7 +59,6 @@ public class CalendarAlarmListCreator extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - DependencyInjectionService.getInstance().inject(this); setContentView(R.layout.calendar_alarm_list_creator); Intent intent = getIntent(); diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java index 68252d507..32fe05c58 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java @@ -1,6 +1,5 @@ package com.todoroo.astrid.gcal; -import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; @@ -12,8 +11,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; @@ -29,10 +26,13 @@ import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.tags.TagFilterExposer; import org.tasks.R; +import org.tasks.injection.InjectingActivity; + +import javax.inject.Inject; import static org.tasks.date.DateTimeUtils.newDate; -public class CalendarReminderActivity extends Activity { +public class CalendarReminderActivity extends InjectingActivity { public static final String TOKEN_NAMES = "names"; public static final String TOKEN_EMAILS = "emails"; @@ -48,7 +48,7 @@ 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 TagDataService tagDataService; + @Inject TagDataService tagDataService; private String eventName; private long startTime; @@ -108,11 +108,9 @@ public class CalendarReminderActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { new StartupService().onStartupApplication(this); super.onCreate(savedInstanceState); - DependencyInjectionService.getInstance().inject(this); setContentView(R.layout.calendar_reminder_activity); - Intent intent = getIntent(); fromPostpone = intent.getBooleanExtra(TOKEN_FROM_POSTPONE, false); eventId = intent.getLongExtra(TOKEN_EVENT_ID, -1); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java index 5124fdb49..4e0170f1b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java @@ -13,8 +13,6 @@ import android.text.TextUtils; import android.widget.EditText; import android.widget.FrameLayout; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.data.StoreObject; @@ -22,13 +20,16 @@ import com.todoroo.astrid.gtasks.api.GtasksInvoker; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; import org.tasks.R; +import org.tasks.injection.InjectingActivity; import java.io.IOException; -public class GtasksListAdder extends Activity { +import javax.inject.Inject; - @Autowired GtasksPreferenceService gtasksPreferenceService; - @Autowired GtasksListService gtasksListService; +public class GtasksListAdder extends InjectingActivity { + + @Inject GtasksPreferenceService gtasksPreferenceService; + @Inject GtasksListService gtasksListService; @Override protected void onCreate(Bundle savedInstanceState) { @@ -37,8 +38,6 @@ public class GtasksListAdder extends Activity { } private void showNewListDialog(final Activity activity) { - DependencyInjectionService.getInstance().inject(this); - FrameLayout frame = new FrameLayout(activity); final EditText editText = new EditText(activity); frame.addView(editText); 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 204733920..c87e86caf 100644 --- a/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java @@ -34,21 +34,21 @@ import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithUpdate; -import com.todoroo.astrid.dao.TagDataDao; -import com.todoroo.astrid.dao.TagMetadataDao; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.TagData; -import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.tags.TagService.Tag; import org.tasks.R; +import org.tasks.injection.InjectingActivity; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + /** * Exposes filters based on tags * @@ -188,18 +188,12 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE // --- tag manipulation activities - public abstract static class TagActivity extends Activity { - - protected String tag; - protected String uuid; + public abstract static class TagActivity extends InjectingActivity { - @Autowired public TagService tagService; - @Autowired public TagDataDao tagDataDao; - @Autowired public TagMetadataDao tagMetadataDao; + String tag; + String uuid; - static { - AstridDependencyInjector.initialize(); - } + @Inject TagService tagService; @Override protected void onCreate(Bundle savedInstanceState) { @@ -212,7 +206,6 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE finish(); return; } - DependencyInjectionService.getInstance().inject(this); showDialog(); } diff --git a/astrid/src/main/java/org/tasks/injection/ActivityModule.java b/astrid/src/main/java/org/tasks/injection/ActivityModule.java index 84cc06c93..c7ec352ae 100644 --- a/astrid/src/main/java/org/tasks/injection/ActivityModule.java +++ b/astrid/src/main/java/org/tasks/injection/ActivityModule.java @@ -4,7 +4,15 @@ import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.activity.ShareLinkActivity; import com.todoroo.astrid.activity.TaskEditActivity; import com.todoroo.astrid.activity.TaskListActivity; +import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.core.CustomFilterActivity; +import com.todoroo.astrid.core.CustomFilterExposer; +import com.todoroo.astrid.gcal.CalendarAlarmListCreator; +import com.todoroo.astrid.gcal.CalendarReminderActivity; +import com.todoroo.astrid.gtasks.GtasksListAdder; +import com.todoroo.astrid.tags.TagFilterExposer; + +import org.tasks.voice.VoiceCommandActivity; import dagger.Module; @@ -14,7 +22,15 @@ import dagger.Module; TaskEditActivity.class, ShareLinkActivity.class, TagSettingsActivity.class, - CustomFilterActivity.class + CustomFilterActivity.class, + MissedCallActivity.class, + CalendarAlarmListCreator.class, + CustomFilterExposer.DeleteActivity.class, + CalendarReminderActivity.class, + GtasksListAdder.class, + TagFilterExposer.DeleteTagActivity.class, + TagFilterExposer.RenameTagActivity.class, + VoiceCommandActivity.class }) public class ActivityModule { } diff --git a/astrid/src/main/java/org/tasks/injection/InjectingActivity.java b/astrid/src/main/java/org/tasks/injection/InjectingActivity.java new file mode 100644 index 000000000..7ea16fbb1 --- /dev/null +++ b/astrid/src/main/java/org/tasks/injection/InjectingActivity.java @@ -0,0 +1,13 @@ +package org.tasks.injection; + +import android.app.Activity; +import android.os.Bundle; + +public class InjectingActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + ((Injector) getApplication()).inject(this, new ActivityModule()); + + super.onCreate(savedInstanceState); + } +} diff --git a/astrid/src/main/java/org/tasks/voice/VoiceCommandActivity.java b/astrid/src/main/java/org/tasks/voice/VoiceCommandActivity.java index 1905a48ca..a7623f631 100644 --- a/astrid/src/main/java/org/tasks/voice/VoiceCommandActivity.java +++ b/astrid/src/main/java/org/tasks/voice/VoiceCommandActivity.java @@ -1,25 +1,21 @@ package org.tasks.voice; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskService; import org.tasks.R; +import org.tasks.injection.InjectingActivity; -public class VoiceCommandActivity extends Activity { +import javax.inject.Inject; - @Autowired TaskService taskService; +public class VoiceCommandActivity extends InjectingActivity { - public VoiceCommandActivity() { - DependencyInjectionService.getInstance().inject(this); - } + @Inject TaskService taskService; @Override protected void onCreate(Bundle savedInstanceState) {