diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java
index 6c8e4d9e..b9fcb529 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java
@@ -37,6 +37,7 @@ public class ServerSettingsFragment extends PreferenceFragment
private EditTextPreference serverPasswordPref;
private CheckBoxPreference equalizerPref;
private CheckBoxPreference jukeboxPref;
+ private CheckBoxPreference allowSelfSignedCertificatePref;
private Preference removeServerPref;
private Preference testConnectionPref;
@@ -74,6 +75,8 @@ public class ServerSettingsFragment extends PreferenceFragment
jukeboxPref = (CheckBoxPreference) findPreference(getString(R.string.jukebox_is_default));
removeServerPref = findPreference(getString(R.string.settings_server_remove_server));
testConnectionPref = findPreference(getString(R.string.settings_test_connection_title));
+ allowSelfSignedCertificatePref = (CheckBoxPreference) findPreference(
+ getString(R.string.settings_allow_self_signed_certificate));
setupPreferencesValues();
setupPreferencesListeners();
@@ -132,6 +135,11 @@ public class ServerSettingsFragment extends PreferenceFragment
.putBoolean(Constants.PREFERENCES_KEY_JUKEBOX_BY_DEFAULT + serverId, (Boolean) newValue)
.apply();
return true;
+ } else if (preference == allowSelfSignedCertificatePref) {
+ sharedPreferences.edit()
+ .putBoolean(Constants.PREFERENCES_KEY_ALLOW_SELF_SIGNED_CERTIFICATE + serverId, (Boolean) newValue)
+ .apply();
+ return true;
}
return false;
}
@@ -164,6 +172,9 @@ public class ServerSettingsFragment extends PreferenceFragment
jukeboxPref.setChecked(sharedPreferences
.getBoolean(Constants.PREFERENCES_KEY_JUKEBOX_BY_DEFAULT + serverId, false));
+
+ allowSelfSignedCertificatePref.setChecked(sharedPreferences
+ .getBoolean(Constants.PREFERENCES_KEY_ALLOW_SELF_SIGNED_CERTIFICATE + serverId, false));
}
private void updatePassword() {
@@ -201,6 +212,7 @@ public class ServerSettingsFragment extends PreferenceFragment
serverPasswordPref.setOnPreferenceChangeListener(this);
equalizerPref.setOnPreferenceChangeListener(this);
jukeboxPref.setOnPreferenceChangeListener(this);
+ allowSelfSignedCertificatePref.setOnPreferenceChangeListener(this);
removeServerPref.setOnPreferenceClickListener(this);
testConnectionPref.setOnPreferenceClickListener(this);
@@ -262,6 +274,7 @@ public class ServerSettingsFragment extends PreferenceFragment
.remove(Constants.PREFERENCES_KEY_PASSWORD + serverId)
.remove(Constants.PREFERENCES_KEY_SERVER_ENABLED + serverId)
.remove(Constants.PREFERENCES_KEY_JUKEBOX_BY_DEFAULT + serverId)
+ .remove(Constants.PREFERENCES_KEY_ALLOW_SELF_SIGNED_CERTIFICATE + serverId)
.apply();
if (serverId < activeServers) {
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java
index 3fa24033..e274412a 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java
@@ -84,6 +84,8 @@ public class MusicServiceFactory {
String serverUrl = preferences.getString(Constants.PREFERENCES_KEY_SERVER_URL + instance, null);
String username = preferences.getString(Constants.PREFERENCES_KEY_USERNAME + instance, null);
String password = preferences.getString(Constants.PREFERENCES_KEY_PASSWORD + instance, null);
+ boolean allowSelfSignedCertificate = preferences
+ .getBoolean(Constants.PREFERENCES_KEY_ALLOW_SELF_SIGNED_CERTIFICATE + instance, false);
if (serverUrl == null ||
username == null ||
@@ -91,11 +93,11 @@ public class MusicServiceFactory {
Log.i("MusicServiceFactory", "Server credentials is not available");
return new SubsonicAPIClient("http://localhost", "", "",
SubsonicAPIVersions.fromApiVersion(Constants.REST_PROTOCOL_VERSION),
- Constants.REST_CLIENT_ID, BuildConfig.DEBUG);
+ Constants.REST_CLIENT_ID, allowSelfSignedCertificate, BuildConfig.DEBUG);
}
return new SubsonicAPIClient(serverUrl, username, password,
SubsonicAPIVersions.fromApiVersion(Constants.REST_PROTOCOL_VERSION),
- Constants.REST_CLIENT_ID, BuildConfig.DEBUG);
+ Constants.REST_CLIENT_ID, allowSelfSignedCertificate, BuildConfig.DEBUG);
}
}
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/util/Constants.java b/ultrasonic/src/main/java/org/moire/ultrasonic/util/Constants.java
index 19c4a199..a3aab7e5 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/util/Constants.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/util/Constants.java
@@ -72,11 +72,11 @@ public final class Constants
public static final String PREFERENCES_KEY_SERVER_URL = "serverUrl";
public static final String PREFERENCES_KEY_SERVERS_KEY = "serversKey";
public static final String PREFERENCES_KEY_ADD_SERVER = "addServer";
- public static final String PREFERENCES_KEY_REMOVE_SERVER = "removeServer";
public static final String PREFERENCES_KEY_ACTIVE_SERVERS = "activeServers";
public static final String PREFERENCES_KEY_MUSIC_FOLDER_ID = "musicFolderId";
public static final String PREFERENCES_KEY_USERNAME = "username";
public static final String PREFERENCES_KEY_PASSWORD = "password";
+ public static final String PREFERENCES_KEY_ALLOW_SELF_SIGNED_CERTIFICATE = "allowSSCertificate";
public static final String PREFERENCES_KEY_INSTALL_TIME = "installTime";
public static final String PREFERENCES_KEY_THEME = "theme";
public static final String PREFERENCES_KEY_DISPLAY_BITRATE_WITH_ARTIST = "displayBitrateWithArtist";
@@ -109,7 +109,6 @@ public final class Constants
public static final String PREFERENCES_KEY_GAPLESS_PLAYBACK = "gaplessPlayback";
public static final String PREFERENCES_KEY_PLAYBACK_CONTROL_SETTINGS = "playbackControlSettings";
public static final String PREFERENCES_KEY_CLEAR_SEARCH_HISTORY = "clearSearchHistory";
- public static final String PREFERENCES_KEY_TEST_CONNECTION = "testConnection";
public static final String PREFERENCES_KEY_DOWNLOAD_TRANSITION = "transitionToDownloadOnPlay";
public static final String PREFERENCES_KEY_INCREMENT_TIME = "incrementTime";
public static final String PREFERENCES_KEY_ID3_TAGS = "useId3Tags";
diff --git a/ultrasonic/src/main/res/values-es/strings.xml b/ultrasonic/src/main/res/values-es/strings.xml
index 7a04ad5b..499ba26c 100644
--- a/ultrasonic/src/main/res/values-es/strings.xml
+++ b/ultrasonic/src/main/res/values-es/strings.xml
@@ -300,6 +300,7 @@
Oscuro
Claro
Tema
+ Permita el certificado HTTPS autofirmado
Usar carpetas para el nombre del artista
Se asume que la carpeta en el nivel mal alto es el nombre del artista del álbum
Navegar usando las etiquetas ID3
diff --git a/ultrasonic/src/main/res/values-fr/strings.xml b/ultrasonic/src/main/res/values-fr/strings.xml
index f9255200..643fad6a 100644
--- a/ultrasonic/src/main/res/values-fr/strings.xml
+++ b/ultrasonic/src/main/res/values-fr/strings.xml
@@ -300,6 +300,7 @@
Sombre
Clair
Thème
+ Autoriser le certificat HTTPS auto-signé
Utilisez des dossiers pour les noms d\'artistes
Dossier de niveau supérieur devient le nom de l\'artiste de l\'album
Naviguer en utilisant ID3 Tags
diff --git a/ultrasonic/src/main/res/values-hu/strings.xml b/ultrasonic/src/main/res/values-hu/strings.xml
index 4a92588b..6389458c 100644
--- a/ultrasonic/src/main/res/values-hu/strings.xml
+++ b/ultrasonic/src/main/res/values-hu/strings.xml
@@ -300,6 +300,7 @@
Sötét
Világos
Téma
+ Engedélyezze az önaláírt HTTPS tanúsítványt
Mappanevek használata az előadók neveként
Feltételezi, hogy a legfelső szintű mappa az előadó neve.
Böngészés ID3 Tag használatával
diff --git a/ultrasonic/src/main/res/values-pt-rBR/strings.xml b/ultrasonic/src/main/res/values-pt-rBR/strings.xml
index 552061ce..839c8643 100644
--- a/ultrasonic/src/main/res/values-pt-rBR/strings.xml
+++ b/ultrasonic/src/main/res/values-pt-rBR/strings.xml
@@ -303,6 +303,7 @@
Escuro
Claro
Tema
+ Permitir o certificado HTTPS auto-assinado
Pasta para Nome do Artista
Assume que a pasta mais acima é o nome do artista
Navegar Usando Etiquetas ID3
diff --git a/ultrasonic/src/main/res/values-pt/strings.xml b/ultrasonic/src/main/res/values-pt/strings.xml
index 5ce59f3a..2767ebec 100644
--- a/ultrasonic/src/main/res/values-pt/strings.xml
+++ b/ultrasonic/src/main/res/values-pt/strings.xml
@@ -303,6 +303,7 @@
Escuro
Claro
Tema
+ Permitir o certificado HTTPS auto-assinado
Pasta para Nome do Artista
Assume que a pasta mais acima é o nome do artista
Navegar Usando Etiquetas ID3
diff --git a/ultrasonic/src/main/res/values/strings.xml b/ultrasonic/src/main/res/values/strings.xml
index ccbba6c9..7ed490c8 100644
--- a/ultrasonic/src/main/res/values/strings.xml
+++ b/ultrasonic/src/main/res/values/strings.xml
@@ -146,6 +146,7 @@
No genres found
No saved playlists on server
Contacting server, please wait.
+ allowSelfSignedCertificate
Appearance
Buffer Length
Disabled
@@ -303,6 +304,7 @@
Dark
Light
Theme
+ Allow self-signed HTTPS certificate
Use Folders For Artist Name
Assume top-level folder is the name of the album artist
Browse Using ID3 Tags
diff --git a/ultrasonic/src/main/res/xml/server_settings.xml b/ultrasonic/src/main/res/xml/server_settings.xml
index cc107299..3f755b58 100644
--- a/ultrasonic/src/main/res/xml/server_settings.xml
+++ b/ultrasonic/src/main/res/xml/server_settings.xml
@@ -38,6 +38,12 @@
android:defaultValue="true"
android:title="@string/equalizer.enabled"
/>
+