/*
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;
}
}
}