From 2f64e678dfc288f5f6453f61c77bff21b19befb4 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 27 May 2014 09:11:46 -0500 Subject: [PATCH] Inject preference screens --- .../astrid/activity/EditPreferences.java | 14 +++++--------- .../astrid/core/OldTaskPreferences.java | 15 +++++++-------- .../astrid/gtasks/GtasksPreferences.java | 19 +++++++------------ .../org/tasks/injection/ActivityModule.java | 8 +++++++- .../InjectingSyncProviderPreferences.java | 14 ++++++++++++++ .../InjectingTodorooPreferenceActivity.java | 14 ++++++++++++++ 6 files changed, 54 insertions(+), 30 deletions(-) create mode 100644 astrid/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java create mode 100644 astrid/src/main/java/org/tasks/injection/InjectingTodorooPreferenceActivity.java diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java b/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java index 064aa6521..1baa843a7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java @@ -21,14 +21,11 @@ import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.text.TextUtils; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; -import com.todoroo.andlib.utility.TodorooPreferenceActivity; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.data.TaskAttachment; import com.todoroo.astrid.files.FileExplore; @@ -46,6 +43,7 @@ import com.todoroo.astrid.voice.VoiceOutputService; import com.todoroo.astrid.voice.VoiceRecognizer; import org.tasks.R; +import org.tasks.injection.InjectingTodorooPreferenceActivity; import org.tasks.widget.WidgetHelper; import java.util.ArrayList; @@ -54,13 +52,15 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map.Entry; +import javax.inject.Inject; + /** * Displays the preference screen for users to edit their preferences * * @author Tim Su * */ -public class EditPreferences extends TodorooPreferenceActivity { +public class EditPreferences extends InjectingTodorooPreferenceActivity { private static final int APPEARANCE_PREFERENCE = 0; @@ -72,14 +72,10 @@ public class EditPreferences extends TodorooPreferenceActivity { // --- instance variables - @Autowired private TaskService taskService; + @Inject TaskService taskService; private VoiceInputAssistant voiceInputAssistant; - public EditPreferences() { - DependencyInjectionService.getInstance().inject(this); - } - private class SetResultOnPreferenceChangeListener implements OnPreferenceChangeListener { private final int resultCode; public SetResultOnPreferenceChangeListener(int resultCode) { diff --git a/astrid/src/main/java/com/todoroo/astrid/core/OldTaskPreferences.java b/astrid/src/main/java/com/todoroo/astrid/core/OldTaskPreferences.java index 2458a7a5f..d1b2aece2 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/OldTaskPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/OldTaskPreferences.java @@ -15,14 +15,11 @@ import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceScreen; import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; -import com.todoroo.andlib.utility.TodorooPreferenceActivity; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.GCalHelper; @@ -31,6 +28,9 @@ import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.utility.AstridPreferences; import org.tasks.R; +import org.tasks.injection.InjectingTodorooPreferenceActivity; + +import javax.inject.Inject; /** * Displays the preference screen for users to manage their old tasks and events @@ -38,11 +38,11 @@ import org.tasks.R; * @author Tim Su * */ -public class OldTaskPreferences extends TodorooPreferenceActivity { +public class OldTaskPreferences extends InjectingTodorooPreferenceActivity { - @Autowired TaskService taskService; - @Autowired MetadataService metadataService; - @Autowired Database database; + @Inject TaskService taskService; + @Inject MetadataService metadataService; + @Inject Database database; ProgressDialog pd; @@ -55,7 +55,6 @@ public class OldTaskPreferences extends TodorooPreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PreferenceScreen screen = getPreferenceScreen(); - DependencyInjectionService.getInstance().inject(this); // Extended prefs Preference preference = screen.findPreference(getString(R.string.EPr_manage_delete_completed)); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java index a9dd18521..a3531a43a 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java @@ -7,14 +7,14 @@ package com.todoroo.astrid.gtasks; import android.content.Intent; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; import com.todoroo.astrid.gtasks.sync.GtasksSyncV2Provider; -import com.todoroo.astrid.sync.SyncProviderPreferences; import com.todoroo.astrid.sync.SyncProviderUtilities; import org.tasks.R; +import org.tasks.injection.InjectingSyncProviderPreferences; + +import javax.inject.Inject; /** * Displays synchronization preferences and an action panel so users can @@ -23,16 +23,11 @@ import org.tasks.R; * @author Tim Su * */ -public class GtasksPreferences extends SyncProviderPreferences { - - @Autowired private GtasksPreferenceService gtasksPreferenceService; - @Autowired private GtasksSyncV2Provider gtasksSyncV2Provider; - @Autowired private GtasksScheduler gtasksScheduler; +public class GtasksPreferences extends InjectingSyncProviderPreferences { - public GtasksPreferences() { - super(); - DependencyInjectionService.getInstance().inject(this); - } + @Inject GtasksPreferenceService gtasksPreferenceService; + @Inject GtasksSyncV2Provider gtasksSyncV2Provider; + @Inject GtasksScheduler gtasksScheduler; @Override public int getPreferenceResource() { diff --git a/astrid/src/main/java/org/tasks/injection/ActivityModule.java b/astrid/src/main/java/org/tasks/injection/ActivityModule.java index c6a1be38d..6926747ba 100644 --- a/astrid/src/main/java/org/tasks/injection/ActivityModule.java +++ b/astrid/src/main/java/org/tasks/injection/ActivityModule.java @@ -1,15 +1,18 @@ package org.tasks.injection; import com.todoroo.astrid.actfm.TagSettingsActivity; +import com.todoroo.astrid.activity.EditPreferences; 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.core.OldTaskPreferences; import com.todoroo.astrid.gcal.CalendarAlarmListCreator; import com.todoroo.astrid.gcal.CalendarReminderActivity; import com.todoroo.astrid.gtasks.GtasksListAdder; +import com.todoroo.astrid.gtasks.GtasksPreferences; import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.widget.WidgetConfigActivity; @@ -34,7 +37,10 @@ import dagger.Module; TagFilterExposer.RenameTagActivity.class, VoiceCommandActivity.class, GtasksLoginActivity.class, - WidgetConfigActivity.class + WidgetConfigActivity.class, + EditPreferences.class, + GtasksPreferences.class, + OldTaskPreferences.class }) public class ActivityModule { } diff --git a/astrid/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java b/astrid/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java new file mode 100644 index 000000000..9cf6be66f --- /dev/null +++ b/astrid/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java @@ -0,0 +1,14 @@ +package org.tasks.injection; + +import android.os.Bundle; + +import com.todoroo.astrid.sync.SyncProviderPreferences; + +public abstract class InjectingSyncProviderPreferences extends SyncProviderPreferences { + @Override + public void onCreate(Bundle savedInstanceState) { + ((Injector) getApplication()).inject(this, new ActivityModule()); + + super.onCreate(savedInstanceState); + } +} diff --git a/astrid/src/main/java/org/tasks/injection/InjectingTodorooPreferenceActivity.java b/astrid/src/main/java/org/tasks/injection/InjectingTodorooPreferenceActivity.java new file mode 100644 index 000000000..f96669e78 --- /dev/null +++ b/astrid/src/main/java/org/tasks/injection/InjectingTodorooPreferenceActivity.java @@ -0,0 +1,14 @@ +package org.tasks.injection; + +import android.os.Bundle; + +import com.todoroo.andlib.utility.TodorooPreferenceActivity; + +public abstract class InjectingTodorooPreferenceActivity extends TodorooPreferenceActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + ((Injector) getApplication()).inject(this, new ActivityModule()); + + super.onCreate(savedInstanceState); + } +}