summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-06-15 22:33:55 -0700
committerKeith Packard <keithp@keithp.com>2016-06-15 22:33:55 -0700
commit7fd28830b6f7a20b35d85a92047ccb94c965fe29 (patch)
treecc49bbe3d2d2d388736feaa5e784e48e0b1126ec
parent96eb350d3dfc83f6dfb31bbab1427f9206acde79 (diff)
altosdroid: Auto save freq changes on 'ok'
Add any pending changes in the edit entries to the frequency set when the user selects 'ok'. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
index 1e92b89f..d8fd92df 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
@@ -125,6 +125,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 +166,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 +212,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();