1
0
Fork 0

optimized the word pair save time

This commit is contained in:
sspanak 2024-09-09 11:54:26 +03:00 committed by Dimo Karaivanov
parent c689284af5
commit 3f76f40058
3 changed files with 29 additions and 13 deletions

View file

@ -86,8 +86,16 @@ public class InsertOps {
return;
}
StringBuilder sql = new StringBuilder(
"INSERT INTO " + Tables.getWordPairs(langId) + " (word1, word2, sequence2) VALUES"
);
for (WordPair pair : pairs) {
db.insert(Tables.getWordPairs(langId), null, pair.toContentValues());
sql.append(pair.toSqlRow()).append(",");
}
sql.setLength(sql.length() - 1);
db.execSQL(sql.toString());
}
}

View file

@ -1,7 +1,5 @@
package io.github.sspanak.tt9.db.wordPairs;
import android.content.ContentValues;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -31,7 +29,7 @@ public class WordPair {
|| word1.isEmpty() || word2.isEmpty()
|| (word1.length() > SettingsStore.WORD_PAIR_MAX_WORD_LENGTH && word2.length() > SettingsStore.WORD_PAIR_MAX_WORD_LENGTH)
|| word1.equals(word2)
|| sequence2 == null || word2.length() != sequence2.length()
|| sequence2 == null || word2.length() != sequence2.length() || !(new Text(sequence2).isNumeric())
|| !(new Text(word1).isAlphabetic()) || !(new Text(word2).isAlphabetic());
}
@ -42,15 +40,6 @@ public class WordPair {
}
public ContentValues toContentValues() {
ContentValues values = new ContentValues();
values.put("word1", word1);
values.put("word2", word2);
values.put("sequence2", sequence2);
return values;
}
@Override
public int hashCode() {
if (hash == null) {
@ -67,6 +56,11 @@ public class WordPair {
}
public String toSqlRow() {
return "('" + word1 + "','" + word2 + "','" + sequence2 + "')";
}
@NonNull
@Override
public String toString() {

View file

@ -59,6 +59,20 @@ public class Text extends TextTools {
return true;
}
public boolean isNumeric() {
if (text == null) {
return false;
}
for (int i = 0, end = text.length(); i < end; i++) {
if (!Character.isDigit(text.charAt(i))) {
return false;
}
}
return true;
}
public boolean isEmpty() {
return text == null || text.isEmpty();
}