/* This file is part of Libresonic. Libresonic 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. Libresonic 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 Libresonic. If not, see <http://www.gnu.org/licenses/>. Copyright 2016 (C) Libresonic Authors Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ package org.libresonic.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 int listReloadDelay; private String lastFmUsername; private String lastFmPassword; 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 int getListReloadDelay() { return listReloadDelay; } public void setListReloadDelay(int listReloadDelay) { this.listReloadDelay = listReloadDelay; } 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 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; } } }