@ -87,7 +87,6 @@ public class SettingsService {
private static final String KEY_LDAP_SEARCH_FILTER = "LdapSearchFilter" ;
private static final String KEY_LDAP_SEARCH_FILTER = "LdapSearchFilter" ;
private static final String KEY_LDAP_AUTO_SHADOWING = "LdapAutoShadowing" ;
private static final String KEY_LDAP_AUTO_SHADOWING = "LdapAutoShadowing" ;
private static final String KEY_GETTING_STARTED_ENABLED = "GettingStartedEnabled" ;
private static final String KEY_GETTING_STARTED_ENABLED = "GettingStartedEnabled" ;
private static final String KEY_SERVER_ID = "ServerId" ;
private static final String KEY_SETTINGS_CHANGED = "SettingsChanged" ;
private static final String KEY_SETTINGS_CHANGED = "SettingsChanged" ;
private static final String KEY_LAST_SCANNED = "LastScanned" ;
private static final String KEY_LAST_SCANNED = "LastScanned" ;
private static final String KEY_ORGANIZE_BY_FOLDER_STRUCTURE = "OrganizeByFolderStructure" ;
private static final String KEY_ORGANIZE_BY_FOLDER_STRUCTURE = "OrganizeByFolderStructure" ;
@ -164,7 +163,6 @@ public class SettingsService {
private static final String DEFAULT_LDAP_SEARCH_FILTER = "(sAMAccountName={0})" ;
private static final String DEFAULT_LDAP_SEARCH_FILTER = "(sAMAccountName={0})" ;
private static final boolean DEFAULT_LDAP_AUTO_SHADOWING = false ;
private static final boolean DEFAULT_LDAP_AUTO_SHADOWING = false ;
private static final boolean DEFAULT_GETTING_STARTED_ENABLED = true ;
private static final boolean DEFAULT_GETTING_STARTED_ENABLED = true ;
private static final String DEFAULT_SERVER_ID = null ;
private static final long DEFAULT_SETTINGS_CHANGED = 0L ;
private static final long DEFAULT_SETTINGS_CHANGED = 0L ;
private static final boolean DEFAULT_ORGANIZE_BY_FOLDER_STRUCTURE = true ;
private static final boolean DEFAULT_ORGANIZE_BY_FOLDER_STRUCTURE = true ;
private static final boolean DEFAULT_SORT_ALBUMS_BY_YEAR = true ;
private static final boolean DEFAULT_SORT_ALBUMS_BY_YEAR = true ;
@ -222,9 +220,9 @@ public class SettingsService {
private String [ ] cachedMusicFileTypesArray ;
private String [ ] cachedMusicFileTypesArray ;
private String [ ] cachedVideoFileTypesArray ;
private String [ ] cachedVideoFileTypesArray ;
private List < MusicFolder > cachedMusicFolders ;
private List < MusicFolder > cachedMusicFolders ;
private final ConcurrentMap < String , List < MusicFolder > > cachedMusicFoldersPerUser = new ConcurrentHashMap < String , List < MusicFolder > > ( ) ;
private final ConcurrentMap < String , List < MusicFolder > > cachedMusicFoldersPerUser = new ConcurrentHashMap < > ( ) ;
private void removeObse leteProperties ( ) {
private void removeObso leteProperties ( ) {
OBSOLETE_KEYS . forEach ( oKey - > {
OBSOLETE_KEYS . forEach ( oKey - > {
if ( configurationService . containsKey ( oKey ) ) {
if ( configurationService . containsKey ( oKey ) ) {
@ -254,7 +252,7 @@ public class SettingsService {
return home ;
return home ;
}
}
public static String getFileSystemAppName ( ) {
private static String getFileSystemAppName ( ) {
String home = getAirsonicHome ( ) . getPath ( ) ;
String home = getAirsonicHome ( ) . getPath ( ) ;
return home . contains ( "libresonic" ) ? "libresonic" : "airsonic" ;
return home . contains ( "libresonic" ) ? "libresonic" : "airsonic" ;
}
}
@ -275,7 +273,6 @@ public class SettingsService {
* /
* /
public void init ( ) {
public void init ( ) {
logServerInfo ( ) ;
logServerInfo ( ) ;
ServiceLocator . setSettingsService ( this ) ;
}
}
private void logServerInfo ( ) {
private void logServerInfo ( ) {
@ -289,7 +286,7 @@ public class SettingsService {
public void save ( boolean updateSettingsChanged ) {
public void save ( boolean updateSettingsChanged ) {
if ( updateSettingsChanged ) {
if ( updateSettingsChanged ) {
removeObse leteProperties ( ) ;
removeObso leteProperties ( ) ;
this . setLong ( KEY_SETTINGS_CHANGED , System . currentTimeMillis ( ) ) ;
this . setLong ( KEY_SETTINGS_CHANGED , System . currentTimeMillis ( ) ) ;
}
}
configurationService . save ( ) ;
configurationService . save ( ) ;
@ -308,7 +305,7 @@ public class SettingsService {
}
}
}
}
public static File getPropertyFile ( ) {
static File getPropertyFile ( ) {
File propertyFile = getAirsonicHome ( ) ;
File propertyFile = getAirsonicHome ( ) ;
return new File ( propertyFile , getFileSystemAppName ( ) + ".properties" ) ;
return new File ( propertyFile , getFileSystemAppName ( ) + ".properties" ) ;
}
}
@ -361,7 +358,7 @@ public class SettingsService {
return getProperty ( KEY_IGNORED_ARTICLES , DEFAULT_IGNORED_ARTICLES ) ;
return getProperty ( KEY_IGNORED_ARTICLES , DEFAULT_IGNORED_ARTICLES ) ;
}
}
public String [ ] getIgnoredArticlesAsArray ( ) {
String [ ] getIgnoredArticlesAsArray ( ) {
return getIgnoredArticles ( ) . split ( "\\s+" ) ;
return getIgnoredArticles ( ) . split ( "\\s+" ) ;
}
}
@ -373,7 +370,7 @@ public class SettingsService {
return getProperty ( KEY_SHORTCUTS , DEFAULT_SHORTCUTS ) ;
return getProperty ( KEY_SHORTCUTS , DEFAULT_SHORTCUTS ) ;
}
}
public String [ ] getShortcutsAsArray ( ) {
String [ ] getShortcutsAsArray ( ) {
return StringUtil . split ( getShortcuts ( ) ) ;
return StringUtil . split ( getShortcuts ( ) ) ;
}
}
@ -398,7 +395,7 @@ public class SettingsService {
cachedMusicFileTypesArray = null ;
cachedMusicFileTypesArray = null ;
}
}
public synchronized String [ ] getMusicFileTypesAsArray ( ) {
synchronized String [ ] getMusicFileTypesAsArray ( ) {
if ( cachedMusicFileTypesArray = = null ) {
if ( cachedMusicFileTypesArray = = null ) {
cachedMusicFileTypesArray = toStringArray ( getMusicFileTypes ( ) ) ;
cachedMusicFileTypesArray = toStringArray ( getMusicFileTypes ( ) ) ;
}
}
@ -430,7 +427,7 @@ public class SettingsService {
cachedCoverArtFileTypesArray = null ;
cachedCoverArtFileTypesArray = null ;
}
}
public synchronized String [ ] getCoverArtFileTypesAsArray ( ) {
synchronized String [ ] getCoverArtFileTypesAsArray ( ) {
if ( cachedCoverArtFileTypesArray = = null ) {
if ( cachedCoverArtFileTypesArray = = null ) {
cachedCoverArtFileTypesArray = toStringArray ( getCoverArtFileTypes ( ) ) ;
cachedCoverArtFileTypesArray = toStringArray ( getCoverArtFileTypes ( ) ) ;
}
}
@ -613,7 +610,7 @@ public class SettingsService {
setProperty ( KEY_HLS_COMMAND , command ) ;
setProperty ( KEY_HLS_COMMAND , command ) ;
}
}
public String getJukeboxCommand ( ) {
String getJukeboxCommand ( ) {
return getProperty ( KEY_JUKEBOX_COMMAND , DEFAULT_JUKEBOX_COMMAND ) ;
return getProperty ( KEY_JUKEBOX_COMMAND , DEFAULT_JUKEBOX_COMMAND ) ;
}
}
public String getVideoImageCommand ( ) {
public String getVideoImageCommand ( ) {
@ -687,14 +684,6 @@ public class SettingsService {
setBoolean ( KEY_GETTING_STARTED_ENABLED , isGettingStartedEnabled ) ;
setBoolean ( KEY_GETTING_STARTED_ENABLED , isGettingStartedEnabled ) ;
}
}
public String getServerId ( ) {
return getProperty ( KEY_SERVER_ID , DEFAULT_SERVER_ID ) ;
}
public void setServerId ( String serverId ) {
setProperty ( KEY_SERVER_ID , serverId ) ;
}
public long getSettingsChanged ( ) {
public long getSettingsChanged ( ) {
return getLong ( KEY_SETTINGS_CHANGED , DEFAULT_SETTINGS_CHANGED ) ;
return getLong ( KEY_SETTINGS_CHANGED , DEFAULT_SETTINGS_CHANGED ) ;
}
}
@ -704,7 +693,7 @@ public class SettingsService {
return lastScanned = = null ? null : new Date ( Long . parseLong ( lastScanned ) ) ;
return lastScanned = = null ? null : new Date ( Long . parseLong ( lastScanned ) ) ;
}
}
public void setLastScanned ( Date date ) {
void setLastScanned ( Date date ) {
if ( date = = null ) {
if ( date = = null ) {
setProperty ( KEY_LAST_SCANNED , null ) ;
setProperty ( KEY_LAST_SCANNED , null ) ;
} else {
} else {
@ -732,7 +721,7 @@ public class SettingsService {
return MediaLibraryStatistics . parse ( getString ( KEY_MEDIA_LIBRARY_STATISTICS , DEFAULT_MEDIA_LIBRARY_STATISTICS ) ) ;
return MediaLibraryStatistics . parse ( getString ( KEY_MEDIA_LIBRARY_STATISTICS , DEFAULT_MEDIA_LIBRARY_STATISTICS ) ) ;
}
}
public void setMediaLibraryStatistics ( MediaLibraryStatistics statistics ) {
void setMediaLibraryStatistics ( MediaLibraryStatistics statistics ) {
setString ( KEY_MEDIA_LIBRARY_STATISTICS , statistics . format ( ) ) ;
setString ( KEY_MEDIA_LIBRARY_STATISTICS , statistics . format ( ) ) ;
}
}
@ -785,7 +774,7 @@ public class SettingsService {
* /
* /
public synchronized Theme [ ] getAvailableThemes ( ) {
public synchronized Theme [ ] getAvailableThemes ( ) {
if ( themes = = null ) {
if ( themes = = null ) {
themes = new ArrayList < Theme > ( ) ;
themes = new ArrayList < > ( ) ;
try {
try {
InputStream in = SettingsService . class . getResourceAsStream ( THEMES_FILE ) ;
InputStream in = SettingsService . class . getResourceAsStream ( THEMES_FILE ) ;
String [ ] lines = StringUtil . readLines ( in ) ;
String [ ] lines = StringUtil . readLines ( in ) ;
@ -814,7 +803,7 @@ public class SettingsService {
* /
* /
public synchronized Locale [ ] getAvailableLocales ( ) {
public synchronized Locale [ ] getAvailableLocales ( ) {
if ( locales = = null ) {
if ( locales = = null ) {
locales = new ArrayList < Locale > ( ) ;
locales = new ArrayList < > ( ) ;
try {
try {
InputStream in = SettingsService . class . getResourceAsStream ( LOCALES_FILE ) ;
InputStream in = SettingsService . class . getResourceAsStream ( LOCALES_FILE ) ;
String [ ] lines = StringUtil . readLines ( in ) ;
String [ ] lines = StringUtil . readLines ( in ) ;
@ -876,7 +865,7 @@ public class SettingsService {
cachedMusicFolders = musicFolderDao . getAllMusicFolders ( ) ;
cachedMusicFolders = musicFolderDao . getAllMusicFolders ( ) ;
}
}
List < MusicFolder > result = new ArrayList < MusicFolder > ( cachedMusicFolders . size ( ) ) ;
List < MusicFolder > result = new ArrayList < > ( cachedMusicFolders . size ( ) ) ;
for ( MusicFolder folder : cachedMusicFolders ) {
for ( MusicFolder folder : cachedMusicFolders ) {
if ( ( includeDisabled | | folder . isEnabled ( ) ) & & ( includeNonExisting | | FileUtil . exists ( folder . getPath ( ) ) ) ) {
if ( ( includeDisabled | | folder . isEnabled ( ) ) & & ( includeNonExisting | | FileUtil . exists ( folder . getPath ( ) ) ) ) {
result . add ( folder ) ;
result . add ( folder ) ;
@ -913,7 +902,7 @@ public class SettingsService {
return allowed ;
return allowed ;
}
}
MusicFolder selected = getMusicFolderById ( selectedMusicFolderId ) ;
MusicFolder selected = getMusicFolderById ( selectedMusicFolderId ) ;
return allowed . contains ( selected ) ? Arrays . as List( selected ) : Collections . < MusicFolder > emptyList ( ) ;
return allowed . contains ( selected ) ? Collections . singleton List( selected ) : Collections . emptyList ( ) ;
}
}
/ * *
/ * *
@ -993,21 +982,6 @@ public class SettingsService {
return getAllInternetRadios ( false ) ;
return getAllInternetRadios ( false ) ;
}
}
/ * *
* Returns the internet radio station with the given ID .
*
* @param id The ID .
* @return The internet radio station with the given ID , or < code > null < / code > if not found .
* /
public InternetRadio getInternetRadioById ( Integer id ) {
for ( InternetRadio radio : getAllInternetRadios ( ) ) {
if ( id . equals ( radio . getId ( ) ) ) {
return radio ;
}
}
return null ;
}
/ * *
/ * *
* Returns all internet radio stations .
* Returns all internet radio stations .
*
*
@ -1016,7 +990,7 @@ public class SettingsService {
* /
* /
public List < InternetRadio > getAllInternetRadios ( boolean includeAll ) {
public List < InternetRadio > getAllInternetRadios ( boolean includeAll ) {
List < InternetRadio > all = internetRadioDao . getAllInternetRadios ( ) ;
List < InternetRadio > all = internetRadioDao . getAllInternetRadios ( ) ;
List < InternetRadio > result = new ArrayList < InternetRadio > ( all . size ( ) ) ;
List < InternetRadio > result = new ArrayList < > ( all . size ( ) ) ;
for ( InternetRadio folder : all ) {
for ( InternetRadio folder : all ) {
if ( includeAll | | folder . isEnabled ( ) ) {
if ( includeAll | | folder . isEnabled ( ) ) {
result . add ( folder ) ;
result . add ( folder ) ;
@ -1190,14 +1164,10 @@ public class SettingsService {
setString ( KEY_SONOS_SERVICE_NAME , sonosServiceName ) ;
setString ( KEY_SONOS_SERVICE_NAME , sonosServiceName ) ;
}
}
public int getSonosServiceId ( ) {
int getSonosServiceId ( ) {
return getInt ( KEY_SONOS_SERVICE_ID , DEFAULT_SONOS_SERVICE_ID ) ;
return getInt ( KEY_SONOS_SERVICE_ID , DEFAULT_SONOS_SERVICE_ID ) ;
}
}
public void setSonosServiceId ( int sonosServiceid ) {
setInt ( KEY_SONOS_SERVICE_ID , sonosServiceid ) ;
}
private void setProperty ( String key , Object value ) {
private void setProperty ( String key , Object value ) {
if ( value = = null ) {
if ( value = = null ) {
configurationService . clearProperty ( key ) ;
configurationService . clearProperty ( key ) ;
@ -1207,7 +1177,7 @@ public class SettingsService {
}
}
private String [ ] toStringArray ( String s ) {
private String [ ] toStringArray ( String s ) {
List < String > result = new ArrayList < String > ( ) ;
List < String > result = new ArrayList < > ( ) ;
StringTokenizer tokenizer = new StringTokenizer ( s , " " ) ;
StringTokenizer tokenizer = new StringTokenizer ( s , " " ) ;
while ( tokenizer . hasMoreTokens ( ) ) {
while ( tokenizer . hasMoreTokens ( ) ) {
result . add ( tokenizer . nextToken ( ) ) ;
result . add ( tokenizer . nextToken ( ) ) ;
@ -1378,7 +1348,7 @@ public class SettingsService {
setDatabaseConfigType ( DEFAULT_DATABASE_CONFIG_TYPE ) ;
setDatabaseConfigType ( DEFAULT_DATABASE_CONFIG_TYPE ) ;
}
}
public String getPlaylistExportFormat ( ) {
String getPlaylistExportFormat ( ) {
return getProperty ( KEY_EXPORT_PLAYLIST_FORMAT , DEFAULT_EXPORT_PLAYLIST_FORMAT ) ;
return getProperty ( KEY_EXPORT_PLAYLIST_FORMAT , DEFAULT_EXPORT_PLAYLIST_FORMAT ) ;
}
}
}
}