unify media button receivers
This commit is contained in:
parent
4b4743fbb9
commit
280321a321
@ -331,11 +331,6 @@
|
|||||||
android:scheme="package"/>
|
android:scheme="package"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<receiver android:name="de.danoeh.antennapod.core.service.playback.MediaButtonIntentReceiver">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MEDIA_BUTTON" />
|
|
||||||
</intent-filter>
|
|
||||||
</receiver>
|
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="de.danoeh.antennapod.core.glide.ApGlideModule"
|
android:name="de.danoeh.antennapod.core.glide.ApGlideModule"
|
||||||
|
@ -13,6 +13,7 @@ import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
|||||||
public class MediaButtonReceiver extends BroadcastReceiver {
|
public class MediaButtonReceiver extends BroadcastReceiver {
|
||||||
private static final String TAG = "MediaButtonReceiver";
|
private static final String TAG = "MediaButtonReceiver";
|
||||||
public static final String EXTRA_KEYCODE = "de.danoeh.antennapod.core.service.extra.MediaButtonReceiver.KEYCODE";
|
public static final String EXTRA_KEYCODE = "de.danoeh.antennapod.core.service.extra.MediaButtonReceiver.KEYCODE";
|
||||||
|
public static final String EXTRA_SOURCE = "de.danoeh.antennapod.core.service.extra.MediaButtonReceiver.SOURCE";
|
||||||
|
|
||||||
public static final String NOTIFY_BUTTON_RECEIVER = "de.danoeh.antennapod.NOTIFY_BUTTON_RECEIVER";
|
public static final String NOTIFY_BUTTON_RECEIVER = "de.danoeh.antennapod.NOTIFY_BUTTON_RECEIVER";
|
||||||
|
|
||||||
@ -20,11 +21,11 @@ public class MediaButtonReceiver extends BroadcastReceiver {
|
|||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.d(TAG, "Received intent");
|
Log.d(TAG, "Received intent");
|
||||||
KeyEvent event = (KeyEvent) intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
|
KeyEvent event = (KeyEvent) intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
|
||||||
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
if (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount()==0) {
|
||||||
ClientConfig.initialize(context);
|
ClientConfig.initialize(context);
|
||||||
Intent serviceIntent = new Intent(context, PlaybackService.class);
|
Intent serviceIntent = new Intent(context, PlaybackService.class);
|
||||||
int keycode = event.getKeyCode();
|
serviceIntent.putExtra(EXTRA_KEYCODE, event.getKeyCode());
|
||||||
serviceIntent.putExtra(EXTRA_KEYCODE, keycode);
|
serviceIntent.putExtra(EXTRA_SOURCE, event.getSource());
|
||||||
context.startService(serviceIntent);
|
context.startService(serviceIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
package de.danoeh.antennapod.core.service.playback;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
|
|
||||||
public class MediaButtonIntentReceiver extends BroadcastReceiver {
|
|
||||||
|
|
||||||
private static final String TAG = "MediaButtonIntentRcver";
|
|
||||||
|
|
||||||
private static PlaybackService mPlaybackService;
|
|
||||||
|
|
||||||
public static void setMediaPlayer(PlaybackService playbackService) {
|
|
||||||
mPlaybackService = playbackService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
Log.d(TAG, "onReceive(Context, " + intent.toString() +")");
|
|
||||||
if (mPlaybackService != null && Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
|
|
||||||
KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
|
|
||||||
if (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
|
|
||||||
mPlaybackService.handleKeycode(event.getKeyCode(), event.getSource());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -250,8 +250,7 @@ public class PlaybackService extends Service implements SharedPreferences.OnShar
|
|||||||
taskManager = new PlaybackServiceTaskManager(this, taskManagerCallback);
|
taskManager = new PlaybackServiceTaskManager(this, taskManagerCallback);
|
||||||
mediaPlayer = new PlaybackServiceMediaPlayer(this, mediaPlayerCallback);
|
mediaPlayer = new PlaybackServiceMediaPlayer(this, mediaPlayerCallback);
|
||||||
|
|
||||||
MediaButtonIntentReceiver.setMediaPlayer(this);
|
ComponentName eventReceiver = new ComponentName(getPackageName(), MediaButtonReceiver.class.getName());
|
||||||
ComponentName eventReceiver = new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName());
|
|
||||||
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
||||||
mediaButtonIntent.setComponent(eventReceiver);
|
mediaButtonIntent.setComponent(eventReceiver);
|
||||||
PendingIntent buttonReceiverIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent buttonReceiverIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
@ -284,7 +283,6 @@ public class PlaybackService extends Service implements SharedPreferences.OnShar
|
|||||||
|
|
||||||
PreferenceManager.getDefaultSharedPreferences(this)
|
PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
.unregisterOnSharedPreferenceChangeListener(this);
|
.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
MediaButtonIntentReceiver.setMediaPlayer(null);
|
|
||||||
unregisterReceiver(headsetDisconnected);
|
unregisterReceiver(headsetDisconnected);
|
||||||
unregisterReceiver(shutdownReceiver);
|
unregisterReceiver(shutdownReceiver);
|
||||||
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||||
@ -333,7 +331,8 @@ public class PlaybackService extends Service implements SharedPreferences.OnShar
|
|||||||
|
|
||||||
if (keycode != -1) {
|
if (keycode != -1) {
|
||||||
Log.d(TAG, "Received media button event");
|
Log.d(TAG, "Received media button event");
|
||||||
handleKeycode(keycode, InputDevice.SOURCE_CLASS_NONE);
|
handleKeycode(keycode, intent.getIntExtra(MediaButtonReceiver.EXTRA_SOURCE,
|
||||||
|
InputDevice.SOURCE_CLASS_NONE));
|
||||||
} else {
|
} else {
|
||||||
started = true;
|
started = true;
|
||||||
boolean stream = intent.getBooleanExtra(EXTRA_SHOULD_STREAM,
|
boolean stream = intent.getBooleanExtra(EXTRA_SHOULD_STREAM,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user