From 80a0223d9a5df59fc430a41857087b871e237206 Mon Sep 17 00:00:00 2001 From: BGbaderguet <48762010+BGbaderguet@users.noreply.github.com> Date: Mon, 9 Nov 2020 20:00:26 +0100 Subject: [PATCH] Repository to retreive the database elements --- .../myweather/repository/CityRepository.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 app/src/main/java/fr/romanet/vj/apps/myweather/repository/CityRepository.java diff --git a/app/src/main/java/fr/romanet/vj/apps/myweather/repository/CityRepository.java b/app/src/main/java/fr/romanet/vj/apps/myweather/repository/CityRepository.java new file mode 100644 index 0000000..84635f8 --- /dev/null +++ b/app/src/main/java/fr/romanet/vj/apps/myweather/repository/CityRepository.java @@ -0,0 +1,56 @@ +package fr.romanet.vj.apps.myweather.repository; + +import android.content.Context; +import androidx.room.Room; +import java.util.List; +import fr.romanet.vj.apps.myweather.bo.City; +import fr.romanet.vj.apps.myweather.database.CityDatabase; + +public final class CityRepository +{ + private static volatile CityRepository instance; + + // We accept the "out-of-order writes" case + public static CityRepository getInstance(Context context) + { + if (instance == null) + { + synchronized (CityRepository.class) + { + if (instance == null) + { + instance = new CityRepository(context); + } + } + } + return instance; + } + + private final CityDatabase cityDatabase; + + private CityRepository(Context context) + { + cityDatabase = Room.databaseBuilder(context, CityDatabase.class, "city-database").allowMainThreadQueries().build(); + } + + public List getCity() + { + return cityDatabase.cityDao().getCity(); + } + + public void deleteCity(City cityToDelete) + { + cityDatabase.cityDao().deleteCity(cityToDelete); + } + + public void addCity(City cityToAdd) + { + cityDatabase.cityDao().addCity(cityToAdd); + } + + public List sortCityByName() + { + return cityDatabase.cityDao().sortCityByName(); + } + +}