diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt index d0407eb7cd..7b5818a144 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt @@ -757,19 +757,19 @@ open class Collection( */ @KotlinCleanup("Check CollectionTask - should be fine") @KotlinCleanup("change to ArrayList!") - fun genCards(nids: kotlin.collections.Collection?, model: Model): ArrayList? { + fun genCards(nids: kotlin.collections.Collection, model: Model): ArrayList? { return genCards>(Utils.collection2Array(nids), model) } fun genCards( - nids: kotlin.collections.Collection?, + nids: kotlin.collections.Collection, model: Model, task: T? ): ArrayList? where T : ProgressSender?, T : CancelListener? { return genCards(Utils.collection2Array(nids), model, task) } - fun genCards(nids: kotlin.collections.Collection?, mid: NoteTypeId): ArrayList? { + fun genCards(nids: kotlin.collections.Collection, mid: NoteTypeId): ArrayList? { return genCards(nids, models.get(mid)!!) } @@ -789,7 +789,7 @@ open class Collection( */ @JvmOverloads fun genCards( - nids: LongArray?, + nids: LongArray, model: Model, task: T? = null ): ArrayList? where T : ProgressSender?, T : CancelListener? { @@ -1036,11 +1036,11 @@ open class Collection( } // NOT IN LIBANKI // - fun cardCount(vararg dids: Long?): Int { + fun cardCount(vararg dids: Long): Int { return db.queryScalar("SELECT count() FROM cards WHERE did IN " + Utils.ids2str(dids)) } - fun isEmptyDeck(vararg dids: Long?): Boolean { + fun isEmptyDeck(vararg dids: Long): Boolean { return cardCount(*dids) == 0 } @@ -1080,7 +1080,7 @@ open class Collection( return rem } - fun emptyCardReport(cids: List?): String { + fun emptyCardReport(cids: List): String { val rep = StringBuilder() db.query( "select group_concat(ord+1), count(), flds from cards c, notes n " + @@ -1122,7 +1122,7 @@ open class Collection( /** Update field checksums and sort cache, after find&replace, etc. * @param nids */ - fun updateFieldCache(nids: kotlin.collections.Collection?) { + fun updateFieldCache(nids: kotlin.collections.Collection) { val snids = Utils.ids2str(nids) updateFieldCache(snids) } @@ -1130,7 +1130,7 @@ open class Collection( /** Update field checksums and sort cache, after find&replace, etc. * @param nids */ - fun updateFieldCache(nids: LongArray?) { + fun updateFieldCache(nids: LongArray) { val snids = Utils.ids2str(nids) updateFieldCache(snids) } @@ -2307,7 +2307,7 @@ open class Collection( /** * Card Flags ***************************************************************************************************** */ - fun setUserFlag(flag: Int, cids: List?) { + fun setUserFlag(flag: Int, cids: List) { assert(0 <= flag && flag <= 7) db.execute( "update cards set flags = (flags & ~?) | ?, usn=?, mod=? where id in " + Utils.ids2str( diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/importer/Anki2Importer.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/importer/Anki2Importer.kt index fb2f0f5c00..2c80d17ab4 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/importer/Anki2Importer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/importer/Anki2Importer.kt @@ -719,7 +719,7 @@ open class Anki2Importer(col: Collection?, file: String) : Importer(col!!, file) return _mediaData(fname, dst.media.dir()) } - private fun _writeDstMedia(fname: String?, data: BufferedInputStream) { + private fun _writeDstMedia(fname: String, data: BufferedInputStream) { try { val path = File(dst.media.dir(), Utils.nfcNormalized(fname)).absolutePath Utils.writeToFile(data, path) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/importer/NoteImporter.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/importer/NoteImporter.kt index e06087b03c..e551c0b97e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/importer/NoteImporter.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/importer/NoteImporter.kt @@ -11,10 +11,7 @@ import com.ichi2.libanki.* import com.ichi2.libanki.template.ParsedNode import com.ichi2.libanki.utils.StringUtils import com.ichi2.libanki.utils.TimeManager -import com.ichi2.utils.Assert -import com.ichi2.utils.HashUtil -import com.ichi2.utils.HtmlUtils -import com.ichi2.utils.JSONObject +import com.ichi2.utils.* // Ported from https://github.com/ankitects/anki/blob/50fdf9b03dec33c99a501f332306f378db5eb4ea/pylib/anki/importing/noteimp.py // Aside from 9f676dbe0b2ad9b87a3bf89d7735b4253abd440e, which allows empty notes. @@ -37,6 +34,7 @@ open class NoteImporter(col: com.ichi2.libanki.Collection, file: String) : Impor /** _nextID in python */ private var mNextId: Long = 0 + @KotlinCleanup("maybe lateinit/nonnull") private var mIds: ArrayList? = null private var mEmptyNotes = false private var mUpdateCount = 0 @@ -210,9 +208,9 @@ open class NoteImporter(col: com.ichi2.libanki.Collection, file: String) : Impor addNew(_new) addUpdates(updates) // make sure to update sflds, etc - mCol.updateFieldCache(mIds) + mCol.updateFieldCache(mIds!!) // generate cards - if (mCol.genCards(mIds, mModel)!!.isNotEmpty()) { + if (mCol.genCards(mIds!!, mModel)!!.isNotEmpty()) { this.log.add(0, getString(R.string.note_importer_empty_cards_found)) } diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/BaseSched.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/BaseSched.kt index 1da1c8ea00..f3d485ea2e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/BaseSched.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/BaseSched.kt @@ -388,7 +388,7 @@ abstract class BaseSched(val col: Collection) { "end)" } - fun remFromDyn(cids: Iterable?) { + fun remFromDyn(cids: Iterable) { emptyDyn("id IN " + Utils.ids2str(cids) + " AND odid") }