From ee8d0f09ade97dcd0ab68a4658685771ead948ca Mon Sep 17 00:00:00 2001 From: Roy Clarkson Date: Thu, 4 Aug 2011 10:30:59 -0400 Subject: [PATCH] added method to set dependencies from application subclass. fixed whitespace. --- AndroidManifest.xml | 44 +++++++++---------- .../android/di/SpringActivity.java | 12 ++--- .../android/di/SpringApplication.java | 15 +++---- .../android/di/SpringListActivity.java | 12 ++--- .../android/di/sample/MainApplication.java | 7 +++ 5 files changed, 48 insertions(+), 42 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 2ccba68..ab860f6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,28 +1,28 @@ - - - + package="org.springframework.android.di.sample" + android:versionCode="1" + android:versionName="1.0"> + + + - - - + + - - - - - - - + + + + + + + - - + + \ No newline at end of file diff --git a/src/org/springframework/android/di/SpringActivity.java b/src/org/springframework/android/di/SpringActivity.java index 623d615..9d33a7c 100644 --- a/src/org/springframework/android/di/SpringActivity.java +++ b/src/org/springframework/android/di/SpringActivity.java @@ -6,11 +6,11 @@ public abstract class SpringActivity extends Activity { - @Override - public void onCreate(Bundle savedInstanceState) { - SpringApplication application = (SpringApplication) getApplication(); - application.injectDependencies(this); - super.onCreate(savedInstanceState); - } + @Override + public void onCreate(Bundle savedInstanceState) { + SpringApplication application = (SpringApplication) getApplication(); + application.injectDependencies(this); + super.onCreate(savedInstanceState); + } } diff --git a/src/org/springframework/android/di/SpringApplication.java b/src/org/springframework/android/di/SpringApplication.java index b044736..cb73a17 100644 --- a/src/org/springframework/android/di/SpringApplication.java +++ b/src/org/springframework/android/di/SpringApplication.java @@ -4,8 +4,6 @@ import java.util.HashMap; import java.util.Map; -import org.springframework.web.client.RestTemplate; - import android.app.Activity; import android.app.Application; @@ -16,8 +14,6 @@ public abstract class SpringApplication extends Application { @Override public void onCreate () { super.onCreate(); - - dependencies.put(RestTemplate.class, new RestTemplate()); } void injectDependencies(Activity activity) { @@ -29,9 +25,9 @@ void injectDependencies(Activity activity) { if (field.get(activity) == null) { Class classToInject = field.getType(); if (dependencies.containsKey(classToInject)) { - Object object = dependencies.get(classToInject); + Object object = dependencies.get(classToInject); field.set(activity, object); - } + } } } catch (IllegalArgumentException e) { throw new RuntimeException(e); @@ -39,8 +35,11 @@ void injectDependencies(Activity activity) { throw new RuntimeException("Unable to access field.", e); } } - } - + } + } + + protected void addDependency(Class c, Object o) { + dependencies.put(c, o); } } diff --git a/src/org/springframework/android/di/SpringListActivity.java b/src/org/springframework/android/di/SpringListActivity.java index bea195b..41aeb23 100644 --- a/src/org/springframework/android/di/SpringListActivity.java +++ b/src/org/springframework/android/di/SpringListActivity.java @@ -5,10 +5,10 @@ public class SpringListActivity extends ListActivity { - @Override - public void onCreate(Bundle savedInstanceState) { - SpringApplication application = (SpringApplication) getApplication(); - application.injectDependencies(this); - super.onCreate(savedInstanceState); - } + @Override + public void onCreate(Bundle savedInstanceState) { + SpringApplication application = (SpringApplication) getApplication(); + application.injectDependencies(this); + super.onCreate(savedInstanceState); + } } diff --git a/src/org/springframework/android/di/sample/MainApplication.java b/src/org/springframework/android/di/sample/MainApplication.java index 0140558..fcb9d53 100644 --- a/src/org/springframework/android/di/sample/MainApplication.java +++ b/src/org/springframework/android/di/sample/MainApplication.java @@ -1,7 +1,14 @@ package org.springframework.android.di.sample; import org.springframework.android.di.SpringApplication; +import org.springframework.web.client.RestTemplate; public class MainApplication extends SpringApplication { + @Override + public void onCreate () { + super.onCreate(); + + this.addDependency(RestTemplate.class, new RestTemplate()); + } }