X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FManageFrequenciesActivity.java;fp=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FManageFrequenciesActivity.java;h=0000000000000000000000000000000000000000;hb=8b53f860eb3171cd43e4bd0e440f2889bd810662;hp=d5101166e9524d6a512e09f17f63bf802d477ad5;hpb=4a257455b2dc57069c41e1845daf66239c5cbe1d;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java deleted file mode 100644 index d5101166..00000000 --- a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright © 2016 Keith Packard - * - * 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; 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 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -package org.altusmetrum.AltosDroid; - -import java.lang.ref.WeakReference; -import java.util.*; -import java.text.*; -import org.altusmetrum.AltosDroid.R; - -import android.app.Activity; -import android.content.*; -import android.graphics.*; -import android.os.*; -import android.view.*; -import android.view.View.*; -import android.view.inputmethod.*; -import android.widget.*; -import android.widget.AdapterView.*; - -import org.altusmetrum.altoslib_13.*; - -class FrequencyItem { - public AltosFrequency frequency; - public LinearLayout frequency_view = null; - public TextView pretty_view = null; - - private void update() { - if (pretty_view != null && frequency != null) - pretty_view.setText(frequency.toString()); - } - - public void realize(LinearLayout frequency_view, - TextView pretty_view) { - if (frequency_view != this.frequency_view || - pretty_view != this.pretty_view) - { - this.frequency_view = frequency_view; - this.pretty_view = pretty_view; - update(); - } - } - - public void set_frequency(AltosFrequency frequency) { - this.frequency = frequency; - update(); - } - - public FrequencyItem(AltosFrequency frequency) { - this.frequency = frequency; - } -} - -class FrequencyAdapter extends ArrayAdapter { - int resource; - int selected_item = -1; - - public FrequencyAdapter(Context context, int in_resource) { - super(context, in_resource); - resource = in_resource; - } - - public int count() { - int count; - - for (count = 0;; count++) { - try { - getItem(count); - } catch (IndexOutOfBoundsException ie) { - return count; - } - } - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - FrequencyItem item = getItem(position); - if (item.frequency_view == null) { - LinearLayout frequency_view = new LinearLayout(getContext()); - String inflater = Context.LAYOUT_INFLATER_SERVICE; - LayoutInflater li = (LayoutInflater) getContext().getSystemService(inflater); - li.inflate(resource, frequency_view, true); - - item.realize(frequency_view, - (TextView) frequency_view.findViewById(R.id.frequency)); - } - if (position == selected_item) - item.frequency_view.setBackgroundColor(Color.RED); - else - item.frequency_view.setBackgroundColor(Color.BLACK); - return item.frequency_view; - } -} - -public class ManageFrequenciesActivity extends Activity { - private ListView frequencies_view; - - private Button set; - private Button remove; - private Button done; - - private EditText set_frequency; - private EditText set_description; - - private HashMap frequencies = new HashMap();; - - private FrequencyAdapter frequencies_adapter; - - private boolean is_bound; - private boolean changed = false; - - private void done() { - - set(); - - if (changed) { - AltosFrequency[] frequencies = new AltosFrequency[frequencies_adapter.count()]; - for (int i = 0; i < frequencies.length; i++) - frequencies[i] = frequencies_adapter.getItem(i).frequency; - AltosPreferences.set_common_frequencies(frequencies); - } - - Intent intent = new Intent(); - setResult(Activity.RESULT_OK, intent); - finish(); - } - - private void load_item() { - if (frequencies_adapter.selected_item >= 0) { - FrequencyItem item = frequencies_adapter.getItem(frequencies_adapter.selected_item); - - set_frequency.setText(item.frequency.frequency_string()); - set_description.setText(item.frequency.description); - } else { - set_frequency.setText(""); - set_description.setText(""); - } - } - - private void select_item(int position) { - if (position != frequencies_adapter.selected_item) { - if (frequencies_adapter.selected_item >= 0) - frequencies_view.setItemChecked(frequencies_adapter.selected_item, false); - if (position >= 0) - frequencies_view.setItemChecked(position, true); - frequencies_adapter.selected_item = position; - } else { - if (frequencies_adapter.selected_item >= 0) - frequencies_view.setItemChecked(frequencies_adapter.selected_item, false); - frequencies_adapter.selected_item = -1; - } - 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; - for (pos = 0; pos < frequencies_adapter.getCount(); pos++) { - FrequencyItem item = frequencies_adapter.getItem(pos); - if (item.frequency.frequency == new_item.frequency.frequency) { - item.set_frequency(frequency); - return pos; - } - if (item.frequency.frequency > new_item.frequency.frequency) - break; - } - frequencies_adapter.insert(new_item, pos); - return pos; - } - - private class FrequencyItemClickListener implements ListView.OnItemClickListener { - @Override - public void onItemClick(AdapterView av, View v, int position, long id) { - select_item(position); - } - } - - private void hide_keyboard() { - InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); - View view = getCurrentFocus(); - if (view != null) - imm.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - - private void set() { - String frequency_text = set_frequency.getEditableText().toString(); - String description_text = set_description.getEditableText().toString(); - - try { - double f = AltosParse.parse_double_locale(frequency_text); - AltosFrequency frequency = new AltosFrequency(f, description_text); - int pos; - - pos = find(frequency); - if (pos < 0) { - pos = insert_item(frequency); - changed = true; - } - frequencies_adapter.selected_item = -1; - select_item(pos); - } catch (ParseException pe) { - } - hide_keyboard(); - } - - private void remove() { - if (frequencies_adapter.selected_item >= 0) { - frequencies_adapter.remove(frequencies_adapter.getItem(frequencies_adapter.selected_item)); - select_item(-1); - frequencies_view.setAdapter(frequencies_adapter); - changed = true; - } - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // Setup the window - requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); - setContentView(R.layout.manage_frequencies); - - frequencies_view = (ListView) findViewById(R.id.frequencies); - frequencies_view.setClickable(true); - - frequencies_adapter = new FrequencyAdapter(this, R.layout.frequency); - - frequencies_view.setAdapter(frequencies_adapter); - frequencies_view.setOnItemClickListener(new FrequencyItemClickListener()); - - AltosFrequency[] frequencies = AltosPreferences.common_frequencies(); - for (AltosFrequency frequency : frequencies) - insert_item(frequency); - - set_frequency = (EditText) findViewById(R.id.set_frequency); - set_description = (EditText) findViewById(R.id.set_description); - - set = (Button) findViewById(R.id.set); - set.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - set(); - } - }); - - remove = (Button) findViewById(R.id.remove); - remove.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - remove(); - } - }); - - done = (Button) findViewById(R.id.done); - done.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - done(); - } - }); - - // Set result CANCELED incase the user backs out - setResult(Activity.RESULT_CANCELED); - } - - @Override - protected void onStart() { - super.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - } -}