|
|
|
/*
|
|
|
|
This file is part of Airsonic.
|
|
|
|
|
|
|
|
Airsonic is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
Airsonic is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with Airsonic. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
Copyright 2016 (C) Airsonic Authors
|
|
|
|
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
|
|
|
|
*/
|
|
|
|
package org.airsonic.player.domain;
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Locale;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Represent user-specific settings.
|
|
|
|
*
|
|
|
|
* @author Sindre Mehus
|
|
|
|
*/
|
|
|
|
public class UserSettings {
|
|
|
|
|
|
|
|
private String username;
|
|
|
|
private Locale locale;
|
|
|
|
private String themeId;
|
|
|
|
private boolean showNowPlayingEnabled;
|
|
|
|
private boolean showArtistInfoEnabled;
|
|
|
|
private boolean finalVersionNotificationEnabled;
|
|
|
|
private boolean betaVersionNotificationEnabled;
|
|
|
|
private boolean songNotificationEnabled;
|
|
|
|
private boolean keyboardShortcutsEnabled;
|
|
|
|
private boolean autoHidePlayQueue;
|
|
|
|
private boolean showSideBar;
|
|
|
|
private boolean viewAsList;
|
|
|
|
private boolean queueFollowingSongs;
|
|
|
|
private AlbumListType defaultAlbumList = AlbumListType.RANDOM;
|
|
|
|
private Visibility mainVisibility = new Visibility();
|
|
|
|
private Visibility playlistVisibility = new Visibility();
|
|
|
|
private boolean lastFmEnabled;
|
|
|
|
private boolean listenBrainzEnabled;
|
|
|
|
private String lastFmUsername;
|
|
|
|
private String lastFmPassword;
|
|
|
|
private String listenBrainzToken;
|
|
|
|
private TranscodeScheme transcodeScheme = TranscodeScheme.OFF;
|
|
|
|
private int selectedMusicFolderId = -1;
|
|
|
|
private boolean partyModeEnabled;
|
|
|
|
private boolean nowPlayingAllowed;
|
|
|
|
private AvatarScheme avatarScheme = AvatarScheme.NONE;
|
|
|
|
private Integer systemAvatarId;
|
|
|
|
private Date changed = new Date();
|
|
|
|
private int paginationSize;
|
|
|
|
|
|
|
|
public UserSettings(String username) {
|
|
|
|
this.username = username;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getUsername() {
|
|
|
|
return username;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setUsername(String username) {
|
|
|
|
this.username = username;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Locale getLocale() {
|
|
|
|
return locale;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLocale(Locale locale) {
|
|
|
|
this.locale = locale;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getThemeId() {
|
|
|
|
return themeId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setThemeId(String themeId) {
|
|
|
|
this.themeId = themeId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isShowNowPlayingEnabled() {
|
|
|
|
return showNowPlayingEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setShowNowPlayingEnabled(boolean showNowPlayingEnabled) {
|
|
|
|
this.showNowPlayingEnabled = showNowPlayingEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isShowArtistInfoEnabled() {
|
|
|
|
return showArtistInfoEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setShowArtistInfoEnabled(boolean showArtistInfoEnabled) {
|
|
|
|
this.showArtistInfoEnabled = showArtistInfoEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isFinalVersionNotificationEnabled() {
|
|
|
|
return finalVersionNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFinalVersionNotificationEnabled(boolean finalVersionNotificationEnabled) {
|
|
|
|
this.finalVersionNotificationEnabled = finalVersionNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isBetaVersionNotificationEnabled() {
|
|
|
|
return betaVersionNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setBetaVersionNotificationEnabled(boolean betaVersionNotificationEnabled) {
|
|
|
|
this.betaVersionNotificationEnabled = betaVersionNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isSongNotificationEnabled() {
|
|
|
|
return songNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSongNotificationEnabled(boolean songNotificationEnabled) {
|
|
|
|
this.songNotificationEnabled = songNotificationEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Visibility getMainVisibility() {
|
|
|
|
return mainVisibility;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setMainVisibility(Visibility mainVisibility) {
|
|
|
|
this.mainVisibility = mainVisibility;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Visibility getPlaylistVisibility() {
|
|
|
|
return playlistVisibility;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setPlaylistVisibility(Visibility playlistVisibility) {
|
|
|
|
this.playlistVisibility = playlistVisibility;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isLastFmEnabled() {
|
|
|
|
return lastFmEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLastFmEnabled(boolean lastFmEnabled) {
|
|
|
|
this.lastFmEnabled = lastFmEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isListenBrainzEnabled() {
|
|
|
|
return listenBrainzEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setListenBrainzEnabled(boolean listenBrainzEnabled) {
|
|
|
|
this.listenBrainzEnabled = listenBrainzEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getLastFmUsername() {
|
|
|
|
return lastFmUsername;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLastFmUsername(String lastFmUsername) {
|
|
|
|
this.lastFmUsername = lastFmUsername;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getLastFmPassword() {
|
|
|
|
return lastFmPassword;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLastFmPassword(String lastFmPassword) {
|
|
|
|
this.lastFmPassword = lastFmPassword;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getListenBrainzToken() {
|
|
|
|
return listenBrainzToken;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setListenBrainzToken(String listenBrainzToken) {
|
|
|
|
this.listenBrainzToken = listenBrainzToken;
|
|
|
|
}
|
|
|
|
|
|
|
|
public TranscodeScheme getTranscodeScheme() {
|
|
|
|
return transcodeScheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setTranscodeScheme(TranscodeScheme transcodeScheme) {
|
|
|
|
this.transcodeScheme = transcodeScheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getSelectedMusicFolderId() {
|
|
|
|
return selectedMusicFolderId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSelectedMusicFolderId(int selectedMusicFolderId) {
|
|
|
|
this.selectedMusicFolderId = selectedMusicFolderId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isPartyModeEnabled() {
|
|
|
|
return partyModeEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setPartyModeEnabled(boolean partyModeEnabled) {
|
|
|
|
this.partyModeEnabled = partyModeEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isNowPlayingAllowed() {
|
|
|
|
return nowPlayingAllowed;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setNowPlayingAllowed(boolean nowPlayingAllowed) {
|
|
|
|
this.nowPlayingAllowed = nowPlayingAllowed;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAutoHidePlayQueue() {
|
|
|
|
return autoHidePlayQueue;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAutoHidePlayQueue(boolean autoHidePlayQueue) {
|
|
|
|
this.autoHidePlayQueue = autoHidePlayQueue;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isKeyboardShortcutsEnabled() {
|
|
|
|
return keyboardShortcutsEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setKeyboardShortcutsEnabled(boolean keyboardShortcutsEnabled) {
|
|
|
|
this.keyboardShortcutsEnabled = keyboardShortcutsEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isShowSideBar() {
|
|
|
|
return showSideBar;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setShowSideBar(boolean showSideBar) {
|
|
|
|
this.showSideBar = showSideBar;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isViewAsList() {
|
|
|
|
return viewAsList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setViewAsList(boolean viewAsList) {
|
|
|
|
this.viewAsList = viewAsList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public AlbumListType getDefaultAlbumList() {
|
|
|
|
return defaultAlbumList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setDefaultAlbumList(AlbumListType defaultAlbumList) {
|
|
|
|
this.defaultAlbumList = defaultAlbumList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public AvatarScheme getAvatarScheme() {
|
|
|
|
return avatarScheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAvatarScheme(AvatarScheme avatarScheme) {
|
|
|
|
this.avatarScheme = avatarScheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Integer getSystemAvatarId() {
|
|
|
|
return systemAvatarId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSystemAvatarId(Integer systemAvatarId) {
|
|
|
|
this.systemAvatarId = systemAvatarId;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns when the corresponding database entry was last changed.
|
|
|
|
*
|
|
|
|
* @return When the corresponding database entry was last changed.
|
|
|
|
*/
|
|
|
|
public Date getChanged() {
|
|
|
|
return changed;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets when the corresponding database entry was last changed.
|
|
|
|
*
|
|
|
|
* @param changed When the corresponding database entry was last changed.
|
|
|
|
*/
|
|
|
|
public void setChanged(Date changed) {
|
|
|
|
this.changed = changed;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isQueueFollowingSongs() {
|
|
|
|
return queueFollowingSongs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setQueueFollowingSongs(boolean queueFollowingSongs) {
|
|
|
|
this.queueFollowingSongs = queueFollowingSongs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getPaginationSize() {
|
|
|
|
return paginationSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setPaginationSize(int paginationSize) {
|
|
|
|
this.paginationSize = paginationSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Configuration of what information to display about a song.
|
|
|
|
*/
|
|
|
|
public static class Visibility {
|
|
|
|
private boolean isTrackNumberVisible;
|
|
|
|
private boolean isArtistVisible;
|
|
|
|
private boolean isAlbumVisible;
|
|
|
|
private boolean isGenreVisible;
|
|
|
|
private boolean isYearVisible;
|
|
|
|
private boolean isBitRateVisible;
|
|
|
|
private boolean isDurationVisible;
|
|
|
|
private boolean isFormatVisible;
|
|
|
|
private boolean isFileSizeVisible;
|
|
|
|
|
|
|
|
public Visibility() {}
|
|
|
|
|
|
|
|
public Visibility(boolean trackNumberVisible, boolean artistVisible, boolean albumVisible,
|
|
|
|
boolean genreVisible, boolean yearVisible, boolean bitRateVisible,
|
|
|
|
boolean durationVisible, boolean formatVisible, boolean fileSizeVisible) {
|
|
|
|
isTrackNumberVisible = trackNumberVisible;
|
|
|
|
isArtistVisible = artistVisible;
|
|
|
|
isAlbumVisible = albumVisible;
|
|
|
|
isGenreVisible = genreVisible;
|
|
|
|
isYearVisible = yearVisible;
|
|
|
|
isBitRateVisible = bitRateVisible;
|
|
|
|
isDurationVisible = durationVisible;
|
|
|
|
isFormatVisible = formatVisible;
|
|
|
|
isFileSizeVisible = fileSizeVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isTrackNumberVisible() {
|
|
|
|
return isTrackNumberVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setTrackNumberVisible(boolean trackNumberVisible) {
|
|
|
|
isTrackNumberVisible = trackNumberVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isArtistVisible() {
|
|
|
|
return isArtistVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setArtistVisible(boolean artistVisible) {
|
|
|
|
isArtistVisible = artistVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAlbumVisible() {
|
|
|
|
return isAlbumVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAlbumVisible(boolean albumVisible) {
|
|
|
|
isAlbumVisible = albumVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isGenreVisible() {
|
|
|
|
return isGenreVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setGenreVisible(boolean genreVisible) {
|
|
|
|
isGenreVisible = genreVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isYearVisible() {
|
|
|
|
return isYearVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setYearVisible(boolean yearVisible) {
|
|
|
|
isYearVisible = yearVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isBitRateVisible() {
|
|
|
|
return isBitRateVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setBitRateVisible(boolean bitRateVisible) {
|
|
|
|
isBitRateVisible = bitRateVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isDurationVisible() {
|
|
|
|
return isDurationVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setDurationVisible(boolean durationVisible) {
|
|
|
|
isDurationVisible = durationVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isFormatVisible() {
|
|
|
|
return isFormatVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFormatVisible(boolean formatVisible) {
|
|
|
|
isFormatVisible = formatVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isFileSizeVisible() {
|
|
|
|
return isFileSizeVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFileSizeVisible(boolean fileSizeVisible) {
|
|
|
|
isFileSizeVisible = fileSizeVisible;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|