summaryrefslogtreecommitdiffstats
path: root/src/com/android/fmradio/FmService.java
diff options
context:
space:
mode:
authorBenson Huang <benson.huang@mediatek.com>2015-03-25 00:14:58 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-03-25 00:14:58 +0000
commit3f85241cd6fec88073f7d471d261dd88147f53ec (patch)
treea7f8d807d76eb22b2d27dd22ade47cc3ca52f3b6 /src/com/android/fmradio/FmService.java
parent7a8034bebce15e3b062b2defff844d6aea173186 (diff)
parent06ba26e7da989bfab8e49fe7fae03efd563472ae (diff)
downloadandroid_packages_apps_FMRadio-3f85241cd6fec88073f7d471d261dd88147f53ec.tar.gz
android_packages_apps_FMRadio-3f85241cd6fec88073f7d471d261dd88147f53ec.tar.bz2
android_packages_apps_FMRadio-3f85241cd6fec88073f7d471d261dd88147f53ec.zip
am 06ba26e7: am 3e855750: am 4f33aa31: [FM] Earphone mode incoming call ringtone issue in loudspeaker
* commit '06ba26e7da989bfab8e49fe7fae03efd563472ae': [FM] Earphone mode incoming call ringtone issue in loudspeaker
Diffstat (limited to 'src/com/android/fmradio/FmService.java')
-rw-r--r--src/com/android/fmradio/FmService.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/com/android/fmradio/FmService.java b/src/com/android/fmradio/FmService.java
index 76aab98..d98e108 100644
--- a/src/com/android/fmradio/FmService.java
+++ b/src/com/android/fmradio/FmService.java
@@ -1927,6 +1927,10 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan
* @return true, success; false, fail;
*/
public boolean requestAudioFocus() {
+ if (FmUtils.getIsSpeakerModeOnFocusLost(mContext)) {
+ setForceUse(true);
+ FmUtils.setIsSpeakerModeOnFocusLost(mContext, false);
+ }
if (mIsAudioFocusHeld) {
return true;
}
@@ -2034,6 +2038,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan
}
}
handlePowerDown();
+ forceToHeadsetMode();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
@@ -2055,9 +2060,14 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan
}
}
handlePowerDown();
+ forceToHeadsetMode();
break;
case AudioManager.AUDIOFOCUS_GAIN:
+ if (FmUtils.getIsSpeakerModeOnFocusLost(mContext)) {
+ setForceUse(true);
+ FmUtils.setIsSpeakerModeOnFocusLost(mContext, false);
+ }
if ((mPowerStatus != POWER_UP) && mPausedByTransientLossOfFocus) {
final int bundleSize = 1;
mFmServiceHandler.removeMessages(FmListener.MSGID_POWERUP_FINISHED);
@@ -2078,6 +2088,14 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan
}
}
+ private void forceToHeadsetMode() {
+ if (mIsSpeakerUsed && isHeadSetIn()) {
+ AudioSystem.setForceUse(FOR_PROPRIETARY, AudioSystem.FORCE_NONE);
+ // save user's option to shared preferences.
+ FmUtils.setIsSpeakerModeOnFocusLost(mContext, true);
+ }
+ }
+
/**
* FM Radio listener record
*/