diff options
| author | Keith Packard <keithp@keithp.com> | 2016-06-15 22:33:55 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2016-06-15 22:33:55 -0700 | 
| commit | 7fd28830b6f7a20b35d85a92047ccb94c965fe29 (patch) | |
| tree | cc49bbe3d2d2d388736feaa5e784e48e0b1126ec | |
| parent | 96eb350d3dfc83f6dfb31bbab1427f9206acde79 (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.java | 21 | 
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(); | 
