In depictions selection screen, suggest recently selected items (#4361)

* implement in depictions selection screen to suggest recently selected items

*use RoomDataBase
* Add Javadoc

* fix an bug

* minar change and remove extra line of code

* minar changes

* improve implemention strategy

* fix unittest

* Add javadoc

* added javadoc
This commit is contained in:
Prince kushwaha 2021-05-31 15:49:55 +05:30 committed by GitHub
parent 18cfc89fa4
commit 4fa18e5e27
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 196 additions and 16 deletions

View file

@ -5,13 +5,16 @@ import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import fr.free.nrw.commons.contributions.Contribution
import fr.free.nrw.commons.contributions.ContributionDao
import fr.free.nrw.commons.upload.depicts.Depicts
import fr.free.nrw.commons.upload.depicts.DepictsDao
/**
* The database for accessing the respective DAOs
*
*/
@Database(entities = [Contribution::class], version = 7, exportSchema = false)
@Database(entities = [Contribution::class,Depicts::class], version = 7, exportSchema = false)
@TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {
abstract fun contributionDao(): ContributionDao
abstract fun DepictsDao (): DepictsDao;
}

View file

@ -23,6 +23,27 @@ public class Converters {
return ApplicationlessInjection.getInstance(CommonsApplication.getInstance()).getCommonsApplicationComponent().gson();
}
/**
* convert DepictedItem object to string
* input Example -> DepictedItem depictedItem=new DepictedItem ()
* output Example -> string
*/
@TypeConverter
public static String depictsItemToString(DepictedItem objects) {
return writeObjectToString(objects);
}
/**
* convert string to DepictedItem object
* output Example -> DepictedItem depictedItem=new DepictedItem ()
* input Example -> string
*/
@TypeConverter
public static DepictedItem stringToDepicts(String objectList) {
return readObjectWithTypeToken(objectList, new TypeToken<DepictedItem>() {
});
}
@TypeConverter
public static Date fromTimestamp(Long value) {
return value == null ? null : new Date(value);