Skip to content

Commit

Permalink
Refactored new classes to use proper IoC and all previous tests are p…
Browse files Browse the repository at this point in the history
…assing.
  • Loading branch information
patrickbaumann committed Mar 26, 2011
1 parent 24de7c5 commit 0e21aa8
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package gov.nasa.arc.geocam.memo.injected;

import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.DefaultHttpClient;

import gov.nasa.arc.geocam.memo.activity.GeoCamMemoMessageArrayAdapter;
import gov.nasa.arc.geocam.memo.service.DjangoMemoJsonConverterImplementation;
import gov.nasa.arc.geocam.memo.service.DjangoMemoJsonConverterInterface;
import gov.nasa.arc.geocam.memo.service.DjangoMemoInterface;
Expand All @@ -9,6 +13,8 @@ public class TestInjectedModule extends AbstractAndroidModule {

@Override
protected void configure() {
requestStaticInjection(GeoCamMemoMessageArrayAdapter.class);
//bind(GeoCamMemoMessageArrayAdapter.class).toInstance(new GeoCamMemoMessageArrayAdapter());
bind(DjangoMemoInterface.class).to(FakeDjangoMemoImplementation.class);
bind(DjangoMemoJsonConverterInterface.class)
.to(DjangoMemoJsonConverterImplementation.class);
Expand Down
4 changes: 3 additions & 1 deletion android/src/gov/nasa/arc/geocam/memo/GeoCamMemoModule.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package gov.nasa.arc.geocam.memo;

import gov.nasa.arc.geocam.memo.activity.GeoCamMemoMessageArrayAdapter;
import gov.nasa.arc.geocam.memo.service.DjangoMemoImplementation;
import gov.nasa.arc.geocam.memo.service.DjangoMemoInterface;
import gov.nasa.arc.geocam.memo.service.DjangoMemoJsonConverterImplementation;
Expand All @@ -14,10 +15,11 @@ public class GeoCamMemoModule extends AbstractAndroidModule{

@Override
protected void configure() {
requestStaticInjection(GeoCamMemoMessageArrayAdapter.class);
//bind(GeoCamMemoMessageArrayAdapter.class).to(GeoCamMemoMessageArrayAdapter.class);
bind(DjangoMemoInterface.class).to(DjangoMemoImplementation.class);
bind(DjangoMemoJsonConverterInterface.class)
.to(DjangoMemoJsonConverterImplementation.class);
bind(HttpClient.class).toInstance(new DefaultHttpClient());
//requestStaticInjection(DjangoMemoImplementation.class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ public class GeoCamMemoActivity extends RoboActivity {

@Inject DjangoMemoInterface djangoMemo;
@InjectView(R.id.MemoListView) ListView memoListView;


@Inject GeoCamMemoMessageArrayAdapter adapter;

/** Called when the activity is first created. */
@Override
Expand All @@ -36,15 +35,7 @@ public void onCreate(Bundle savedInstanceState) {

List<GeoCamMemoMessage> memos = djangoMemo.getMemos();

GeoCamMemoMessage[] memoAry = new GeoCamMemoMessage[memos.size()];
for(int i = 0; i < memos.size(); i++)
{
memoAry[i] = memos.get(i);
}


GeoCamMemoMessageArrayAdapter adapter =
new GeoCamMemoMessageArrayAdapter(getApplicationContext(), R.layout.list_item, memoAry);
adapter.setMemos(memos);

memoListView.setAdapter(adapter);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,42 @@
package gov.nasa.arc.geocam.memo.activity;

import gov.nasa.arc.geocam.memo.R;
import gov.nasa.arc.geocam.memo.bean.GeoCamMemoMessage;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import gov.nasa.arc.geocam.memo.R;
import gov.nasa.arc.geocam.memo.bean.GeoCamMemoMessage;
import android.content.Context;
import android.opengl.Visibility;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.google.inject.Inject;
import com.google.inject.Provider;

public class GeoCamMemoMessageArrayAdapter extends ArrayAdapter<GeoCamMemoMessage> {

public GeoCamMemoMessageArrayAdapter(Context context,
int textViewResourceId, GeoCamMemoMessage[] objects) {
super(context, textViewResourceId, objects);
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Inject protected static Provider<Context> contextProvider;
@Inject LayoutInflater mInflater;

private LayoutInflater mInflater;

public GeoCamMemoMessageArrayAdapter() {
super(contextProvider.get(), R.layout.list_item);
}

public void setMemos(List<GeoCamMemoMessage> memos)
{
clear();
for(GeoCamMemoMessage m:memos)
{
add(m);
}
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@
import android.widget.Toast;

import com.google.inject.Inject;
import com.google.inject.Provider;

public class DjangoMemoImplementation implements DjangoMemoInterface{

@Inject DjangoMemoJsonConverterInterface jsonConverter;
@InjectResource(R.string.memo_url) String memoUrl;
@InjectResource(R.string.memo_messages) String memoMessagesJson;
@Inject protected Context context;
@Inject protected static Provider<Context> contextProvider;
@Inject HttpClient httpClient;

@Override
Expand All @@ -39,7 +40,7 @@ public List<GeoCamMemoMessage> getMemos() {
response.getEntity().writeTo(ostream);
jsonString = ostream.toString();
} catch (Exception e) {
Toast.makeText(context, "Cannot access Memo Web", Toast.LENGTH_SHORT).show();
Toast.makeText(contextProvider.get(), "Cannot access Memo Web", Toast.LENGTH_SHORT).show();
}

return jsonConverter.deserializeList(jsonString);
Expand Down

0 comments on commit 0e21aa8

Please sign in to comment.