13ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*
23ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
33ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Copyright 2001-2011 Texas Instruments, Inc. - http://www.ti.com/
43ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
53ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License");
63ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * you may not use this file except in compliance with the License.
73ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * You may obtain a copy of the License at
83ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
93ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *    http://www.apache.org/licenses/LICENSE-2.0
103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software
123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS,
133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * See the License for the specific language governing permissions and
153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * limitations under the License.
163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */
173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupackage com.ti.fmrxapp;
193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport java.util.ArrayList;
213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.Activity;
233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.AlertDialog;
243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.SharedPreferences;
253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.os.Bundle;
263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.util.Log;
273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.KeyEvent;
283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.View;
293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.AdapterView;
303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.ArrayAdapter;
313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.Button;
323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.CheckBox;
333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.EditText;
343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.Spinner;
353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.AdapterView.OnItemSelectedListener;
363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Intent;
373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.IntentFilter;
383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Context;
393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.CompoundButton;
403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupublic class FmRxRdsConfig extends Activity implements View.OnKeyListener,
423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        View.OnClickListener, CompoundButton.OnCheckedChangeListener,
433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        FmRxAppConstants {
443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final String TAG = "FmRxRdsConfig";
463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /********************************************
483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * Widgets
493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     ********************************************/
503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Button btnCancel, btnOk;
513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Spinner spnBand, spnDeEmp, spnRdsSystem, spnMode,
523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            spnChannelSpacing;;
533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private EditText textRssi;
543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private CheckBox chbRdsMode;
553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private CheckBox chbSetRdsAf;
563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> bandAdapter;
573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> channelSpaceAdapter;
583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> deEmpAdapter;
593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> rdsSystemAdapter;
603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> modeAdapter;
613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayAdapter<String> emptyAdapter;
623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> channelSpaceString = new ArrayList<String>();
633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> bandString = new ArrayList<String>();
653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> deEmpStrings = new ArrayList<String>();
663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> rdsSystemStrings = new ArrayList<String>();
673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> emptyStrings = new ArrayList<String>();
683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ArrayList<String> modeStrings = new ArrayList<String>();
693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /********************************************
713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * private variables
723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     ********************************************/
733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Context mContext;
743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /********************************************
763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * public variables
773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     ********************************************/
783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public SharedPreferences fmConfigPreferences;
793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Called when the activity is first created. */
813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onCreate(Bundle savedInstanceState) {
833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onCreate(savedInstanceState);
843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        setContentView(R.layout.fmrxrdsconfig);
853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        initControl();
863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        setSpinners();
873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        setRdsSystemSpinner();
883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Initialise the Widget controls of the Activity */
923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void initControl() {
933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnCancel = (Button) findViewById(R.id.btnCancel);
943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnCancel.setOnKeyListener(this);
953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnCancel.setOnClickListener(this);
963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk = (Button) findViewById(R.id.btnOk);
983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk.setOnKeyListener(this);
993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk.setOnClickListener(this);
1003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnRdsSystem = (Spinner) findViewById(R.id.spnRdsSystem);
1023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnBand = (Spinner) findViewById(R.id.spnBand);
1033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        //spnDeEmp = (Spinner) findViewById(R.id.spnEmp);
1043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnMode = (Spinner) findViewById(R.id.spnMode);
1053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnChannelSpacing = (Spinner) findViewById(R.id.spnChannelSpace);
1073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        textRssi = (EditText) findViewById(R.id.Rssi);
1093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbRdsMode = (CheckBox) findViewById(R.id.chbRdsmode);
1113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbRdsMode.setOnCheckedChangeListener(this);
1123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbSetRdsAf = (CheckBox) findViewById(R.id.chbSetRdsAf);
1143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbSetRdsAf.setOnCheckedChangeListener(this);
1153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /**
1183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * sets the Band , De-Emp Filter and Mode option selections Spinner for the
1193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * User
1203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     */
1213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void setSpinners() {
1223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // BAnd Spinner
1233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        bandAdapter = new ArrayAdapter<String>(this,
1243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, bandString);
1253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        bandAdapter
1273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
1283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnBand.setAdapter(bandAdapter);
1293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        bandAdapter.add("European");
1303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        bandAdapter.add("Japanese");
1313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnBand.setOnItemSelectedListener(gItemSelectedHandler);
1323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // ChannelSpace Spinner
1343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        channelSpaceAdapter = new ArrayAdapter<String>(this,
1353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, channelSpaceString);
1363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        channelSpaceAdapter
1383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
1393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnChannelSpacing.setAdapter(channelSpaceAdapter);
1403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        channelSpaceAdapter.add("50 KHZ");
1413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        channelSpaceAdapter.add("100 KHZ");
1423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        channelSpaceAdapter.add("200 KHZ");
1433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnChannelSpacing.setOnItemSelectedListener(gItemSelectedHandler);
1443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // De-Emp Spinner
1463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        /*deEmpAdapter = new ArrayAdapter<String>(this,
1473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, deEmpStrings);
1483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        deEmpAdapter
1503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
1513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnDeEmp.setAdapter(deEmpAdapter);
1523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        deEmpAdapter.add("0 sec");
1533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        deEmpAdapter.add("50 sec");
1543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        deEmpAdapter.add("75 sec");
1553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnDeEmp.setOnItemSelectedListener(gItemSelectedHandler);
1563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*/
1573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Mode(Mono/Stereo) Spinner
1583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        modeAdapter = new ArrayAdapter<String>(this,
1593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, modeStrings);
1603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        modeAdapter
1623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
1633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnMode.setAdapter(modeAdapter);
1643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        modeAdapter.add("STEREO");
1653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        modeAdapter.add("MONO");
1663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnMode.setOnItemSelectedListener(gItemSelectedHandler);
1673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** spinner to select Rds System option */
1713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void setRdsSystemSpinner() {
1723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsSystemAdapter = new ArrayAdapter<String>(this,
1743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, rdsSystemStrings);
1753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsSystemAdapter
1773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
1783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnRdsSystem.setAdapter(rdsSystemAdapter);
1793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsSystemAdapter.clear();
1803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsSystemAdapter.add("RDB");
1813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        //rdsSystemAdapter.add("RBDS");
1823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnRdsSystem.setOnItemSelectedListener(gItemSelectedHandler);
1833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Spinner with no options */
1873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void setEmptySpinner() {
1883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        emptyAdapter = new ArrayAdapter<String>(this,
1893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.layout.simple_spinner_item, emptyStrings);
1903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        emptyAdapter
1923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setDropDownViewResource(android.R.layout.select_dialog_item);
1933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnRdsSystem.setAdapter(emptyAdapter);
1943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        emptyAdapter.clear();
1953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        emptyAdapter.add(" RDS is Disabled ");
1963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnRdsSystem.setOnItemSelectedListener(gItemSelectedHandler);
1973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public OnItemSelectedListener gItemSelectedHandler = new OnItemSelectedListener() {
2013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void onItemSelected(AdapterView<?> arg0, View view, int arg2,
2023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                long arg3) {
2033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void onNothingSelected(AdapterView<?> arg0) {
2073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    };
2103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Pops up the alert Dialog */
2123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void showAlert(Context context, String title, String msg) {
2133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        new AlertDialog.Builder(context).setTitle(title).setIcon(
2153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                android.R.drawable.ic_dialog_alert).setMessage(msg)
2163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                .setNegativeButton(android.R.string.ok, null).show();
2173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
2193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onClick(View view) {
2213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onClick()");
2223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int id = view.getId();
2233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (id) {
2243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.btnCancel:
2253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            finish();
2263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.btnOk:
2283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            savePrefernces();
2293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        default:
2323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
2353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Send the Intent to Parent Activity */
2373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void sendRdsIntent() {
2383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Intent rdsIntent = new Intent();
2403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        setResult(RESULT_OK, rdsIntent);
2413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        finish();
2423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
2443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onCheckedChanged(CompoundButton view, boolean isChecked) {
2463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onCheckedChanged()");
2473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int id = view.getId();
2483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (id) {
2493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.chbSetRdsAf:
2503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.chbRdsmode:
2533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (isChecked) {
2553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                chbSetRdsAf.setEnabled(true);
2563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                setRdsSystemSpinner();
2573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            } else {
2583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                chbSetRdsAf.setChecked(false);
2593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                chbSetRdsAf.setEnabled(false);
2603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                setEmptySpinner();
2613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
2623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        default:
2653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
2693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
2713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int action = keyEvent.getAction();
2723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (keyCode == KeyEvent.KEYCODE_SOFT_RIGHT) {
2743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.v(TAG, "KEYCODE_SOFT_RIGHT ");
2753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            finish();
2763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
2773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (keyCode == KeyEvent.KEYCODE_SOFT_LEFT) {
2803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.v(TAG, "KEYCODE_SOFT_LEFT ");
2813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            savePrefernces();
2823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            // finish();
2833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
2843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (keyCode != KeyEvent.KEYCODE_DPAD_CENTER
2873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                && keyCode != KeyEvent.KEYCODE_DPAD_UP
2883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                && keyCode != KeyEvent.KEYCODE_DPAD_DOWN
2893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                && keyCode != KeyEvent.KEYCODE_ENTER) {
2903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return false;
2913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (action == KeyEvent.ACTION_UP) {
2943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            switch (keyCode) {
2953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_ENTER:
2963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_DPAD_CENTER:
2973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
2993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_DPAD_UP:
3013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
3033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_DPAD_DOWN:
3053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
3073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
3083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return true;
3103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onResume() {
3133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onResume();
3143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onResume()-Entered");
3153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        updateUiFromPreference();
3163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onPause() {
3193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onPause();
3203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onPause()-Entered");
3213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onStop() {
3253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onStop()-Entered");
3263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onStop();
3273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onRestart() {
3303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onRestart()-Entered");
3313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onRestart();
3323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Updates the UI with Default/last saved values */
3363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void updateUiFromPreference() {
3373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        fmConfigPreferences = getSharedPreferences("fmConfigPreferences",
3383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                MODE_PRIVATE);
3393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "updateUiFromPreference()");
3403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbRdsMode.setChecked(fmConfigPreferences.getBoolean(RDS, DEFAULT_RDS));
3423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        boolean rdsON = fmConfigPreferences.getBoolean(RDS, DEFAULT_RDS);
3433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (!rdsON) // Rds is Disabled
3453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        {
3463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            chbSetRdsAf.setChecked(false); // When the RDS is Disabled uncheck
3473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            // Rds Af checkbox
3483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            chbSetRdsAf.setEnabled(false); // When the RDS is Disabled disable
3493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            // Rds Af checkbox
3503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            setEmptySpinner(); // When the RDS is Disabled, disable RDS System
3513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            // spinner
3523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        } else// Rds Is Enable
3533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        {
3543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            chbSetRdsAf.setChecked(fmConfigPreferences.getBoolean(RDSAF,
3553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    DEFAULT_RDS_AF));
3563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            spnRdsSystem.setSelection(fmConfigPreferences.getInt(RDSSYSTEM,
3573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    DEFAULT_RDS_SYSTEM));
3583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        textRssi.setText(fmConfigPreferences.getString(RSSI_STRING,
3613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                DEF_RSSI_STRING));
3623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnBand.setSelection(fmConfigPreferences.getInt(BAND, DEFAULT_BAND));
3643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        //spnDeEmp.setSelection(fmConfigPreferences.getInt(DEEMP, DEFAULT_DEEMP));
3653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnMode.setSelection(fmConfigPreferences.getInt(MODE, DEFAULT_MODE));
3663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int pos = 1;
3683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (fmConfigPreferences.getInt(CHANNELSPACE, DEFAULT_CHANNELSPACE)) {
3693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 1:
3713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            pos = 0;
3723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
3733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 2:
3753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            pos = 1;
3763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
3773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 4:
3793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            pos = 2;
3803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
3813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        spnChannelSpacing.setSelection(pos);
3843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Saves Configuration settings in the Shared Preference */
3883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void savePrefernces() {
3893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "savePrefernces()");
3903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int mChannelSpacePos = 2;
3923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        fmConfigPreferences = getSharedPreferences("fmConfigPreferences",
3943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                MODE_PRIVATE);
3953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        SharedPreferences.Editor editor = fmConfigPreferences.edit();
3973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (chbRdsMode.isChecked()) {
3993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putBoolean(RDSAF, chbSetRdsAf.isChecked());
4003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putBoolean(RDS, chbRdsMode.isChecked());
4013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putInt(RDSSYSTEM, spnRdsSystem.getSelectedItemPosition());
4023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        } else {
4033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putBoolean(RDSAF, DEFAULT_RDS_AF);
4043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putBoolean(RDS, DEFAULT_RDS);
4053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            editor.putInt(RDSSYSTEM, DEFAULT_RDS_SYSTEM);
4063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putInt(BAND, spnBand.getSelectedItemPosition());
4093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        //editor.putInt(DEEMP, spnDeEmp.getSelectedItemPosition());
4113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putInt(MODE, spnMode.getSelectedItemPosition());
4133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (spnChannelSpacing.getSelectedItemPosition()) {
4153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 0:
4163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mChannelSpacePos = 1;
4173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
4183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 1:
4203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mChannelSpacePos = 2;
4213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
4223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case 2:
4243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mChannelSpacePos = 4;
4253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
4263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putInt(CHANNELSPACE, mChannelSpacePos);
4293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        try {
4313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            int rssiValue = Integer.parseInt(textRssi.getText().toString());
4323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            boolean valid = rssiValid(rssiValue);
4333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (valid || (textRssi.getText().toString() == null)) {
4343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                editor.putString(RSSI_STRING, textRssi.getText().toString());
4353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (textRssi.getText().toString() == null)
4363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    editor.putInt(RSSI, DEFAULT_RSSI);
4373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else {
4383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    editor.putInt(RSSI, rssiValue);
4393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
4403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                editor.commit();
4413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                sendRdsIntent();
4423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            } else {
4433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                new AlertDialog.Builder(this).setIcon(
4443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        android.R.drawable.ic_dialog_alert).setMessage(
4453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        "Enter valid RSSI value in range 1-127!!")
4463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        .setNegativeButton(android.R.string.ok, null).show();
4473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                textRssi.setText(null);
4483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
4493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        } catch (NumberFormatException nfe) {
4503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.d(TAG, "NumberFormatException:" + nfe.getMessage());
4513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            new AlertDialog.Builder(this).setIcon(
4523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    android.R.drawable.ic_dialog_alert).setMessage(
4533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Enter valid RSSI value in range 1-127!!")
4543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    .setNegativeButton(android.R.string.ok, null).show();
4553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            textRssi.setText(null);
4563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Checks the RSSI value for validity */
4613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private boolean rssiValid(int value) {
4623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        //Log.d(TAG, "rssiValid " + value);
4633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (value < RSSI_MIN || value > RSSI_MAX) {
4643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.d(TAG, "TAG,rssiValid %d." + value);
4653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return false;
4673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        } else
4683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
4693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
473