diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java index ac6fc70ce7dc593e94d112f0e9f4a868820ae66e..7e1342260998d96bb8ede171903ed97871db22a8 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelArrayAdapter.java @@ -28,6 +28,12 @@ public class ModelArrayAdapter extends ArrayAdapter<Model> { _models.add(model); } + public void reset() + { + super.clear(); + _models.clear(); + } + public void sortByName() { Collections.sort(_models, new ModelComp()); diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java index d942edeb68c6f17eb371cffac425db6870ab2db1..2af3c654bf13b7a56144a7ae47dc7adbe28e486c 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java @@ -32,6 +32,15 @@ public class ModelList extends Activity { private ModelArrayAdapter _modelArrayAdapter; + private void deleteRecursive(File fileOrDirectory) + { + if (fileOrDirectory.isDirectory()){ + for (File child : fileOrDirectory.listFiles()) + deleteRecursive(child); + } + fileOrDirectory.delete(); + } + @Override protected void onCreate(Bundle savedInstanceState) { @@ -66,30 +75,42 @@ public class ModelList extends Activity { final Model m = _modelArrayAdapter.getModel(position); CharSequence[] actions; if(m.getUrl() != null) { - actions = new CharSequence[2]; + actions = new CharSequence[3]; actions[0] = "Open model"; - actions[1] = "View model website"; - // FIXME: add "Remove model" as in iOS + actions[1] = "Remove model"; + actions[2] = "View model website"; } else { - actions = new CharSequence[1]; + actions = new CharSequence[2]; actions[0] = "Open model"; + actions[1] = "Remove model"; } AlertDialog.Builder builder = new AlertDialog.Builder(parent.getContext()); builder.setTitle(m.getName()); builder.setItems(actions, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int position) { switch (position) { - case 1: - Intent browserIntent = new Intent(Intent.ACTION_VIEW, m.getUrl()); - startActivity(browserIntent); - break; - default: + case 0: Intent intent = new Intent(ModelList.this, MainActivity.class); intent.putExtra("file", m.getFile().toString()); intent.putExtra("name", m.getName()); startActivity(intent); break; + case 1: + deleteRecursive(m.getFile().getParentFile()); + _modelArrayAdapter.reset(); + try { + getModels(); + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + break; + case 2: + Intent browserIntent = new Intent(Intent.ACTION_VIEW, m.getUrl()); + startActivity(browserIntent); + break; } } });