FM: Fix the issue with band settings
- FM SOC require minimum 200khz bandwidth to get audio data.
- Restrict the user to enter minimum 100KHz diiference
between max & min freq in userband.
CRs-Fixed: 780919
Change-Id: Ic938110522d45ffe36e1be7a9c4d2ee48d841d97
diff --git a/fmapp2/res/values/strings.xml b/fmapp2/res/values/strings.xml
index 55b2932..8c5ba5c 100644
--- a/fmapp2/res/values/strings.xml
+++ b/fmapp2/res/values/strings.xml
@@ -273,6 +273,6 @@
<string name="band_sweep_choose">Choose Band Sweep Method</string>
<string name="set">Set</string>
<string name="cancel">Cancel</string>
- <string name="user_defind_band_msg">Enter Freq from range 76.0 - 108.0 and with min 1 channel spacing</string>
+ <string name="user_defind_band_msg">Enter Freq from range 76.0 - 108.0, with min 1 channel spacing and 100KHz space between max, min freq</string>
</resources>
diff --git a/fmapp2/src/com/caf/fmradio/Settings.java b/fmapp2/src/com/caf/fmradio/Settings.java
index e6adb21..de19f01 100644
--- a/fmapp2/src/com/caf/fmradio/Settings.java
+++ b/fmapp2/src/com/caf/fmradio/Settings.java
@@ -265,6 +265,7 @@
int noOfChannels = 0;
int channelSpacing = 0;
int preIndex;
+ int band_width;
if (key.equals(REGIONAL_BAND_KEY)) {
int curListIndex = FmSharedPreferences.getCurrentListIndex();
@@ -339,8 +340,10 @@
noOfChannels = 0;
max_freq = FmSharedPreferences.getUpperLimit();
min_freq = FmSharedPreferences.getLowerLimit();
- noOfChannels = (int) (max_freq - freq)/FmSharedPreferences.getFrequencyStepSize();
- if((freq > 0) && (freq < max_freq) && (freq >= 76000) && (noOfChannels > 0)) {
+ band_width = (int) (max_freq - freq);
+ noOfChannels = band_width/FmSharedPreferences.getFrequencyStepSize();
+ if((freq > 0) && (freq < max_freq) && (freq >= 76000)
+ && (noOfChannels > 0) && (band_width >= 100)) {
FmSharedPreferences.setLowerLimit((int)freq);
sendSettingsChangedIntent(FM_BAND_CHANGED);
setBandSummary(summaryBandItems.length - 1);
@@ -365,8 +368,10 @@
noOfChannels = 0;
min_freq = FmSharedPreferences.getLowerLimit();
max_freq = FmSharedPreferences.getUpperLimit();
- noOfChannels = (int) (freq - min_freq)/FmSharedPreferences.getFrequencyStepSize();
- if((freq > 0) && (freq > min_freq) && (freq <= 108000) && (noOfChannels > 0)) {
+ band_width = (int) (freq - min_freq);
+ noOfChannels = band_width/FmSharedPreferences.getFrequencyStepSize();
+ if((freq > 0) && (freq > min_freq) && (freq <= 108000)
+ && (noOfChannels > 0) && (band_width >= 100)) {
FmSharedPreferences.setUpperLimit((int)freq);
sendSettingsChangedIntent(FM_BAND_CHANGED);
setBandSummary(summaryBandItems.length - 1);