Lets the interface cache local song/album data
This will let the interface avoid a system scan every time, improving performance.
This commit is contained in:
@@ -10,6 +10,7 @@ import edu.regis.universeplayer.data.CollectionType;
|
||||
import edu.regis.universeplayer.data.Song;
|
||||
import edu.regis.universeplayer.data.SongProvider;
|
||||
import edu.regis.universeplayer.data.UpdateListener;
|
||||
import net.harawata.appdirs.AppDirsFactory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -19,6 +20,7 @@ import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.ComponentListener;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -35,6 +37,9 @@ public class Interface extends JFrame implements SongDisplayListener, ComponentL
|
||||
{
|
||||
private static final Logger logger = LoggerFactory.getLogger(Interface.class);
|
||||
|
||||
private static File dataDir;
|
||||
private static File configDir;
|
||||
|
||||
/**
|
||||
* A reference to the panel containing links to different collection views.
|
||||
*/
|
||||
@@ -123,6 +128,48 @@ public class Interface extends JFrame implements SongDisplayListener, ComponentL
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtains the data storage directory for the application, creating it if
|
||||
* needed.
|
||||
* @return The data storage directory.
|
||||
*/
|
||||
public static File getDataDir()
|
||||
{
|
||||
if (dataDir == null)
|
||||
{
|
||||
dataDir = new File(AppDirsFactory.getInstance().getUserDataDir("universalmusic", null, null, true));
|
||||
if (!dataDir.exists())
|
||||
{
|
||||
if (!dataDir.mkdir())
|
||||
{
|
||||
logger.error("Could not create data directory {}", dataDir);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtains the configuration directory for the application, creating it if
|
||||
* needed.
|
||||
* @return The configuration directory.
|
||||
*/
|
||||
public static File getConfigDir()
|
||||
{
|
||||
if (configDir == null)
|
||||
{
|
||||
configDir = new File(AppDirsFactory.getInstance().getUserConfigDir("universalmusic", null, null, true));
|
||||
if (!configDir.exists())
|
||||
{
|
||||
if (!configDir.mkdir())
|
||||
{
|
||||
logger.error("Could not create configuration directory {}", configDir);
|
||||
}
|
||||
}
|
||||
}
|
||||
return configDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an interface
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user