From 7fd28830b6f7a20b35d85a92047ccb94c965fe29 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 15 Jun 2016 22:33:55 -0700 Subject: [PATCH] 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 --- .../AltosDroid/ManageFrequenciesActivity.java | 21 +++++++++++++++++-- 1 file 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(); -- 2.30.2