automatic database initialization on startup
This commit is contained in:
parent
756e2cdaec
commit
8a20bde82f
5 changed files with 15 additions and 20 deletions
|
|
@ -15,7 +15,6 @@ import io.github.sspanak.tt9.ConsumerCompat;
|
|||
import io.github.sspanak.tt9.Logger;
|
||||
import io.github.sspanak.tt9.db.entities.WordBatch;
|
||||
import io.github.sspanak.tt9.db.exceptions.DictionaryImportAbortedException;
|
||||
import io.github.sspanak.tt9.db.exceptions.DictionaryImportAlreadyRunningException;
|
||||
import io.github.sspanak.tt9.db.exceptions.DictionaryImportException;
|
||||
import io.github.sspanak.tt9.db.sqlite.DeleteOps;
|
||||
import io.github.sspanak.tt9.db.sqlite.InsertOps;
|
||||
|
|
@ -68,14 +67,14 @@ public class DictionaryLoader {
|
|||
}
|
||||
|
||||
|
||||
public void load(ArrayList<Language> languages) throws DictionaryImportAlreadyRunningException {
|
||||
public boolean load(ArrayList<Language> languages) {
|
||||
if (isRunning()) {
|
||||
throw new DictionaryImportAlreadyRunningException();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (languages.size() == 0) {
|
||||
if (languages == null || languages.size() == 0) {
|
||||
Logger.d(LOG_TAG, "Nothing to do");
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
loadThread = new Thread() {
|
||||
|
|
@ -98,6 +97,7 @@ public class DictionaryLoader {
|
|||
};
|
||||
|
||||
loadThread.start();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
package io.github.sspanak.tt9.db.exceptions;
|
||||
|
||||
public class DictionaryImportAlreadyRunningException extends Exception{
|
||||
public DictionaryImportAlreadyRunningException() {
|
||||
super("Dictionary import is already running.");
|
||||
}
|
||||
}
|
||||
|
|
@ -6,12 +6,13 @@ import android.database.sqlite.SQLiteOpenHelper;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import io.github.sspanak.tt9.BuildConfig;
|
||||
import io.github.sspanak.tt9.languages.Language;
|
||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
||||
|
||||
public class SQLiteOpener extends SQLiteOpenHelper {
|
||||
private static final String DATABASE_NAME = "tt9.db";
|
||||
private static final int DATABASE_VERSION = 1;
|
||||
private static final int DATABASE_VERSION = BuildConfig.VERSION_CODE;
|
||||
private static SQLiteOpener self;
|
||||
|
||||
private final ArrayList<Language> allLanguages;
|
||||
|
|
@ -50,7 +51,7 @@ public class SQLiteOpener extends SQLiteOpenHelper {
|
|||
|
||||
@Override
|
||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
// No migrations as of now
|
||||
onCreate(db);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,10 @@ public class LanguageCollection {
|
|||
public static ArrayList<Language> getAll(Context context, ArrayList<Integer> languageIds, boolean sort) {
|
||||
ArrayList<Language> langList = new ArrayList<>();
|
||||
|
||||
if (languageIds == null) {
|
||||
return langList;
|
||||
}
|
||||
|
||||
for (int languageId : languageIds) {
|
||||
Language lang = getLanguage(context, languageId);
|
||||
if (lang != null) {
|
||||
|
|
@ -100,7 +104,7 @@ public class LanguageCollection {
|
|||
|
||||
public static String toString(ArrayList<Language> list) {
|
||||
StringBuilder stringList = new StringBuilder();
|
||||
int listSize = list.size();
|
||||
int listSize = list != null ? list.size() : 0;
|
||||
|
||||
for (int i = 0; i < listSize; i++) {
|
||||
stringList.append(list.get(i));
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import androidx.preference.Preference;
|
|||
import java.util.ArrayList;
|
||||
|
||||
import io.github.sspanak.tt9.R;
|
||||
import io.github.sspanak.tt9.db.exceptions.DictionaryImportAlreadyRunningException;
|
||||
import io.github.sspanak.tt9.db.DictionaryLoader;
|
||||
import io.github.sspanak.tt9.languages.Language;
|
||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
||||
|
|
@ -68,10 +67,8 @@ public class ItemLoadDictionary extends ItemClickable {
|
|||
protected boolean onClick(Preference p) {
|
||||
ArrayList<Language> languages = LanguageCollection.getAll(context, settings.getEnabledLanguageIds());
|
||||
|
||||
try {
|
||||
setLoadingStatus();
|
||||
loader.load(languages);
|
||||
} catch (DictionaryImportAlreadyRunningException e) {
|
||||
setLoadingStatus();
|
||||
if (!loader.load(languages)) {
|
||||
loader.stop();
|
||||
setReadyStatus();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue