MinimalBible-Legacy/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DownloadManager.java

59 lines
1.8 KiB
Java

package org.bspeice.minimalbible.activities.downloader.manager;
import android.util.Log;
import org.bspeice.minimalbible.MinimalBible;
import org.crosswire.jsword.book.BookCategory;
import org.crosswire.jsword.book.install.InstallManager;
import org.crosswire.jsword.book.install.Installer;
import org.crosswire.jsword.book.sword.SwordBookPath;
import java.io.File;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Singleton;
// TODO: Listen to BookInstall events?
@Singleton
public class DownloadManager {
private final String TAG = "DownloadManager";
public static final BookCategory[] VALID_CATEGORIES = { BookCategory.BIBLE,
BookCategory.COMMENTARY, BookCategory.DICTIONARY,
BookCategory.MAPS };
/**
* Set up the DownloadManager, and notify jSword of where it should store files at
*/
@Inject
public DownloadManager() {
setDownloadDir();
}
/**
* Get the installers available to jSword - this is how we get access to the actual modules
* @return All available {@link org.crosswire.jsword.book.install.Installer}s
*/
public Map<String, Installer> getInstallers() {
return new InstallManager().getInstallers();
}
/**
* Notify jSword that it needs to store files in the Android internal directory
* NOTE: Android will uninstall these files if you uninstall MinimalBible.
*/
@SuppressWarnings("null")
private void setDownloadDir() {
// We need to set the download directory for jSword to stick with
// Android.
String home = MinimalBible.getAppContext().getFilesDir().toString();
Log.d(TAG, "Setting jsword.home to: " + home);
System.setProperty("jsword.home", home);
System.setProperty("sword.home", home);
SwordBookPath.setDownloadDir(new File(home));
Log.d(TAG, "Sword download path: " + SwordBookPath.getSwordDownloadDir());
}
}