mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 21:03:54 +01:00
ImageLoader Test Updated (#4517)
This commit is contained in:
parent
443dcf445b
commit
36a94fea93
4 changed files with 101 additions and 128 deletions
|
|
@ -1,9 +1,7 @@
|
|||
package fr.free.nrw.commons.customselector.database
|
||||
|
||||
import androidx.room.*
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.util.*
|
||||
import kotlinx.coroutines.*
|
||||
|
||||
/**
|
||||
* UploadedStatusDao for Custom Selector.
|
||||
|
|
@ -29,58 +27,30 @@ abstract class UploadedStatusDao {
|
|||
@Delete
|
||||
abstract suspend fun delete(uploadedStatus: UploadedStatus)
|
||||
|
||||
/**
|
||||
* Get All entries from the uploaded status table.
|
||||
*/
|
||||
@Query("SELECT * FROM uploaded_table")
|
||||
abstract suspend fun getAll() : List<UploadedStatus>
|
||||
|
||||
/**
|
||||
* Query uploaded status with image sha1.
|
||||
*/
|
||||
@Query("SELECT * FROM uploaded_table WHERE imageSHA1 = (:imageSHA1) ")
|
||||
abstract suspend fun getFromImageSHA1(imageSHA1 : String) : UploadedStatus
|
||||
abstract suspend fun getFromImageSHA1(imageSHA1 : String) : UploadedStatus?
|
||||
|
||||
/**
|
||||
* Query uploaded status with modified image sha1.
|
||||
*/
|
||||
@Query("SELECT * FROM uploaded_table WHERE modifiedImageSHA1 = (:modifiedImageSHA1) ")
|
||||
abstract suspend fun getFromModifiedImageSHA1(modifiedImageSHA1 : String) : UploadedStatus
|
||||
abstract suspend fun getFromModifiedImageSHA1(modifiedImageSHA1 : String) : UploadedStatus?
|
||||
|
||||
/**
|
||||
* Asynchronous insert into uploaded status table.
|
||||
*/
|
||||
suspend fun insertUploaded(uploadedStatus: UploadedStatus) {
|
||||
uploadedStatus.lastUpdated = Calendar.getInstance().time as Date?
|
||||
uploadedStatus.lastUpdated = Calendar.getInstance().time
|
||||
insert(uploadedStatus)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronous delete from uploaded status table.
|
||||
*/
|
||||
suspend fun deleteUploaded(uploadedStatus: UploadedStatus) {
|
||||
delete(uploadedStatus)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronous update entry in uploaded status table.
|
||||
*/
|
||||
suspend fun updateUploaded(uploadedStatus: UploadedStatus) {
|
||||
update(uploadedStatus)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronous image sha1 query.
|
||||
*/
|
||||
suspend fun getUploadedFromImageSHA1(imageSHA1: String):UploadedStatus {
|
||||
suspend fun getUploadedFromImageSHA1(imageSHA1: String):UploadedStatus? {
|
||||
return getFromImageSHA1(imageSHA1)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronous modified image sha1 query.
|
||||
*/
|
||||
suspend fun getUploadedFromModifiedImageSHA1(modifiedImageSHA1: String):UploadedStatus {
|
||||
return getFromModifiedImageSHA1(modifiedImageSHA1)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -62,9 +62,9 @@ class ImageLoader @Inject constructor(
|
|||
/**
|
||||
* Coroutine Dispatchers and Scope.
|
||||
*/
|
||||
private var defaultDispatcher = Dispatchers.Default
|
||||
private var ioDispatcher = Dispatchers.IO
|
||||
private val scope = MainScope()
|
||||
private var defaultDispatcher : CoroutineDispatcher = Dispatchers.Default
|
||||
private var ioDispatcher : CoroutineDispatcher = Dispatchers.IO
|
||||
private val scope : CoroutineScope = MainScope()
|
||||
|
||||
/**
|
||||
* Query image and setUp the view.
|
||||
|
|
@ -129,7 +129,7 @@ class ImageLoader @Inject constructor(
|
|||
* @return Query result.
|
||||
*/
|
||||
|
||||
private suspend fun querySHA1(SHA1: String): Result {
|
||||
suspend fun querySHA1(SHA1: String): Result {
|
||||
return withContext(ioDispatcher) {
|
||||
mapResult[SHA1]?.let {
|
||||
return@withContext it
|
||||
|
|
@ -157,7 +157,7 @@ class ImageLoader @Inject constructor(
|
|||
*
|
||||
* @return sha1 of the image
|
||||
*/
|
||||
private suspend fun getSHA1(image: Image): String {
|
||||
suspend fun getSHA1(image: Image): String {
|
||||
mapModifiedImageSHA1[image]?.let{
|
||||
return it
|
||||
}
|
||||
|
|
@ -169,14 +169,14 @@ class ImageLoader @Inject constructor(
|
|||
/**
|
||||
* Get the uploaded status entry from the database.
|
||||
*/
|
||||
private suspend fun getFromUploaded(imageSha1:String): UploadedStatus?{
|
||||
suspend fun getFromUploaded(imageSha1:String): UploadedStatus? {
|
||||
return uploadedStatusDao.getUploadedFromImageSHA1(imageSha1)
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert into uploaded status table.
|
||||
*/
|
||||
private suspend fun insertIntoUploaded(imageSha1:String, modifiedImageSha1:String, imageResult:Boolean, modifiedImageResult: Boolean){
|
||||
suspend fun insertIntoUploaded(imageSha1:String, modifiedImageSha1:String, imageResult:Boolean, modifiedImageResult: Boolean){
|
||||
uploadedStatusDao.insertUploaded(
|
||||
UploadedStatus(
|
||||
imageSha1,
|
||||
|
|
@ -190,7 +190,7 @@ class ImageLoader @Inject constructor(
|
|||
/**
|
||||
* Get image sha1 from uri, used to retrieve the original image sha1.
|
||||
*/
|
||||
private suspend fun getImageSHA1(uri: Uri): String {
|
||||
suspend fun getImageSHA1(uri: Uri): String {
|
||||
return withContext(ioDispatcher) {
|
||||
mapImageSHA1[uri]?.let{
|
||||
return@withContext it
|
||||
|
|
@ -204,7 +204,7 @@ class ImageLoader @Inject constructor(
|
|||
/**
|
||||
* Get result data from database.
|
||||
*/
|
||||
private fun getResultFromUploadedStatus(uploadedStatus: UploadedStatus): Result {
|
||||
fun getResultFromUploadedStatus(uploadedStatus: UploadedStatus): Result {
|
||||
if (uploadedStatus.imageResult || uploadedStatus.modifiedImageResult) {
|
||||
return Result.TRUE
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue