Promotion of fm.lnx.1.0-00009.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
964047 Ic9dc2ca3ef2c9c91400156be47da4a6c8620ce8c Stop recording only if its storage is unmounted
Change-Id: Icf5fabeb909e933e09830152bed7be42eb855438
CRs-Fixed: 964047
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 048fa3a..a774f31 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -212,6 +212,7 @@
private static final int AUDIO_FRAMES_COUNT_TO_IGNORE = 3;
private Object mRecordSinkLock = new Object();
private boolean mIsFMDeviceLoopbackActive = false;
+ private File mStoragePath = null;
private static final int FM_OFF_FROM_APPLICATION = 1;
private static final int FM_OFF_FROM_ANTENNA = 2;
@@ -540,8 +541,16 @@
|| (action.equals(Intent.ACTION_MEDIA_EJECT))) {
Log.d(LOGTAG, "ACTION_MEDIA_UNMOUNTED Intent received");
if (mFmRecordingOn == true) {
+ if (mStoragePath == null) {
+ Log.d(LOGTAG, "Storage path is null, doing nothing");
+ return;
+ }
try {
- stopRecording();
+ String state = Environment.getExternalStorageState(mStoragePath);
+ if (!Environment.MEDIA_MOUNTED.equals(state)) {
+ Log.d(LOGTAG, "Recording storage is not mounted, stop recording");
+ stopRecording();
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -1125,6 +1134,13 @@
}
+ mStoragePath = Environment.getExternalStorageDirectory();
+ Log.d(LOGTAG, "mStoragePath " + mStoragePath);
+ if (null == mStoragePath) {
+ Log.e(LOGTAG, "External Storage Directory is null");
+ return false;
+ }
+
mSampleFile = null;
File sampleDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/FMRecording");
if(!(sampleDir.mkdirs() || sampleDir.isDirectory()))
@@ -1221,7 +1237,7 @@
int sampleLength = (int)((System.currentTimeMillis() - mSampleStart)/1000 );
if (sampleLength == 0)
return;
- String state = Environment.getExternalStorageState();
+ String state = Environment.getExternalStorageState(mStoragePath);
Log.d(LOGTAG, "storage state is " + state);
if (Environment.MEDIA_MOUNTED.equals(state)) {
@@ -2264,16 +2280,6 @@
public boolean isSpeakerEnabled() {
return mSpeakerPhoneOn;
}
- public boolean isExternalStorageAvailable() {
- boolean mStorageAvail = false;
- String state = Environment.getExternalStorageState();
-
- if(Environment.MEDIA_MOUNTED.equals(state)){
- Log.d(LOGTAG, "device available");
- mStorageAvail = true;
- }
- return mStorageAvail;
- }
public void enableSpeaker(boolean speakerOn) {
Log.d(LOGTAG, "speakerOn: " + speakerOn);