diff --git a/Field Book/AndroidManifest.xml b/Field Book/AndroidManifest.xml index 3725a1929..9f29de2d9 100644 --- a/Field Book/AndroidManifest.xml +++ b/Field Book/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="212" + android:versionName="2.1.2" > arg0, View arg1, int position, long arg3) { - - fieldDialog2.dismiss(); - - switch (position) { - case 0: - createDialog(DIALOG_LOAD_FIELDFILECSV); - break; - - case 1: - createDialog(DIALOG_LOAD_FIELDFILEEXCEL); - break; - } - } - }; - fieldList2.setAdapter(new GenericArrayAdapter(this, R.layout.listitem_a, items6, csvListener)); - // list current field values fieldCurrentDialog = new Dialog(this, android.R.style.Theme_Holo_Light_Dialog); fieldCurrentDialog.setTitle(getString(R.string.fields)); @@ -647,14 +624,12 @@ public void onClick(View v) { String[] items5 = new String[] { getString(R.string.importfields), getString(R.string.listfieldimport)}; - - OnItemClickListener fieldListener = new OnItemClickListener() { - - public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) { + fieldList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView av, View arg1, int which, long arg3) { fieldDialog.dismiss(); - switch (position) { + switch (which) { case 0: fieldDialog2.show(); break; @@ -670,10 +645,9 @@ public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) } } - }; - - fieldList.setAdapter(new GenericArrayAdapter(this, R.layout.listitem_a, - items5, fieldListener)); + }); + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem_a, items5); + fieldList.setAdapter(itemsAdapter); // To configure location locationDialog = new Dialog(this, android.R.style.Theme_Holo_Light_Dialog); @@ -1569,9 +1543,9 @@ private String[] prepareSetup() + "," + ep.getString("Longitude", ""); else tagLocation += getString(R.string.location) + ": " + getString(R.string.none); - + if (MainActivity.dt.getTraitColumnsAsString() != null) - tagTraits = getString(R.string.traits) + ": " + MainActivity.dt.getTraitColumnsAsString2(); + tagTraits = getString(R.string.traits) + ""; else tagTraits = getString(R.string.traits) + ": " + getString(R.string.none); @@ -1596,8 +1570,6 @@ private String[] prepareSetup() private void updateSetupList() { - //GenericArrayAdapter ga = (GenericArrayAdapter) setupList.getAdapter(); - ArrayAdapter ga = (ArrayAdapter) setupList.getAdapter(); ga.clear(); @@ -1658,16 +1630,15 @@ public void onItemClick(AdapterView av, View v, int position, fFile = fFile.substring(0, fFile.length() -4); } - exportFile.setText(timeStamp.format(Calendar.getInstance().getTime()) + "_" + fFile); - - saveList.setAdapter(new GenericCheckedArrayAdapter(ConfigActivity.this, - R.layout.listitem3_a, MainActivity.dt.getRangeColumns(), saveListener)); - + exportFile.setText(timeStamp.format(Calendar.getInstance().getTime()) + "_" + fFile); + + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem3_a, MainActivity.dt.getRangeColumns()); + saveList.setAdapter(itemsAdapter); + for (int i = 0; i < saveList.getAdapter().getCount(); i++) { - saveList.setItemChecked(i, true); } - + saveDialog.show(); } @@ -1742,8 +1713,8 @@ private void showRateDialog() // Check or uncheck the list items based on existing // visibility if (traits != null) { - rateList.setAdapter(new GenericCheckedArrayAdapter( - ConfigActivity.this, R.layout.listitem2_a, traits, null)); + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem2_a, traits); + rateList.setAdapter(itemsAdapter); int count = rateList.getAdapter().getCount(); @@ -1757,6 +1728,28 @@ private void showRateDialog() } } + /* + csvList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView av, View arg1, int which, long arg3) { + dialog.dismiss(); + + Editor e = ep.edit(); + + e.putString("DROP3", traits[which]); + e.commit(); + + MainActivity.partialReload = true; + + updateSetupList(); + } + }); + + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem_a, traits); + csvList.setAdapter(itemsAdapter); + dialog.show(); + */ + + rateDialog.show(); } @@ -2004,7 +1997,7 @@ private void showFieldFileDialog() dialog.setCancelable(true); dialog.setCanceledOnTouchOutside(true); - ListView csvList = (ListView) dialog.findViewById(R.id.myList); + final ListView csvList = (ListView) dialog.findViewById(R.id.myList); Button csvButton = (Button) dialog.findViewById(R.id.closeBtn); csvButton.setOnClickListener(new OnClickListener(){ @@ -2014,13 +2007,11 @@ public void onClick(View v) { } }); - - OnItemClickListener listener = new OnItemClickListener() { - - public void onItemClick(AdapterView av, View arg1, int which, long arg3) { + csvList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView parent, View view, int position, long id) { dialog.dismiss(); - mChosenFile = mFileList[which]; + mChosenFile = mFileList[position]; Editor e = ep.edit(); @@ -2061,14 +2052,11 @@ public void onItemClick(AdapterView av, View arg1, int which, long arg3) { else importFieldMapDialog.show(); - //mHandler.post(importCSV); } - }; - - GenericArrayAdapter itemsAdapter = new GenericArrayAdapter(ConfigActivity.this, - R.layout.listitem_a, mFileList, listener); + }); - csvList.setAdapter(itemsAdapter); + ArrayAdapter adapter = new ArrayAdapter(this,R.layout.listitem_a, mFileList); + csvList.setAdapter(adapter); dialog.show(); } @@ -2077,6 +2065,9 @@ private void showFieldFileCSVDialog() { final Dialog dialog = new Dialog(ConfigActivity.this, android.R.style.Theme_Holo_Light_Dialog); + dialog.setCancelable(false); + dialog.setCanceledOnTouchOutside(false); + dialog.setTitle(getString(R.string.choosefieldfile) + ": " + mUserChoice); dialog.setContentView(R.layout.genericdialog); @@ -2091,72 +2082,64 @@ public void onClick(View v) { }); dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override public void onDismiss(DialogInterface dialog) { mUserChoice = ""; } }); - OnItemClickListener listener = new OnItemClickListener() { - - public void onItemClick(AdapterView av, View arg1, int which, long arg3) { - dialog.dismiss(); + csvList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView av, View arg1, int which, long arg3) { + dialog.dismiss(); mUserChoice = mFileList[which]; - mChosenFile = mUserChoice; + mChosenFile = mUserChoice; - if(mUserChoice.contains("/")){ - loadFileList(CSV,MainActivity.fieldImportPath + importDirectory + "/" + mUserChoice); + if (mUserChoice.contains("/")) { + loadFileList(CSV, MainActivity.fieldImportPath + importDirectory + "/" + mUserChoice); importDirectory = importDirectory + "/" + mUserChoice; showFieldFileCSVDialog(); return; } - Editor e = ep.edit(); - e.putString("FieldFile", mChosenFile); - e.commit(); - action = DIALOG_LOAD_FIELDFILECSV; + Editor e = ep.edit(); + e.putString("FieldFile", mChosenFile); + e.commit(); + action = DIALOG_LOAD_FIELDFILECSV; - try - { - importMain.removeAllViews(); - - FileReader fr = new FileReader(MainActivity.fieldImportPath + "/" - + mChosenFile); - CSVReader cr = new CSVReader(fr); + try { + importMain.removeAllViews(); - importColumns = cr.readNext(); - - for (String s : importColumns) - { - if (DataHelper.hasSpecialChars(s)) - { - columnFail = true; - break; - } - else - addRow(importMain, s); - } - } - catch (Exception n) - { - - } - - if (columnFail) - Toast.makeText(ConfigActivity.this, getString(R.string.columnfail), Toast.LENGTH_LONG).show(); - else - importFieldMapDialog.show(); - - //mHandler.post(importCSV); - } - }; - - GenericArrayAdapter itemsAdapter = new GenericArrayAdapter(ConfigActivity.this, - R.layout.listitem_a, mFileList, listener); - - csvList.setAdapter(itemsAdapter); + FileReader fr = new FileReader(MainActivity.fieldImportPath + "/" + importDirectory + "/" + + mChosenFile); + CSVReader cr = new CSVReader(fr); + + importColumns = cr.readNext(); + + for (String s : importColumns) { + if (DataHelper.hasSpecialChars(s)) { + columnFail = true; + break; + } else + addRow(importMain, s); + } + } catch (Exception n) { + + } + + mUserChoice = ""; + importDirectory = ""; + if (columnFail) + Toast.makeText(ConfigActivity.this, getString(R.string.columnfail), Toast.LENGTH_LONG).show(); + else + importFieldMapDialog.show(); + + //mHandler.post(importCSV); + } + }); + + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem_a, mFileList); + csvList.setAdapter(itemsAdapter); dialog.show(); } @@ -2179,11 +2162,9 @@ public void onClick(View v) { } }); - - OnItemClickListener listener = new OnItemClickListener() { - - public void onItemClick(AdapterView av, View arg1, int which, long arg3) { - dialog.dismiss(); + csvList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView av, View arg1, int which, long arg3) { + dialog.dismiss(); mChosenFile = mFileList[which]; @@ -2234,14 +2215,13 @@ public void onItemClick(AdapterView av, View arg1, int which, long arg3) { else importFieldMapDialog.show(); } - }; - - GenericArrayAdapter itemsAdapter = new GenericArrayAdapter(ConfigActivity.this, - R.layout.listitem_a, mFileList, listener); - - csvList.setAdapter(itemsAdapter); - - dialog.show(); + }); + + + + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem_a, mFileList); + csvList.setAdapter(itemsAdapter); + dialog.show(); } // Helper function to add rows to import dialog @@ -2690,24 +2670,22 @@ public void onClick(View v) { } }); - final OnItemClickListener setupListener = new OnItemClickListener(){ - - public void onItemClick(AdapterView arg0, View arg1, int position, - long arg3) { + setupList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView av, View arg1, int which, long arg3) { chooseBackupDialog.dismiss(); - - switch (position) + switch (which) { case 0: showDatabaseResetDialog1(); break; } } - }; + }); - setupList.setAdapter(new GenericArrayAdapter(ConfigActivity.this, R.layout.listitem_a2, - items, setupListener)); + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.listitem_a2, items); + setupList.setAdapter(itemsAdapter); + chooseBackupDialog.show(); chooseBackupDialog.show(); } diff --git a/Field Book/src/com/fieldbook/tracker/GenericCheckedArrayAdapter.java b/Field Book/src/com/fieldbook/tracker/GenericCheckedArrayAdapter.java deleted file mode 100644 index 567909098..000000000 --- a/Field Book/src/com/fieldbook/tracker/GenericCheckedArrayAdapter.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.fieldbook.tracker; - -import android.app.Activity; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ArrayAdapter; -import android.widget.CheckedTextView; -import android.widget.ListView; - -/** - * The difference between this and the basic Adapter, is that it throws key presses - * back up to the calling Activity. This allows items to be clickable when help is activated - */ -public class GenericCheckedArrayAdapter extends ArrayAdapter { - - Context context; - int layoutResourceId; - String data[] = null; - OnItemClickListener listener; - - public GenericCheckedArrayAdapter(Context context, int layoutResourceId, String[] data, OnItemClickListener listener) { - super(context, layoutResourceId, data); - this.layoutResourceId = layoutResourceId; - this.context = context; - this.data = data; - - this.listener = listener; - } - - @Override - public View getView(final int position, View convertView, final ViewGroup parent) { - View row = convertView; - Holder holder = null; - - if(row == null) - { - LayoutInflater inflater = ((Activity)context).getLayoutInflater(); - row = inflater.inflate(layoutResourceId, parent, false); - - holder = new Holder(); - holder.txt = (CheckedTextView)row.findViewById(R.id.spinnerTarget); - - holder.txt.setOnClickListener(new OnClickListener(){ - - public void onClick(View v) { - - CheckedTextView tv = (CheckedTextView) v; - tv.setChecked(!tv.isChecked()); - - ListView rateList = (ListView) parent; - - rateList.setItemChecked(position, tv.isChecked()); - - if (listener != null) - { - // This is necessary for controls such as the listview or spinner to work - // with the tips / hints when it is visible - listener.onItemClick((AdapterView) parent, v, position, v.getId()); - } - } - }); - - row.setTag(holder); - } - else - { - holder = (Holder)row.getTag(); - } - - holder.txt.setText(data[position]); - - return row; - } - - static class Holder - { - CheckedTextView txt; - } -} \ No newline at end of file diff --git a/Field Book/src/com/fieldbook/tracker/TraitEditorActivity.java b/Field Book/src/com/fieldbook/tracker/TraitEditorActivity.java index 3cf664d66..dccd797bf 100644 --- a/Field Book/src/com/fieldbook/tracker/TraitEditorActivity.java +++ b/Field Book/src/com/fieldbook/tracker/TraitEditorActivity.java @@ -21,6 +21,7 @@ import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; @@ -239,10 +240,8 @@ public void onItemClick(AdapterView parent, View view, int position, long id) } }; - OnItemSelectedListener formatListener = new OnItemSelectedListener() { - - public void onItemSelected(AdapterView arg0, View arg1, - int position, long arg3) { + format.setOnItemSelectedListener(new OnItemSelectedListener() { + public void onItemSelected(AdapterView av, View arg1, int position, long arg3) { // Change the layout of the dialog based on the trait if (position != currentPosition) { @@ -264,9 +263,10 @@ public void onItemSelected(AdapterView arg0, View arg1, public void onNothingSelected(AdapterView arg0) { } - }; + }); - setSpinner(format, data, formatListener); + ArrayAdapter itemsAdapter = new ArrayAdapter(this, R.layout.smallspinnerlayout2, data); + format.setAdapter(itemsAdapter); closeBtn.setOnClickListener(new OnClickListener() { @@ -595,14 +595,6 @@ public static boolean isBoolean(String str) { return true; } - // Helper function set spinner adapter and listener - private void setSpinner(Spinner spinner, String[] data, OnItemSelectedListener listener) { - GenericSpinnerAdapter adapter = new GenericSpinnerAdapter( - this, R.layout.smallspinnerlayout4, R.layout.smallspinnerlayout2, data, listener); - spinner.setAdapter(adapter); - - } - // Helper function to load data public static void loadData() { mAdapter = new TraitAdapter(thisActivity, MainActivity.dt.getAllTraitObjects(), traitListener); @@ -790,23 +782,16 @@ public void onClick(View v) { } }); - - OnItemClickListener listener = new OnItemClickListener() { - + csvList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView av, View arg1, int which, long arg3) { mChosenFile = mFileList[which]; - mHandler.post(importCSV); - importDialog.dismiss(); } - }; - - GenericArrayAdapter itemsAdapter = new GenericArrayAdapter(thisActivity, - R.layout.listitem_a, mFileList, listener); + }); + ArrayAdapter itemsAdapter = new ArrayAdapter(thisActivity, R.layout.listitem_a, mFileList); csvList.setAdapter(itemsAdapter); - importDialog.show(); }