From ab7edc4cd2ba71bfd41266d904c1675a3c134407 Mon Sep 17 00:00:00 2001 From: ayans Date: Tue, 14 Jun 2022 23:09:22 +0530 Subject: [PATCH] Rest of the work and documentation --- .../database/NotForUploadDao.kt | 26 +++++++++++ .../database/NotForUploadStatus.kt | 10 ++-- .../ui/selector/CustomSelectorActivity.kt | 7 +-- .../fr/free/nrw/commons/db/AppDatabase.kt | 2 +- .../res/layout/activity_custom_selector.xml | 46 +++++++++++++++++++ 5 files changed, 84 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadDao.kt b/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadDao.kt index ba61afd53..7d3096d33 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadDao.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadDao.kt @@ -20,6 +20,32 @@ abstract class NotForUploadStatusDao { */ @Delete abstract suspend fun delete(notForUploadStatus: NotForUploadStatus) + + /** + * Query Not For Upload status with image sha1. + */ + @Query("SELECT * FROM not_for_upload_table WHERE imageSHA1 = (:imageSHA1) ") + abstract suspend fun getFromImageSHA1(imageSHA1 : String) : NotForUploadStatus? + + /** + * Asynchronous image sha1 query. + */ + suspend fun getNotForUploadFromImageSHA1(imageSHA1: String):NotForUploadStatus? { + return getFromImageSHA1(imageSHA1) + } + + /** + * Deletion Not For Upload status with image sha1. + */ + @Query("DELETE FROM not_for_upload_table WHERE imageSHA1 = (:imageSHA1) ") + abstract suspend fun deleteWithImageSHA1(imageSHA1 : String) + + /** + * Asynchronous image sha1 deletion. + */ + suspend fun deleteNotForUploadWithImageSHA1(imageSHA1: String) { + return deleteWithImageSHA1(imageSHA1) + } } diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadStatus.kt b/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadStatus.kt index c54e8f8f1..a9a9aa3da 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadStatus.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadStatus.kt @@ -1,7 +1,6 @@ package fr.free.nrw.commons.customselector.database -import androidx.room.Entity -import androidx.room.PrimaryKey +import androidx.room.* /** * Entity class for Not For Upload status. @@ -13,5 +12,10 @@ data class NotForUploadStatus( * Original image sha1. */ @PrimaryKey - val imageSHA1 : String + val imageSHA1 : String, + + /** + * imageSHA1 query result from API. + */ + var imageResult : Boolean ) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt index 8dffe7306..5e7f2a76f 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt @@ -11,6 +11,7 @@ import android.view.Window import android.widget.Button import android.widget.ImageButton import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import fr.free.nrw.commons.R import fr.free.nrw.commons.customselector.listeners.FolderClickListener @@ -128,7 +129,7 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi val back : ImageButton = findViewById(R.id.back) back.setOnClickListener { onBackPressed() } - val done : ImageButton = findViewById(R.id.done) + val done : Button = findViewById(R.id.upload) done.setOnClickListener { onDone() } } @@ -154,8 +155,8 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi override fun onSelectedImagesChanged(selectedImages: ArrayList) { viewModel.selectedImages.value = selectedImages - val done : ImageButton = findViewById(R.id.done) - done.visibility = if (selectedImages.isEmpty()) View.INVISIBLE else View.VISIBLE + val bottomLayout : ConstraintLayout = findViewById(R.id.bottom_layout) + bottomLayout.visibility = if (selectedImages.isEmpty()) View.GONE else View.VISIBLE } /** diff --git a/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt b/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt index 5c046c19f..fada1164f 100644 --- a/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt +++ b/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt @@ -13,7 +13,7 @@ import fr.free.nrw.commons.upload.depicts.DepictsDao * The database for accessing the respective DAOs * */ -@Database(entities = [Contribution::class, Depicts::class, UploadedStatus::class, NotForUploadStatus::class], version = 12, exportSchema = false) +@Database(entities = [Contribution::class, Depicts::class, UploadedStatus::class, NotForUploadStatus::class], version = 13, exportSchema = false) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() { abstract fun contributionDao(): ContributionDao diff --git a/app/src/main/res/layout/activity_custom_selector.xml b/app/src/main/res/layout/activity_custom_selector.xml index d96918fee..27beab5d2 100644 --- a/app/src/main/res/layout/activity_custom_selector.xml +++ b/app/src/main/res/layout/activity_custom_selector.xml @@ -14,6 +14,52 @@ android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_layout" app:layout_constraintTop_toBottomOf="@+id/toolbar_layout"/> + + +