Merge "FMRecord: Handle shutdown intent"
diff --git a/fmapp/src/com/codeaurora/fmradio/FMRadioService.java b/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
index 3ca96e9..d0270ca 100644
--- a/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
+++ b/fmapp/src/com/codeaurora/fmradio/FMRadioService.java
@@ -765,7 +765,6 @@
Log.d(LOGTAG, "FMRadio: Requesting to stop FM");
AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
AudioSystem.DEVICE_STATE_UNAVAILABLE, "");
- sendRecordServiceIntent(RECORD_STOP);
}
mPlaybackInProgress = false;
}
@@ -1640,6 +1639,7 @@
Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
}
+ sendRecordServiceIntent(RECORD_STOP);
if (isAnalogModeEnabled()) {
SystemProperties.set("hw.fm.isAnalog","false");
misAnalogPathEnabled = false;
diff --git a/fmapp/src/com/codeaurora/fmradio/Settings.java b/fmapp/src/com/codeaurora/fmradio/Settings.java
index d5222c9..f29c3df 100644
--- a/fmapp/src/com/codeaurora/fmradio/Settings.java
+++ b/fmapp/src/com/codeaurora/fmradio/Settings.java
@@ -292,7 +292,13 @@
}
}else if(key.equals(USER_DEFINED_BAND_MIN_KEY)) {
String valStr = mUserBandMinPref.getText();
- double freq = Double.parseDouble(valStr) * 1000;
+ double freq = 0;
+ try {
+ freq = Double.parseDouble(valStr) * 1000;
+ }catch(NumberFormatException e) {
+ e.printStackTrace();
+ return;
+ }
max_freq = FmSharedPreferences.getUpperLimit();
min_freq = FmSharedPreferences.getLowerLimit();
if((freq > 0) && (freq < max_freq) && (freq >= 76000)) {
@@ -305,7 +311,13 @@
}
}else if(key.equals(USER_DEFINED_BAND_MAX_KEY)) {
String valStr = mUserBandMaxPref.getText();
- double freq = Double.parseDouble(valStr) * 1000;
+ double freq = 0;
+ try {
+ freq = Double.parseDouble(valStr) * 1000;
+ }catch(NumberFormatException e) {
+ e.printStackTrace();
+ return;
+ }
min_freq = FmSharedPreferences.getLowerLimit();
max_freq = FmSharedPreferences.getUpperLimit();
if((freq > 0) && (freq > min_freq) && (freq <= 108000)) {
diff --git a/fmapp2/res/values-zh-rCN/arrays.xml b/fmapp2/res/values-zh-rCN/arrays.xml
index d0a95a0..773dd45 100644
--- a/fmapp2/res/values-zh-rCN/arrays.xml
+++ b/fmapp2/res/values-zh-rCN/arrays.xml
@@ -160,6 +160,7 @@
<item>土耳其</item>
<item>英国</item>
<item>美国</item>
+ <item>用户定义的乐队</item>
</string-array>
<string-array name="regional_band_summary">
@@ -199,5 +200,6 @@
<item>土耳其 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
<item>英国 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
<item>美国 (88.1MHz - 107.9MHz ,步长 200 Khz)</item>
+ <item>用户定义的乐队</item>
</string-array>
</resources>
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index c33bbbd..335ce4f 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -532,6 +532,7 @@
if (station != null) {
mTunedStation.Copy(station);
}
+ mStereo = FmSharedPreferences.getLastAudioMode();
mHandler.post(mUpdateProgramService);
mHandler.post(mUpdateRadioText);
mHandler.post(mOnStereo);
@@ -2593,6 +2594,7 @@
}else {
mStereoTV.setText("");
}
+ FmSharedPreferences.setLastAudioMode(mStereo);
}
};
@@ -2954,6 +2956,7 @@
}
cleanupTimeoutHandler();
mHandler.post(mUpdateStationInfo);
+ mHandler.post(mOnStereo);
}
public void onProgramServiceChanged() {
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 5dfe72d..fb36a9c 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -762,7 +762,6 @@
Log.d(LOGTAG, "FMRadio: Requesting to stop FM");
AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
AudioSystem.DEVICE_STATE_UNAVAILABLE, "");
- sendRecordServiceIntent(RECORD_STOP);
}
mPlaybackInProgress = false;
}
@@ -1637,6 +1636,7 @@
Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
}
+ sendRecordServiceIntent(RECORD_STOP);
if (isAnalogModeEnabled()) {
SystemProperties.set("hw.fm.isAnalog","false");
misAnalogPathEnabled = false;
@@ -2500,7 +2500,7 @@
}
/* Update the frequency in the StatusBar's Notification */
startNotification();
-
+ enableStereo(FmSharedPreferences.getAudioOutputMode());
}
catch (RemoteException e)
{
diff --git a/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
index 53e43f7..bf8119a 100644
--- a/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
+++ b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
@@ -137,7 +137,6 @@
private static final String LAST_RECORD_DURATION = "last_record_duration";
private static String LAST_AF_JUMP_VALUE = "last_af_jump_value";
private static final String AUDIO_OUTPUT_MODE = "audio_output_mode";
-
private static Map<String, String> mNameMap = new HashMap<String, String>();
private static List<PresetList> mListOfPlists = new ArrayList<PresetList>();
public static Set[] tagList = new TreeSet[FmSharedPreferences.MAX_NUM_TAG_TYPES];
@@ -166,6 +165,7 @@
private static boolean mAudioOutputMode = true;
private static boolean mAFAutoSwitch = true;
private static int mRecordDuration = 0;
+ private static int mLastAudioMode = -1;
FmSharedPreferences(Context context){
mContext = context.getApplicationContext();
@@ -449,6 +449,7 @@
mTunedFrequency = sp.getInt(PREF_LAST_TUNED_FREQUENCY, DEFAULT_NO_FREQUENCY);
mRecordDuration = sp.getInt(LAST_RECORD_DURATION, RECORD_DUR_INDEX_0_VAL);
mAFAutoSwitch = sp.getBoolean(LAST_AF_JUMP_VALUE, true);
+ mAudioOutputMode = sp.getBoolean(AUDIO_OUTPUT_MODE, true);
if(sp.getInt(FMCONFIG_COUNTRY, 0) == REGIONAL_BAND_USER_DEFINED) {
mBandMinFreq = sp.getInt(FMCONFIG_MIN, mBandMinFreq);
@@ -556,6 +557,7 @@
}
ed.putInt(LAST_RECORD_DURATION, mRecordDuration);
ed.putBoolean(LAST_AF_JUMP_VALUE, mAFAutoSwitch);
+ ed.putBoolean(AUDIO_OUTPUT_MODE, mAudioOutputMode);
ed.commit();
}
@@ -1119,6 +1121,13 @@
return mAudioOutputMode;
}
+ public static int getLastAudioMode() {
+ return mLastAudioMode;
+ }
+
+ public static void setLastAudioMode(int audiomode) {
+ mLastAudioMode = audiomode;
+ }
public static void setRecordDuration(int durationIndex) {
Log.d(LOGTAG, "setRecordDuration "+durationIndex);
diff --git a/fmapp2/src/com/caf/fmradio/Settings.java b/fmapp2/src/com/caf/fmradio/Settings.java
index c5683f1..328126a 100644
--- a/fmapp2/src/com/caf/fmradio/Settings.java
+++ b/fmapp2/src/com/caf/fmradio/Settings.java
@@ -300,7 +300,13 @@
clearStationList();
}else if(key.equals(USER_DEFINED_BAND_MIN_KEY)) {
String valStr = mUserBandMinPref.getText();
- double freq = Double.parseDouble(valStr) * 1000;
+ double freq = 0;
+ try {
+ freq = Double.parseDouble(valStr) * 1000;
+ }catch(NumberFormatException e) {
+ e.printStackTrace();
+ return;
+ }
max_freq = FmSharedPreferences.getUpperLimit();
min_freq = FmSharedPreferences.getLowerLimit();
if((freq > 0) && (freq < max_freq) && (freq >= 76000)) {
@@ -314,7 +320,13 @@
}
}else if(key.equals(USER_DEFINED_BAND_MAX_KEY)) {
String valStr = mUserBandMaxPref.getText();
- double freq = Double.parseDouble(valStr) * 1000;
+ double freq = 0;
+ try {
+ freq = Double.parseDouble(valStr) * 1000;
+ }catch(NumberFormatException e) {
+ e.printStackTrace();
+ return;
+ }
min_freq = FmSharedPreferences.getLowerLimit();
max_freq = FmSharedPreferences.getUpperLimit();
if((freq > 0) && (freq > min_freq) && (freq <= 108000)) {
@@ -374,6 +386,7 @@
// Mono
FmSharedPreferences.setAudioOutputMode(false);
}
+ mPrefs.Save();
FMRadio.fmAudioOutputMode();
}
}