diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3c5870021..730ca7e7d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -228,9 +228,7 @@ android:name=".externalevents.MusicPlaybackReceiver" android:enabled="false"> - - - + mediaReceivers = pm.queryBroadcastReceivers(mediaButtonIntent, + PackageManager.GET_INTENT_FILTERS | PackageManager.GET_RESOLVED_FILTER); + + + CharSequence[] newEntries = new CharSequence[mediaReceivers.size() + 1]; + CharSequence[] newValues = new CharSequence[mediaReceivers.size() + 1]; + newEntries[0] = getString(R.string.pref_default); + newValues[0] = "default"; + + int i = 1; + for (ResolveInfo resolveInfo : mediaReceivers) { + newEntries[i] = resolveInfo.activityInfo.loadLabel(pm); + newValues[i] = resolveInfo.activityInfo.packageName; + i++; + } + + final ListPreference audioPlayer = (ListPreference) findPreference("audio_player"); + audioPlayer.setEntries(newEntries); + audioPlayer.setEntryValues(newValues); } @Override protected String[] getPreferenceKeysWithSummary() { return new String[]{ + "audio_player", + "notification_mode_sms", + "notification_mode_k9mail", "pebble_emu_addr", - "pebble_emu_port" + "pebble_emu_port", }; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/MusicPlaybackReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/MusicPlaybackReceiver.java index 2952f7ef1..bb9f0839d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/MusicPlaybackReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/MusicPlaybackReceiver.java @@ -18,19 +18,6 @@ public class MusicPlaybackReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - int lastDot = action.lastIndexOf("."); - String source = action.substring(0, lastDot); - - if (!source.equals(mLastSource)) { - mLastSource = source; - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - SharedPreferences.Editor edit = sharedPrefs.edit(); - edit.putString("last_audiosource", mLastSource); - LOG.info("set last audiosource to " + mLastSource); - edit.apply(); - } - String artist = intent.getStringExtra("artist"); String album = intent.getStringExtra("album"); String track = intent.getStringExtra("track"); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java index 3b7213447..8a521679a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java @@ -54,23 +54,23 @@ public class GBMusicControlReceiver extends BroadcastReceiver { if (keyCode != -1) { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - String audioSource = sharedPrefs.getString("last_audiosource", null); + String audioPlayer = sharedPrefs.getString("audio_player", "default"); long eventtime = SystemClock.uptimeMillis(); Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, keyCode, 0); downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); - if (audioSource != null) { - downIntent.setPackage(audioSource); + if (!"default".equals(audioPlayer)) { + downIntent.setPackage(audioPlayer); } context.sendOrderedBroadcast(downIntent, null); Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, keyCode, 0); upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); - if (audioSource != null) { - upIntent.setPackage(audioSource); + if (audioPlayer != null) { + upIntent.setPackage(audioPlayer); } context.sendOrderedBroadcast(upIntent, null); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b175c5842..4df4ecf94 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,8 @@ General Settings Connect to device when Bluetooth turned on - + Preferred audio player + default Date and Time Sync time Sync time to device when connecting and when time or timezone changes on Android diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 41a36bed2..04ca66491 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -7,6 +7,10 @@ android:defaultValue="false" android:key="general_autoconnectonbluetooth" android:title="@string/pref_title_general_autoconnectonbluetooth" /> + + android:key="pref_key_pebble" + android:title="@string/pref_title_pebble_settings"> + android:summary="@string/pref_summary_pebble_forceprotocol" + android:title="@string/pref_title_pebble_forceprotocol" /> + android:summary="@string/pref_summary_pebble_forceuntested" + android:title="@string/pref_title_pebble_forceuntested" />