Navigation Menu

Skip to content

Commit

Permalink
added method to set dependencies from application subclass. fixed whi…
Browse files Browse the repository at this point in the history
…tespace.
  • Loading branch information
royclarkson committed Aug 4, 2011
1 parent 0ed0ce3 commit ee8d0f0
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 42 deletions.
44 changes: 22 additions & 22 deletions AndroidManifest.xml
@@ -1,28 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.springframework.android.di.sample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />
package="org.springframework.android.di.sample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />

<application
android:name=".MainApplication"
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
<application
android:name=".MainApplication"
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
</application>
</manifest>
12 changes: 6 additions & 6 deletions src/org/springframework/android/di/SpringActivity.java
Expand Up @@ -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);
}

}
15 changes: 7 additions & 8 deletions src/org/springframework/android/di/SpringApplication.java
Expand Up @@ -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;

Expand All @@ -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) {
Expand All @@ -29,18 +25,21 @@ 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);
} catch (IllegalAccessException e) {
throw new RuntimeException("Unable to access field.", e);
}
}
}

}
}

protected void addDependency(Class<?> c, Object o) {
dependencies.put(c, o);
}

}
12 changes: 6 additions & 6 deletions src/org/springframework/android/di/SpringListActivity.java
Expand Up @@ -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);
}
}
@@ -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());
}
}

0 comments on commit ee8d0f0

Please sign in to comment.