diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Model.java b/contrib/mobile/Android/src/org/geuz/onelab/Model.java new file mode 100644 index 0000000000000000000000000000000000000000..168936c19f1a3b0e9e125441fa55f27019de2ad6 --- /dev/null +++ b/contrib/mobile/Android/src/org/geuz/onelab/Model.java @@ -0,0 +1,34 @@ +package org.geuz.onelab; + +import java.io.File; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + + +class Model { + private String _name, _summary; + private File _file; + private Bitmap _bitmap; + + public Model(String name, String summary, File file){ + _name = name; + _summary = summary; + _file = file; + } + public String getName() { + return _name; + } + public String getSummary() { + return _summary; + } + public File getFile() { + return _file; + } + public Bitmap getBitmap() { + return _bitmap; + } + public void setBitmap(File f) { + _bitmap = BitmapFactory.decodeFile(f.toString()); + } +} diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..3e8f3615959037a2d06d5cc169abc984bc7a8fb4 --- /dev/null +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java @@ -0,0 +1,49 @@ +package org.geuz.onelab; + +import java.util.List; +import java.util.ArrayList; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +public class ModelArrayAdapter extends ArrayAdapter<Model> { + private List<Model> _models; + + public ModelArrayAdapter(Context c) { + super(c, R.layout.model); + _models = new ArrayList<Model>(); + } + + @Override + public void add(Model model) { + super.add(model); + _models.add(model); + } + + public Model getModel(int pos) { + return _models.get(pos); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + LayoutInflater inflater = (LayoutInflater) parent.getContext() + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + View rowView = inflater.inflate(R.layout.model, parent, false); + TextView title = (TextView) rowView.findViewById(R.id.title); + TextView description = (TextView) rowView.findViewById(R.id.description); + ImageView icon = (ImageView) rowView.findViewById(R.id.icon); + if(_models.get(position).getName() != null) title.setText(_models.get(position).getName()); + if(_models.get(position).getSummary() != null) description.setText(_models.get(position).getSummary()); + if(_models.get(position).getBitmap() != null) icon.setImageBitmap(_models.get(position).getBitmap()); + else icon.setImageResource(R.drawable.ic_launcher); + icon.setPadding(10, 10, 10, 10); + + return rowView; + } +} diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java index 79eda56922d300f257ffd207fba8994e67c0ed2c..bb7ed63338966ef5406b4a093a747f5b7772f4a7 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java @@ -15,7 +15,6 @@ import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.content.Intent; -import android.content.res.XmlResourceParser; import android.graphics.Color; import android.os.Bundle; import android.os.Environment; @@ -30,20 +29,17 @@ import android.widget.AdapterView.OnItemClickListener; public class ModelList extends Activity { - private Models modelList; + private ModelArrayAdapter _modelArrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - this.modelList = new Models(); + _modelArrayAdapter = new ModelArrayAdapter(this); try { this.getModels(); } catch (XmlPullParserException e) { - // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -60,18 +56,17 @@ public class ModelList extends Activity { SDFileChooser f = new SDFileChooser(); } }); - list.addFooterView(loadSD); - list.setAdapter( new ModeleArrayAdapter(this, modelList)); + //TODO list.addFooterView(loadSD); + list.setAdapter(_modelArrayAdapter); list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - int model = (position < modelList.size())? position : 0; - + Model m = _modelArrayAdapter.getModel(position); Intent intent = new Intent(ModelList.this, MainActivity.class); - intent.putExtra("model", model); - intent.putExtra("file", modelList.getFile(model)); - intent.putExtra("name", modelList.getName(model)); + intent.putExtra("model", position); + intent.putExtra("file", m.getFile()); + intent.putExtra("name", m.getName()); startActivity(intent); } }); @@ -116,6 +111,7 @@ public class ModelList extends Activity { String title = null; String summary = null; String file = null; + String bitmap = null; while (parser.next() != XmlPullParser.END_TAG) { if (parser.getEventType() != XmlPullParser.START_TAG) continue; String name = parser.getName(); @@ -138,8 +134,19 @@ public class ModelList extends Activity { parser.nextTag(); } } + else if(name.equals("preview")) { + if (parser.next() == XmlPullParser.TEXT) { + bitmap = parser.getText(); + parser.nextTag(); + } + } + else { + skipTag(parser); + } } - modelList.addModel(title, summary, dir+"/"+file); + Model newModel = new Model(title, summary, new File(dir+"/"+file)); + if(bitmap != null) newModel.setBitmap(new File(dir+"/"+bitmap)); + _modelArrayAdapter.add(newModel); } private void skipTag(XmlPullParser parser) throws XmlPullParserException, IOException { if (parser.getEventType() != XmlPullParser.START_TAG) { diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModeleArrayAdapter.java b/contrib/mobile/Android/src/org/geuz/onelab/ModeleArrayAdapter.java deleted file mode 100644 index 2858b4018bd82ebba9ee728fbff6c55367fc185d..0000000000000000000000000000000000000000 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModeleArrayAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.geuz.onelab; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -public class ModeleArrayAdapter extends ArrayAdapter<String> { - private Context context; - private String[] titres; - private String[] descriptions; - - public ModeleArrayAdapter(Context context, String[] titres) { - super(context, R.layout.model, titres); - this.context = context; - this.titres = titres; - } - public ModeleArrayAdapter(Context context, String[] titres, String[] descriptions) { - this(context,titres); - this.descriptions = descriptions; - } - public ModeleArrayAdapter(Context context, Models models) { - super(context, R.layout.model, models.getNames()); - this.context = context; - titres = new String[models.size()]; - descriptions = new String[models.size()]; - for(int i=0;i < models.size();i++) { - titres[i] = models.getName(i); - descriptions[i] = models.getSummary(i); - } - - } - - @Override - public View getView(int position, View convertView, ViewGroup parent){ - LayoutInflater inflater = (LayoutInflater) context - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - - View rowView = inflater.inflate(R.layout.model, parent, false); - TextView Title = (TextView) rowView.findViewById(R.id.title); - TextView Description = (TextView) rowView.findViewById(R.id.description); - ImageView Icon = (ImageView) rowView.findViewById(R.id.icon); - if(this.titres != null) Title.setText(this.titres[position]); - if(this.descriptions != null) Description.setText(this.descriptions[position]); - if(Icon != null) Icon.setImageResource(R.drawable.ic_launcher); - Icon.setPadding(10, 10, 10, 10); - - return rowView; - } -} diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Models.java b/contrib/mobile/Android/src/org/geuz/onelab/Models.java deleted file mode 100644 index e5ab6f962a9884e9595fe057775a0c036f1f68c2..0000000000000000000000000000000000000000 --- a/contrib/mobile/Android/src/org/geuz/onelab/Models.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.geuz.onelab; - -import java.util.ArrayList; -import java.util.List; - - -class Models { - private List<String> _name; - private List<String> _summary; - private List<String> _file; - - public Models(){ - _name = new ArrayList<String>(); - _summary = new ArrayList<String>(); - _file = new ArrayList<String>(); - } - - public int size() { - return _name.size(); - } - public String getName(int pos) { - return _name.get(pos); - } - public String[] getNames() { - String[] ret = new String[_name.size()]; - ret = _name.toArray(ret); - return ret; - } - public String getSummary(int pos) { - return _summary.get(pos); - } - public String getFile(int pos) { - return _file.get(pos); - } - public void addModel(String name, String summary, String file){ - _name.add(name); - _file.add(file); - _summary.add(summary); - } -}