Disable the media button controls when in a call
This commit is contained in:
parent
9a982a709e
commit
605632f547
@ -23,6 +23,7 @@ import android.content.Intent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
public class MediaButtonReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
@ -31,9 +32,12 @@ public class MediaButtonReceiver extends BroadcastReceiver {
|
||||
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
if (settings.getBoolean("media_button", true)) {
|
||||
intent.setClass(context, PlaybackService.class);
|
||||
context.startService(intent);
|
||||
abortBroadcast();
|
||||
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
if (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE) {
|
||||
intent.setClass(context, PlaybackService.class);
|
||||
context.startService(intent);
|
||||
abortBroadcast();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,6 +105,7 @@ public class PlaybackService extends Service implements Handler.Callback, MediaP
|
||||
public InCallListener mCallListener;
|
||||
private boolean mIgnoreNextUp;
|
||||
private boolean mLoaded;
|
||||
private boolean mInCall;
|
||||
|
||||
private Method mIsWiredHeadsetOn;
|
||||
private Method mStartForeground;
|
||||
@ -558,6 +559,9 @@ public class PlaybackService extends Service implements Handler.Callback, MediaP
|
||||
|
||||
private boolean handleMediaKey(KeyEvent event)
|
||||
{
|
||||
if (mInCall)
|
||||
return false;
|
||||
|
||||
int action = event.getAction();
|
||||
|
||||
switch (event.getKeyCode()) {
|
||||
@ -626,10 +630,12 @@ public class PlaybackService extends Service implements Handler.Callback, MediaP
|
||||
switch (state) {
|
||||
case TelephonyManager.CALL_STATE_RINGING:
|
||||
case TelephonyManager.CALL_STATE_OFFHOOK:
|
||||
mInCall = true;
|
||||
if (!mPlayingBeforeCall)
|
||||
mPlayingBeforeCall = unsetFlag(FLAG_PLAYING);
|
||||
break;
|
||||
case TelephonyManager.CALL_STATE_IDLE:
|
||||
mInCall = false;
|
||||
if (mPlayingBeforeCall) {
|
||||
setFlag(FLAG_PLAYING);
|
||||
mPlayingBeforeCall = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user