Switch from GPLv2 to GPLv2+
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / ManageFrequenciesActivity.java
index 401cdc9d1559dd88a1090bf08508e13411a2ac50..0eef129e38e20037fce7b656cf3de58995b3d333 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program 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; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +33,7 @@ import android.view.inputmethod.*;
 import android.widget.*;
 import android.widget.AdapterView.*;
 
-import org.altusmetrum.altoslib_10.*;
+import org.altusmetrum.altoslib_11.*;
 
 class FrequencyItem {
        public AltosFrequency frequency;
@@ -125,6 +126,8 @@ public class ManageFrequenciesActivity extends Activity {
 
        private void done() {
 
+               set();
+
                if (changed) {
                        AltosFrequency[] frequencies = new AltosFrequency[frequencies_adapter.count()];
                        for (int i = 0; i < frequencies.length; i++)
@@ -164,6 +167,16 @@ public class ManageFrequenciesActivity extends Activity {
                load_item();
        }
 
+       private int find(AltosFrequency frequency) {
+               for (int pos = 0; pos < frequencies_adapter.getCount(); pos++) {
+                       FrequencyItem   item = frequencies_adapter.getItem(pos);
+                       if (item.frequency.frequency == frequency.frequency &&
+                           item.frequency.description.equals(frequency.description))
+                               return pos;
+               }
+               return -1;
+       }
+
        private int insert_item(AltosFrequency frequency) {
                FrequencyItem new_item = new FrequencyItem(frequency);
                int     pos;
@@ -200,11 +213,16 @@ public class ManageFrequenciesActivity extends Activity {
 
                try {
                        double  f = AltosParse.parse_double_locale(frequency_text);
+                       AltosFrequency frequency = new AltosFrequency(f, description_text);
+                       int pos;
 
-                       int pos = insert_item(new AltosFrequency(f, description_text));
+                       pos = find(frequency);
+                       if (pos < 0) {
+                               pos = insert_item(frequency);
+                               changed = true;
+                       }
                        frequencies_adapter.selected_item = -1;
                        select_item(pos);
-                       changed = true;
                } catch (ParseException pe) {
                }
                hide_keyboard();