/* * This file is part of DroidClic * * DroidClic is copyright 2012 by * Marc Alier Forment, * Maria Jos� Casany Guerrero, * Enric Mayol * * UPC Students involved in this project: * * Previous version and legacy code: * --------------------------------- * PUJOL BENET, MIRIAM * * * Project management * ------------------ * ALMA SERRANO, ALBERT * CLAVER ARGUDO, MARIA * JIMENEZ TARRES, VICTOR * CORCHADO MERINO, JUAN CARLOS * JUAN JANE, ANDREU * MENES ROUCO, MARTIN * ORTEGA GOMEZ, CRISTIAN * PURCET SOTO, SERGI * RAMOS GONZALEZ, RICARDO * SOLE MORERA, DANIEL * * * Research & support * -------------------- * ALBALATE FERNANDEZ, AIDA * CABRE JUAN, ALBERT * CANDON ARENAS, HECTOR * ELBAILE SERRA, ABEL * GONZALEZ DE PABLO, BORJA * IGLESIAS LOPEZ, OSCAR * MARTINEZ LOPEZ, SERGIO * PEREZ PLANAS, ORIAC * SANCHEZ MARCOS, IVAN * TORNE GOZALBO, ORIOL * * * Development * ----------- * Lead developers * ALBALATE FERNANDEZ, AIDA * COSTA MANSILLA, GERARD * GONZALEZ DE PABLO, BORJA * Developers: * ALEMANY FONT, ALBERT * ALVAREZ JUSTE, XAVIER * ALVAREZ MORALES, FERRAN * BARRERO MARTINEZ, LINDSAY * BENITEZ VALLS, ALBERT * BERRUEZO MARTINEZ, DAVID * BRAMON DEVANT, MARC * BRIGUELLI DA SILVA, LUIS FERNANDO * CABRE JUAN, ALBERT * CANDON ARENAS, HECTOR * CAPEL CATALAN, VICTOR * CLAVER ARGUDO, MARIA * DE PAULA DE PUIG GUIXE, FRANCESC * DIEZ RUIZ, ALBERT * ELBAILE SERRA, ABEL * FARRE GONZALEZ, PAU * GARCIA GARCIA, XAVIER * HURTADO OBIOLS, CRISTINA * MARTINEZ DIAZ, ARTURO * MARTINEZ LOPEZ, SERGIO * MENES ROUCO, MARTIN * MONTSERRAT GARCIA, EDUARD * ORTIZ GRIMAU, XAVIER * OSORIO ALVAREZ, DAVID * PASCUAL VAZQUEZ, PABLO * PEDRAZA GUTIERREZ, M. MERCEDES * PEREZ PLANAS, ORIAC * RODRIGUEZ TORRES, MIREIA * SANCHEZ MARCOS, IVAN * SEGARRA RODA, EDUARD * SELLES FEITO, MANEL * SOLER PASCUAL, GERARD * SUBIRATS SALVANS, JOAN * * * Design & usability * -------------------- * Lead designer: * LEGORBURU CLADERA, I�IGO * Designers: * OTAL RODRIGUEZ, DANIEL * PASCUAL VAZQUEZ, PABLO * SEGARRA RODA, EDUARD * SOLER PASCUAL, GERARD * SUBIRATS SALVANS, JOAN * VIDAL PASTALLE, MARIA * * * Testing, evaluation & audit * --------------------------- * Lead tester: * NAVARRO JIMENEZ, GERMAN * ALEMANY FONT, ALBERT * Testers: * ALVAREZ MORALES, FERRAN * BENITEZ VALLS, ALBERT * CAPEL CATALAN, VICTOR * MONTSERRAT GARCIA, EDUARD * ORTIZ GRIMAU, XAVIER * SANCHEZ CORREDOR, MONTSERRAT * * * Documentation, communication & broadcast * ---------------------------------------- * Lead documentator: * ALVAREZ JUSTE, XAVIER * SANCHEZ CORREDOR, MONTSERRAT * Documentators: * BARRERO MARTINEZ, LINDSAY * GARCIA GARCIA, XAVIER * NAVARRO JIMENEZ, GERMAN * OSORIO ALVAREZ, DAVID * TORNE GOZALBO, ORIOL * * * DroidClic is copyright 2012 by * Universitat Politecnica de Catalunya http://www.upc.edu * Contact info: * Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu * * DroiClic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Droidlic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with DroidClic. If not, see <http://www.gnu.org/licenses/>. * * DroidClic is based on the Software JClic by Francesc Busquets * http://clic.xtec.cat/es/jclic/ * */ package pfc.Repositori; import android.app.ListActivity; public class LlistatProjectes extends ListActivity { /* * private Drawable arrow; private Object resultRequestSOAP = null; private * List<ContingutFila> lista; private AdaptadorLlistaIconos ad; private * Constants CO = Constants.getInstance(); * * public EditText nametext; * * private static final int MENU_AJUDA = 0; private static final int * MENU_INICI = 1; private static final int MENU_NOVETATS = 2; private * static final int MENU_CERCAR = 3; private static final int MENU_SORTIR = * 4; * * @SuppressWarnings("unchecked") * * @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); * setContentView(R.layout.llista_repositori); * * Dialog atencio = new AlertDialog.Builder(this) * .setIcon(R.drawable.jclic_aqua) .setTitle("Atenció") * .setPositiveButton("D'acord", null) * .setMessage("Selecciona el projecte que vols obrir. " + * "Pot trigar una estona en descarregar-se a\n/" + "sdcard/tmp/jclic") * .create(); atencio.show(); * * * * Resources res = getResources(); SealedObject request; * * if(DadesServidor.all) request = new SealedObject(DadesServidor.NAMESPACE, * DadesServidor.SOAP_ACTION_ALL); else { request = new * SoapObject(DadesServidor.NAMESPACE, DadesServidor.SOAP_ACTION_SEARCH); * request.addProperty("keyword", DadesServidor.keyword); } * * SoapSerializationEnvelope envelope = new * SoapSerializationEnvelope(SoapEnvelope.VER11); * envelope.setOutputSoapObject(request); * * HttpTransportSE androidHttpTransport = new * HttpTransportSE(DadesServidor.URL); try { * androidHttpTransport.call(DadesServidor.SOAP_ACTION_ALL, envelope); * resultRequestSOAP = envelope.getResponse(); Vector results = (Vector) * resultRequestSOAP; * * lista = new ArrayList<ContingutFila>(); arrow = * res.getDrawable(R.drawable.arrow); * * for(int i = 0; i < results.size(); i++){ String title = * (String)results.elementAt(i).toString().subSequence( * results.elementAt(i).toString().indexOf("Title=")+6, * results.elementAt(i).toString().indexOf("; Author=")); * * String area = (String)results.elementAt(i).toString().subSequence( * results.elementAt(i).toString().indexOf("Area=")+5, * results.elementAt(i).toString().indexOf("; Language=")); * * String language = (String)results.elementAt(i).toString().subSequence( * results.elementAt(i).toString().indexOf("Language=")+9, * results.elementAt(i).toString().indexOf("; Level=")); * * String icona = (String)results.elementAt(i).toString().subSequence( * results.elementAt(i).toString().indexOf("Icon=")+5, * results.elementAt(i).toString().indexOf("; SubscriptionId=")); * * String file = (String)results.elementAt(i).toString().subSequence( * results.elementAt(i).toString().indexOf("File=")+5, * results.elementAt(i).toString().indexOf("; Icon=")); * * String[] split = icona.split("/"); * * URL url = new URL(icona); InputStream in = url.openStream(); * BitmapDrawable btmdrw = agafarImatge(in, split[split.length-1]); * * if(btmdrw == null) btmdrw = * (BitmapDrawable)res.getDrawable(R.drawable.jclic_aqua); * * lista.add(new ContingutFila(btmdrw,title,area,language,arrow, file)); } * * ad = new AdaptadorLlistaIconos(this,lista); setListAdapter(ad); * * } catch(Exception e){ Log.d("Error","error catch Llista: "+e); } } * * protected void onListItemClick(ListView l, View v, int position, long id) * { int IDFilaSeleccionada = position; * * try { ContingutFila ti = (ContingutFila) ad.getItem(IDFilaSeleccionada); * * URL url = new URL(DadesServidor.ACTIVITATS+ti.file); InputStream in = * url.openStream(); * * File dst = new File("/sdcard/tmp/jclic/"+ti.file); dst = copiarArxiu(in, * dst); * * CO.path = dst.getAbsolutePath(); * * CO.fitxer = (String)CO.path.subSequence(0,CO.path.length()-4); String[] * split = CO.fitxer.split("/"); CO.fitxer = split[split.length-1]; * * if(Descompressor.descompressor(CO.fitxer, CO.path)){ * * File file = new File("/sdcard/tmp/jclic/"+CO.fitxer); * file.createNewFile(); * * Parser.ParserXML(file); * * if(Parser.getActivitats().size() == 0){ Dialog noActivitats = new * AlertDialog.Builder(LlistatProjectes.this) * .setIcon(R.drawable.jclic_aqua) .setTitle("No hi ha activitats") * .setPositiveButton("D'acord", null) * .setMessage("No hi ha activitats o les que hi ha no són vàlides!") * .create(); noActivitats.show(); } else { * if(Parser.getActivitatsSaltades()){ creaMissatgeTemporal( * "S'han eliminat algunes activitats\n" + "per problemes de tamany", * false); } * * Intent i = new Intent(LlistatProjectes.this, Puzzle.class); * startActivity(i); finish(); } } else { Dialog noActivitats = new * AlertDialog.Builder(LlistatProjectes.this) * .setIcon(R.drawable.jclic_aqua) .setTitle("Fitxer invàlid") * .setPositiveButton("D'acord", null) * .setMessage("El fitxer no és vàlid!") .create(); noActivitats.show(); } * * } catch (Exception e) { Log.d("Error", "error AgafarFitxer: "+e); } } * * private BitmapDrawable agafarImatge(InputStream in, String imatge){ try{ * File dst = new File("/sdcard/tmp/jclic/"+imatge); dst = copiarArxiu(in, * dst); * * Bitmap bitmapOrg = BitmapFactory.decodeFile(dst.getAbsolutePath()); * * int widthImage = bitmapOrg.getWidth(); int heightImage = * bitmapOrg.getHeight(); * * float scaleWidth = ((float) 70) / widthImage; float scaleHeight = * ((float) 70) / heightImage; * * Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); * * Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,widthImage, * heightImage, matrix, true); Bitmap btmp = * Bitmap.createBitmap(resizedBitmap, 0, 0, 70, 70); BitmapDrawable btmdrw = * new BitmapDrawable(btmp); * * return btmdrw; } catch(Exception e){ return null; } } * * private File copiarArxiu(InputStream in, File dst){ try{ * dst.createNewFile(); * * OutputStream out = new FileOutputStream(dst); * * byte[] buf = new byte[1024]; int len; * * while ((len = in.read(buf)) > 0) out.write(buf, 0, len); * * in.close(); out.close(); return dst; } catch(Exception e){ * Log.d("Error","error copiarArxiu: "+e); return null; } } * * private void creaMissatgeTemporal(String missatge,boolean curt) { Toast * missatgeTemporal = Toast.makeText(this, * missatge,curt?Toast.LENGTH_SHORT:Toast.LENGTH_LONG); * missatgeTemporal.setGravity(Gravity.CENTER, 0, 0); * missatgeTemporal.show(); } * * public boolean onCreateOptionsMenu(Menu menu) { * super.onCreateOptionsMenu(menu); CO.menu = menu; CO.menu.clear(); * CO.menu.add(0, MENU_AJUDA, 0, R.string.menu_ajuda); CO.menu.add(0, * MENU_INICI, 0, R.string.menu_inici); CO.menu.add(0, MENU_NOVETATS, 0, * R.string.menu_novetats); CO.menu.add(0, MENU_CERCAR, 0, * R.string.menu_cercar); CO.menu.add(0, MENU_SORTIR, 0, * R.string.menu_sortir); * * CO.menu.getItem(MENU_AJUDA).setIcon(android.R.drawable.ic_menu_help); * CO.menu.getItem(MENU_INICI).setIcon(android.R.drawable.ic_menu_revert); * CO.menu.getItem(MENU_NOVETATS).setIcon(android.R.drawable.ic_menu_share); * CO.menu.getItem(MENU_CERCAR).setIcon(android.R.drawable.ic_menu_search); * CO.menu.getItem(MENU_SORTIR).setIcon(android.R.drawable. * ic_menu_close_clear_cancel); * * if(DadesServidor.all) CO.menu.getItem(MENU_NOVETATS).setEnabled(false); * else CO.menu.getItem(MENU_NOVETATS).setEnabled(true); * * return true; } * * public boolean onOptionsItemSelected(MenuItem item) { switch * (item.getItemId()) { case MENU_AJUDA: Dialog ajuda = new * AlertDialog.Builder(this) .setIcon(R.drawable.jclic_aqua) * .setTitle("Ajuda") .setPositiveButton("D'acord", null) * .setMessage("Selecciona el projecte que vols obrir. " + * "Pot trigar una estona en descarregar-se a\n/" + "sdcard/tmp/jclic") * .create(); ajuda.show(); return true; case MENU_NOVETATS: * DadesServidor.keyword = ""; DadesServidor.all = true; Intent nov = new * Intent(this, LlistatProjectes.class); startActivity(nov); finish(); * return true; case MENU_CERCAR: final Dialog dialog = new Dialog(this); * * dialog.setContentView(R.layout.llista_repositori_cerca); * dialog.setTitle("Clau de cerca"); * * Button auto = (Button) dialog.findViewById(R.id.ok); * * auto.setOnClickListener(new View.OnClickListener() { public void * onClick(View view) { nametext = (EditText) * dialog.findViewById(R.id.text); * * DadesServidor.keyword = nametext.getText().toString(); * * DadesServidor.all = false; * * Intent cerca = new Intent(LlistatProjectes.this, LlistatProjectes.class); * startActivity(cerca); finish(); * * dialog.dismiss(); } }); dialog.show(); * * return true; case MENU_SORTIR: AlertDialog.Builder builder = new * AlertDialog.Builder(this); builder.setIcon(R.drawable.jclic_aqua); * builder.setMessage("Estàs segur de que vols sortir?") * .setCancelable(false) .setPositiveButton("Sí", new * DialogInterface.OnClickListener() { public void onClick(DialogInterface * dialog, int id) { LlistatProjectes.this.finish(); } }) * .setNegativeButton("No", new DialogInterface.OnClickListener() { public * void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); * AlertDialog alert = builder.create(); alert.show(); return true; case * MENU_INICI: Intent i = new Intent(this, Jclic.class); startActivity(i); * finish(); return true; } return false; } */ }