package uni.projecte.dataTypes; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Locale; import uni.projecte.R; import uni.projecte.controler.PreferencesControler; import android.content.Context; import android.content.res.Configuration; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.widget.Spinner; import android.widget.Toast; public class Utilities { public static void showToast(CharSequence message, Context appContext) { int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(appContext, message, duration); toast.show(); } /* * This method sets the default spinner item using defValue parameter provided. * If the spinner doesn't contain the value, spinner is not modified. * */ public static void setDefaultSpinnerItem(Spinner e, String defaultValue, String[] items){ int n=items.length; boolean found=false; int pos=-1; int i; for(i=0; i<n && !found;i++){ if (items[i].compareTo(defaultValue)==0){ found=true; pos=i;} } if(found) e.setSelection(pos); } public static int findString(String[] items, String item){ int pos=-1; if(item!=null && !item.equals("")){ int n=items.length; boolean found=false; int i; for(i=0; i<n && !found;i++){ if (items[i].compareTo(item)==0){ found=true; pos=i;} } } return pos; } public static int findStringArrayList(ArrayList<String> items, String item){ int pos=-1; int i=0; boolean found=false; Iterator<String> it=items.iterator(); while(it.hasNext() && !found){ String value=it.next(); if(value.equals(item)) { found=true; pos=i; } else i++; } return pos; } public static String convertStreamToString(InputStream is) { /* * To convert the InputStream to String we use the BufferedReader.readLine() * method. We iterate until the BufferedReader return null which means * there's no more data to read. Each line will appended to a StringBuilder * and returned as String. */ BufferedReader reader; StringBuilder sb = new StringBuilder(); try { reader = new BufferedReader(new InputStreamReader(is,"UTF-8")); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); }finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } /*public static String prettyUTM(String shortForm) { if(shortForm.length()>=7){ String prettyString=shortForm.substring(0, 3)+" "+shortForm.substring(3, 5)+" "+shortForm.substring(5,shortForm.length()-5)+" "+shortForm.substring(shortForm.length()-5); return prettyString; } else return ""; }*/ public static void setLocale(Context context) { PreferencesControler pC=new PreferencesControler(context); String localName=pC.getLang(); Locale locale = new Locale(localName); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); } public static String translateThTypeToCurrentLanguage(Context c, String englishName){ String[] biocatNamesEnglish = c.getResources().getStringArray(R.array.thesaurusFilumsEnglish); int pos=findString(biocatNamesEnglish, englishName); if(pos>-1) { String[] biocatFilumsNames = c.getResources().getStringArray(R.array.thesaurusFilums); return biocatFilumsNames[pos]; } else return ""; } public static String translateThTypeToFilumLetter(Context c, String currentLanguageName){ String[] biocatNamesEnglish = c.getResources().getStringArray(R.array.thesaurusFilums); int pos=findString(biocatNamesEnglish, currentLanguageName); if(pos>-1) { String[] biocatFilumsLetters = c.getResources().getStringArray(R.array.thesaurusFilumsLetters); return biocatFilumsLetters[pos]; } else return ""; } public static String translateThFieldType(Context c, String currentLanguageType){ String[] thFieldsIds = c.getResources().getStringArray(R.array.thesaurusFields); int pos=findString(thFieldsIds, currentLanguageType); if(pos>-1) { String[] thFieldsTypesIds = c.getResources().getStringArray(R.array.thesaurusFieldsIds); return thFieldsTypesIds[pos]; } else return ""; } public static String translateThFieldsSepartor(Context c, String currentFieldSeparatorType){ String[] fieldsSeparators = c.getResources().getStringArray(R.array.thesaurusFieldsSeparators); int pos=findString(fieldsSeparators, currentFieldSeparatorType); if(pos>-1) { String[] thFieldsSeparatorsIds = c.getResources().getStringArray(R.array.thesaurusFieldsSeparatorsUniqueNames); return thFieldsSeparatorsIds[pos]; } else return ""; } public static boolean isSdPresent() { return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); } public static boolean checkCoordinates(String locationValue, boolean utmData) { if(locationValue.length()>0){ if(utmData){ String numbers[] =locationValue.split("[A-Z]+"); String zone=numbers[0]; if(zone==null || Integer.valueOf(zone)<1 || Integer.valueOf(zone)>60){ return false; } String letters=""; if(numbers.length>1) letters=locationValue.substring(zone.length(),locationValue.length()-numbers[1].length()); else letters=locationValue.substring(zone.length()); if(letters.length()!=3 || letters.charAt(0)<'C' || letters.charAt(0)>'X' || letters.charAt(0)=='I' ){ return false; } } else{ String numbers[]=locationValue.split(" "); if(numbers.length!=2) return false; if(!isNum(numbers[0]) || !isNum(numbers[1])) return false; } } return true; } public static boolean isNum(String s) { try { Double.parseDouble(s); } catch (NumberFormatException nfe) { return false; } return true; } public static String translateLangBiocat(String lang) { String transLag="cat"; if(lang.equals("ca")) transLag="cat"; else if (lang.equals("es")) transLag="cas"; else if (lang.equals("en")) transLag="ang"; else if (lang.equals("fr")) transLag="fra"; return transLag; } public static boolean availableInternetConnection(Context baseContext){ ConnectivityManager connectivityManager = (ConnectivityManager)baseContext.getSystemService(Context.CONNECTIVITY_SERVICE); if(connectivityManager!=null) return connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting(); else return false; } public static List<String> splitToArrayList(String photos) { String[] splitted=photos.split("; "); List<String> wordList = Arrays.asList(splitted); return wordList; } public static boolean isNetworkConnected(Context baseContext) { ConnectivityManager cm = (ConnectivityManager) baseContext.getSystemService(Context.CONNECTIVITY_SERVICE); return (cm.getActiveNetworkInfo() != null); } }