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.DependencyInjectionService;
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.StoreObjectDao;
import com.todoroo.astrid.service.AddOnService;
@ -32,12 +30,6 @@ public final class PluginServices {
@Autowired
MetadataService metadataService;
@Autowired
DialogUtilities DialogUtilities;
@Autowired
DateUtilities dateUtilities;
@Autowired
AddOnService addOnService;
@ -78,14 +70,6 @@ public final class PluginServices {
return getInstance().addOnService;
}
public static DialogUtilities getDialogUtilities() {
return getInstance().DialogUtilities;
}
public static DateUtilities getDateUtilities() {
return getInstance().dateUtilities;
}
public static StoreObjectDao getStoreObjectDao() {
return getInstance().storeObjectDao;
}

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

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

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

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

@ -1,8 +1,5 @@
package com.todoroo.andlib.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class TestDependencyInjector extends AbstractDependencyInjector {
@ -32,14 +29,8 @@ public class TestDependencyInjector extends AbstractDependencyInjector {
* Install TestDependencyInjector above other injectors
*/
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);
list.add(0, instance);
DependencyInjectionService.getInstance().setInjectors(list.toArray(new AbstractDependencyInjector[list.size()]));
DependencyInjectionService.getInstance().addInjector(instance);
return instance;
}
@ -47,20 +38,8 @@ public class TestDependencyInjector extends AbstractDependencyInjector {
* Remove an installed TestDependencyInjector
* @param string
*/
public static void deinitialize(String name) {
ArrayList<AbstractDependencyInjector> list =
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();
}
}
public static void deinitialize(TestDependencyInjector instance) {
DependencyInjectionService.getInstance().removeInjector(instance);
}
}

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

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

Loading…
Cancel
Save