reflected new API change in dependency injector

pull/14/head
Tim Su 14 years ago
parent c6da0907ff
commit 9a9eb73945

@ -3,8 +3,6 @@ package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.service.AddOnService; import com.todoroo.astrid.service.AddOnService;
@ -32,12 +30,6 @@ public final class PluginServices {
@Autowired @Autowired
MetadataService metadataService; MetadataService metadataService;
@Autowired
DialogUtilities DialogUtilities;
@Autowired
DateUtilities dateUtilities;
@Autowired @Autowired
AddOnService addOnService; AddOnService addOnService;
@ -78,14 +70,6 @@ public final class PluginServices {
return getInstance().addOnService; return getInstance().addOnService;
} }
public static DialogUtilities getDialogUtilities() {
return getInstance().DialogUtilities;
}
public static DateUtilities getDateUtilities() {
return getInstance().dateUtilities;
}
public static StoreObjectDao getStoreObjectDao() { public static StoreObjectDao getStoreObjectDao() {
return getInstance().storeObjectDao; return getInstance().storeObjectDao;
} }

@ -5,8 +5,8 @@ package com.todoroo.astrid.activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.ExpandableListActivity; import android.app.ExpandableListActivity;
import android.app.SearchManager;
import android.app.PendingIntent.CanceledException; import android.app.PendingIntent.CanceledException;
import android.app.SearchManager;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@ -18,20 +18,20 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ExpandableListView; import android.widget.ExpandableListView;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.TextView.OnEditorActionListener; import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -40,7 +40,6 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.sql.Functions; import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterCategory;
@ -75,9 +74,6 @@ public class FilterListActivity extends ExpandableListActivity {
@Autowired @Autowired
protected ExceptionService exceptionService; protected ExceptionService exceptionService;
@Autowired
protected DialogUtilities DialogUtilities;
FilterAdapter adapter = null; FilterAdapter adapter = null;
/* ====================================================================== /* ======================================================================

@ -58,7 +58,6 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Pair; import com.todoroo.andlib.utility.Pair;
import com.todoroo.andlib.widget.GestureService; import com.todoroo.andlib.widget.GestureService;
import com.todoroo.andlib.widget.GestureService.GestureInterface; import com.todoroo.andlib.widget.GestureService.GestureInterface;
@ -141,9 +140,6 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
@Autowired @Autowired
protected MetadataService metadataService; protected MetadataService metadataService;
@Autowired
protected DialogUtilities DialogUtilities;
@Autowired @Autowired
protected Database database; protected Database database;

@ -87,9 +87,7 @@ public class AstridDependencyInjector extends AbstractDependencyInjector {
synchronized(AstridDependencyInjector.class) { synchronized(AstridDependencyInjector.class) {
if(instance == null) if(instance == null)
instance = new AstridDependencyInjector(); instance = new AstridDependencyInjector();
DependencyInjectionService.getInstance().setInjectors(new AbstractDependencyInjector[] { DependencyInjectionService.getInstance().addInjector(instance);
instance
});
} }
} }

@ -4,15 +4,10 @@ import java.lang.reflect.Field;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import com.todoroo.andlib.service.AbstractDependencyInjector;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
public class DependencyInjectionTests extends AndroidTestCase { public class DependencyInjectionTests extends AndroidTestCase {
public void testNoAutowire() { public void testNoAutowire() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] {});
Object test = new Object(); Object test = new Object();
service.inject(test); service.inject(test);
@ -20,16 +15,17 @@ public class DependencyInjectionTests extends AndroidTestCase {
public void testSimpleStringInjectionAutowire() { public void testSimpleStringInjectionAutowire() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] { service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
if(field.getName().equals("foo")) if(field.getName().equals("foo"))
return "bar"; return "bar";
return null; return null;
} }
} }
}); );
// test various permissions // test various permissions
Object test = new Object() { Object test = new Object() {
@ -95,22 +91,25 @@ public class DependencyInjectionTests extends AndroidTestCase {
public void testHierarchicalStringInjectionAutowire() { public void testHierarchicalStringInjectionAutowire() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] { service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
if(field.getName().equals("foo")) return "malarkey";
return "bar";
return null;
} }
}, }
);
service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
return "malarkey"; if(field.getName().equals("foo"))
return "bar";
return null;
} }
} });
});
Object test = new Object() { Object test = new Object() {
@Autowired @Autowired
@ -139,16 +138,17 @@ public class DependencyInjectionTests extends AndroidTestCase {
public void testMissingInjection() { public void testMissingInjection() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] { service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
if(field.getName().equals("wozzle")) if(field.getName().equals("wozzle"))
return "bar"; return "bar";
return null; return null;
} }
} }
}); );
Object test = new Object() { Object test = new Object() {
@Autowired @Autowired
@ -172,16 +172,17 @@ public class DependencyInjectionTests extends AndroidTestCase {
public void testMultipleInjection() { public void testMultipleInjection() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] { service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
if(field.getName().equals("foo")) if(field.getName().equals("foo"))
return "bar"; return "bar";
return null; return null;
} }
} }
}); );
Object test1 = new Object() { Object test1 = new Object() {
@Autowired @Autowired
@ -219,9 +220,10 @@ public class DependencyInjectionTests extends AndroidTestCase {
public void testInheritedInjection() { public void testInheritedInjection() {
DependencyInjectionService service = new DependencyInjectionService(); DependencyInjectionService service = new DependencyInjectionService();
service.setInjectors(new AbstractDependencyInjector[] { service.addInjector(
new AbstractDependencyInjector() { new AbstractDependencyInjector() {
@Override
public Object getInjection(Object object, Field field) { public Object getInjection(Object object, Field field) {
if(field.getName().equals("foo")) if(field.getName().equals("foo"))
return "gotfoo"; return "gotfoo";
@ -230,7 +232,7 @@ public class DependencyInjectionTests extends AndroidTestCase {
return null; return null;
} }
} }
}); );
ChildInjectee child = new ChildInjectee(); ChildInjectee child = new ChildInjectee();
service.inject(child); service.inject(child);

@ -1,8 +1,5 @@
package com.todoroo.andlib.service; package com.todoroo.andlib.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class TestDependencyInjector extends AbstractDependencyInjector { public class TestDependencyInjector extends AbstractDependencyInjector {
@ -32,14 +29,8 @@ public class TestDependencyInjector extends AbstractDependencyInjector {
* Install TestDependencyInjector above other injectors * Install TestDependencyInjector above other injectors
*/ */
public synchronized static TestDependencyInjector initialize(String name) { public synchronized static TestDependencyInjector initialize(String name) {
deinitialize(name);
ArrayList<AbstractDependencyInjector> list =
new ArrayList<AbstractDependencyInjector>(Arrays.asList(DependencyInjectionService.getInstance().getInjectors()));
TestDependencyInjector instance = new TestDependencyInjector(name); TestDependencyInjector instance = new TestDependencyInjector(name);
list.add(0, instance); DependencyInjectionService.getInstance().addInjector(instance);
DependencyInjectionService.getInstance().setInjectors(list.toArray(new AbstractDependencyInjector[list.size()]));
return instance; return instance;
} }
@ -47,20 +38,8 @@ public class TestDependencyInjector extends AbstractDependencyInjector {
* Remove an installed TestDependencyInjector * Remove an installed TestDependencyInjector
* @param string * @param string
*/ */
public static void deinitialize(String name) { public static void deinitialize(TestDependencyInjector instance) {
ArrayList<AbstractDependencyInjector> list = DependencyInjectionService.getInstance().removeInjector(instance);
new ArrayList<AbstractDependencyInjector>(Arrays.asList(DependencyInjectionService.getInstance().getInjectors()));
for(Iterator<AbstractDependencyInjector> i = list.iterator(); i.hasNext(); ) {
AbstractDependencyInjector injector = i.next();
// if another one of these injectors already exists in the
// stack, remove it
if(injector instanceof TestDependencyInjector) {
if(((TestDependencyInjector)injector).name.equals(name))
i.remove();
}
}
} }
} }

@ -3,7 +3,6 @@ package com.todoroo.astrid.service;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.service.AbstractDependencyInjector;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
@ -21,9 +20,9 @@ public class AstridDependencyInjectorTests extends AndroidTestCase {
super.setUp(); super.setUp();
// in case some state from other unit tests overwrote injector // in case some state from other unit tests overwrote injector
DependencyInjectionService.getInstance().setInjectors(new AbstractDependencyInjector[] { DependencyInjectionService.getInstance().addInjector(
new AstridDependencyInjector() new AstridDependencyInjector()
}); );
} }
public void testWithString() { public void testWithString() {

@ -56,10 +56,12 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
@Autowired @Autowired
MetadataDao metadataDao; MetadataDao metadataDao;
TestDependencyInjector injector;
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
// initialize test dependency injector // initialize test dependency injector
TestDependencyInjector injector = TestDependencyInjector.initialize("upgrade"); injector = TestDependencyInjector.initialize("upgrade");
injector.addInjectable("tasksTable", TASKS_TEST); injector.addInjectable("tasksTable", TASKS_TEST);
injector.addInjectable("tagsTable", TAGS_TEST); injector.addInjectable("tagsTable", TAGS_TEST);
injector.addInjectable("tagTaskTable", TAG_TASK_TEST); injector.addInjectable("tagTaskTable", TAG_TASK_TEST);
@ -83,7 +85,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
super.tearDown(); super.tearDown();
TestDependencyInjector.deinitialize("upgrade"); TestDependencyInjector.deinitialize(injector);
} }
// --- helper methods // --- helper methods

Loading…
Cancel
Save