Started implementing Bluetooth connection settings

This commit is contained in:
Nite 2020-09-25 19:03:53 +02:00
parent d189026c18
commit 046916221d
No known key found for this signature in database
GPG Key ID: 1D1AD59B1C6386C1
6 changed files with 41 additions and 15 deletions

View File

@ -64,6 +64,8 @@ public class SettingsFragment extends PreferenceFragment
private EditTextPreference sharingDefaultGreeting; private EditTextPreference sharingDefaultGreeting;
private TimeSpanPreference sharingDefaultExpiration; private TimeSpanPreference sharingDefaultExpiration;
private PreferenceCategory serversCategory; private PreferenceCategory serversCategory;
private Preference resumeOnBluetoothDevice;
private Preference pauseOnBluetoothDevice;
private SharedPreferences settings; private SharedPreferences settings;
@ -110,6 +112,8 @@ public class SettingsFragment extends PreferenceFragment
sharingDefaultGreeting = (EditTextPreference) findPreference(Constants.PREFERENCES_KEY_DEFAULT_SHARE_GREETING); sharingDefaultGreeting = (EditTextPreference) findPreference(Constants.PREFERENCES_KEY_DEFAULT_SHARE_GREETING);
sharingDefaultExpiration = (TimeSpanPreference) findPreference(Constants.PREFERENCES_KEY_DEFAULT_SHARE_EXPIRATION); sharingDefaultExpiration = (TimeSpanPreference) findPreference(Constants.PREFERENCES_KEY_DEFAULT_SHARE_EXPIRATION);
serversCategory = (PreferenceCategory) findPreference(Constants.PREFERENCES_KEY_SERVERS_KEY); serversCategory = (PreferenceCategory) findPreference(Constants.PREFERENCES_KEY_SERVERS_KEY);
resumeOnBluetoothDevice = findPreference(Constants.PREFERENCES_KEY_RESUME_ON_BLUETOOTH_DEVICE);
pauseOnBluetoothDevice = findPreference(Constants.PREFERENCES_KEY_PAUSE_ON_BLUETOOTH_DEVICE);
sharingDefaultGreeting.setText(Util.getShareGreeting(getActivity())); sharingDefaultGreeting.setText(Util.getShareGreeting(getActivity()));
setupClearSearchPreference(); setupClearSearchPreference();
@ -199,6 +203,18 @@ public class SettingsFragment extends PreferenceFragment
}); });
} }
private void setupBluetoothDevicePreferences() {
resumeOnBluetoothDevice.setSummary(settings.getString(Constants.PREFERENCES_KEY_CACHE_LOCATION,
FileUtil.getDefaultMusicDirectory(getActivity()).getPath()));
resumeOnBluetoothDevice.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
return true;
}
});
}
private void setupClearSearchPreference() { private void setupClearSearchPreference() {
Preference clearSearchPreference = findPreference(Constants.PREFERENCES_KEY_CLEAR_SEARCH_HISTORY); Preference clearSearchPreference = findPreference(Constants.PREFERENCES_KEY_CLEAR_SEARCH_HISTORY);

View File

@ -19,17 +19,10 @@ public class A2dpIntentReceiver extends BroadcastReceiver
@Override @Override
public void onReceive(Context context, Intent intent) public void onReceive(Context context, Intent intent)
{ {
if (mediaPlayerControllerLazy.getValue().getCurrentPlaying() == null) if (mediaPlayerControllerLazy.getValue().getCurrentPlaying() == null) return;
{
return;
}
Entry song = mediaPlayerControllerLazy.getValue().getCurrentPlaying().getSong(); Entry song = mediaPlayerControllerLazy.getValue().getCurrentPlaying().getSong();
if (song == null) return;
if (song == null)
{
return;
}
Intent avrcpIntent = new Intent(PLAYSTATUS_RESPONSE); Intent avrcpIntent = new Intent(PLAYSTATUS_RESPONSE);

View File

@ -34,7 +34,6 @@ import org.moire.ultrasonic.util.Util;
*/ */
public class BluetoothIntentReceiver extends BroadcastReceiver public class BluetoothIntentReceiver extends BroadcastReceiver
{ {
private static final String TAG = BluetoothIntentReceiver.class.getSimpleName(); private static final String TAG = BluetoothIntentReceiver.class.getSimpleName();
@Override @Override
@ -43,9 +42,10 @@ public class BluetoothIntentReceiver extends BroadcastReceiver
int state = intent.getIntExtra("android.bluetooth.a2dp.extra.SINK_STATE", -1); int state = intent.getIntExtra("android.bluetooth.a2dp.extra.SINK_STATE", -1);
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String action = intent.getAction(); String action = intent.getAction();
String name = device != null ? device.getName() : "None"; String name = device != null ? device.getName() : "Unknown";
String address = device != null ? device.getAddress() : "Unknown";
Log.d(TAG, String.format("Sink State: %d; Action: %s; Device: %s", state, action, name)); Log.d(TAG, String.format("Sink State: %d; Action: %s; Device: %s; Address: %s", state, action, name, address));
boolean actionConnected = false; boolean actionConnected = false;
boolean actionDisconnected = false; boolean actionDisconnected = false;
@ -64,13 +64,13 @@ public class BluetoothIntentReceiver extends BroadcastReceiver
if (connected) if (connected)
{ {
Log.i(TAG, "Connected to Bluetooth device, requesting media button focus."); Log.i(TAG, String.format("Connected to Bluetooth device %s address %s, requesting media button focus.", name, address));
Util.registerMediaButtonEventReceiver(context, false); Util.registerMediaButtonEventReceiver(context, false);
} }
if (disconnected) if (disconnected)
{ {
Log.i(TAG, "Disconnected from Bluetooth device, requesting pause."); Log.i(TAG, String.format("Disconnected from Bluetooth device %s address %s, requesting pause.", name, address));
context.sendBroadcast(new Intent(Constants.CMD_PAUSE)); context.sendBroadcast(new Intent(Constants.CMD_PAUSE));
} }
} }

View File

@ -131,6 +131,12 @@ public final class Constants
public static final String PREFERENCES_KEY_USE_FIVE_STAR_RATING = "use_five_star_rating"; public static final String PREFERENCES_KEY_USE_FIVE_STAR_RATING = "use_five_star_rating";
public static final String PREFERENCES_KEY_CATEGORY_NOTIFICATIONS = "notificationsCategory"; public static final String PREFERENCES_KEY_CATEGORY_NOTIFICATIONS = "notificationsCategory";
public static final String PREFERENCES_KEY_FIRST_RUN_EXECUTED = "firstRunExecuted"; public static final String PREFERENCES_KEY_FIRST_RUN_EXECUTED = "firstRunExecuted";
public static final String PREFERENCES_KEY_RESUME_ON_BLUETOOTH_DEVICE = "resumeOnBluetoothDevice";
public static final String PREFERENCES_KEY_PAUSE_ON_BLUETOOTH_DEVICE = "pauseOnBluetoothDevice";
public static final String PREFERENCE_VALUE_ALL = "all";
public static final String PREFERENCE_VALUE_A2DP = "a2dp";
public static final String PREFERENCE_VALUE_DISABLED = "disabled";
// Number of free trial days for non-licensed servers. // Number of free trial days for non-licensed servers.
public static final int FREE_TRIAL_DAYS = 30; public static final int FREE_TRIAL_DAYS = 30;

View File

@ -254,7 +254,7 @@
<string name="settings.preload_5">5 songs</string> <string name="settings.preload_5">5 songs</string>
<string name="settings.preload_unlimited">Unlimited</string> <string name="settings.preload_unlimited">Unlimited</string>
<string name="settings.playback.resume_play_on_headphones_plug.title">Resume on headphones insertion</string> <string name="settings.playback.resume_play_on_headphones_plug.title">Resume on headphones insertion</string>
<string name="settings.playback.resume_play_on_headphones_plug.summary">App will resume paused playback on headphones insertion into device.</string> <string name="settings.playback.resume_play_on_headphones_plug.summary">App will resume paused playback on wired headphones insertion into device.</string>
<string name="settings.screen_lit_summary">Keeping the screen on while downloading improves download speed.</string> <string name="settings.screen_lit_summary">Keeping the screen on while downloading improves download speed.</string>
<string name="settings.screen_lit_title">Keep Screen On</string> <string name="settings.screen_lit_title">Keep Screen On</string>
<string name="settings.scrobble_summary">Remember to set up your Last.fm user and password on the Subsonic server</string> <string name="settings.scrobble_summary">Remember to set up your Last.fm user and password on the Subsonic server</string>
@ -400,6 +400,11 @@
<string name="albumArt">albumArt</string> <string name="albumArt">albumArt</string>
<string name="common_multiple_years">Multiple Years</string> <string name="common_multiple_years">Multiple Years</string>
<string name="settings.server_address_unset" translatable="false">http://example.com</string> <string name="settings.server_address_unset" translatable="false">http://example.com</string>
<string name="settings.playback.resume_on_bluetooth_device">Resume when a bluetooth device is connected</string>
<string name="settings.playback.pause_on_bluetooth_device">Pause when a bluetooth device is disconnected</string>
<string name="settings.playback.bluetooth_all">All bluetooth devices</string>
<string name="settings.playback.bluetooth_a2dp">Only A2dp devices</string>
<string name="settings.playback.bluetooth_disabled">Disabled</string>
<string name="permissions.access_error">Ultrasonic can\'t access the music file cache. Cache location was reset to the default path.</string> <string name="permissions.access_error">Ultrasonic can\'t access the music file cache. Cache location was reset to the default path.</string>
<string name="permissions.message_box_title">Warning</string> <string name="permissions.message_box_title">Warning</string>

View File

@ -106,6 +106,12 @@
a:title="@string/settings.playback.resume_play_on_headphones_plug.title" a:title="@string/settings.playback.resume_play_on_headphones_plug.title"
a:summary="@string/settings.playback.resume_play_on_headphones_plug.summary" a:summary="@string/settings.playback.resume_play_on_headphones_plug.summary"
/> />
<Preference
a:key="resumeOnBluetoothDevice"
a:title="@string/settings.playback.resume_on_bluetooth_device"/>
<Preference
a:key="pauseOnBluetoothDevice"
a:title="@string/settings.playback.pause_on_bluetooth_device"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
a:title="@string/settings.notifications_title" a:title="@string/settings.notifications_title"