diff --git a/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java b/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java index 1beaf68c..5aea2bea 100644 --- a/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java +++ b/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java @@ -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 languages) throws DictionaryImportAlreadyRunningException { + public boolean load(ArrayList 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; } diff --git a/app/src/main/java/io/github/sspanak/tt9/db/exceptions/DictionaryImportAlreadyRunningException.java b/app/src/main/java/io/github/sspanak/tt9/db/exceptions/DictionaryImportAlreadyRunningException.java deleted file mode 100644 index b1c2c4e9..00000000 --- a/app/src/main/java/io/github/sspanak/tt9/db/exceptions/DictionaryImportAlreadyRunningException.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.github.sspanak.tt9.db.exceptions; - -public class DictionaryImportAlreadyRunningException extends Exception{ - public DictionaryImportAlreadyRunningException() { - super("Dictionary import is already running."); - } -} diff --git a/app/src/main/java/io/github/sspanak/tt9/db/sqlite/SQLiteOpener.java b/app/src/main/java/io/github/sspanak/tt9/db/sqlite/SQLiteOpener.java index 50854ef6..f6def4ed 100644 --- a/app/src/main/java/io/github/sspanak/tt9/db/sqlite/SQLiteOpener.java +++ b/app/src/main/java/io/github/sspanak/tt9/db/sqlite/SQLiteOpener.java @@ -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 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); } diff --git a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java index 6b14ee8e..f9134618 100644 --- a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java +++ b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java @@ -66,6 +66,10 @@ public class LanguageCollection { public static ArrayList getAll(Context context, ArrayList languageIds, boolean sort) { ArrayList 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 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)); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemLoadDictionary.java b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemLoadDictionary.java index c24e71c0..1313907b 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemLoadDictionary.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemLoadDictionary.java @@ -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 languages = LanguageCollection.getAll(context, settings.getEnabledLanguageIds()); - try { - setLoadingStatus(); - loader.load(languages); - } catch (DictionaryImportAlreadyRunningException e) { + setLoadingStatus(); + if (!loader.load(languages)) { loader.stop(); setReadyStatus(); }