Class MoodEventProvider

java.lang.Object
com.kernelcrew.moodapp.data.MoodEventProvider

public class MoodEventProvider extends Object
  • Method Details

    • getInstance

      public static MoodEventProvider getInstance()
      Get the singleton instance of the MoodEventProvider.
      Returns:
      Singleton instance
    • insertMoodEvent

      public com.google.android.gms.tasks.Task<Void> insertMoodEvent(MoodEvent moodEvent)
      Insert a new mood event into the DB.
      Parameters:
      moodEvent - Mood event to insert
      Returns:
      Insert task
    • updateMoodEvent

      public com.google.android.gms.tasks.Task<Void> updateMoodEvent(String moodId, MoodEvent moodEvent)
      Update an existing mood event in DB.
      Parameters:
      moodId - ID of mood event to update
      moodEvent - Mood event details to update with
      Returns:
      Update task
    • getMoodEvent

      public com.google.android.gms.tasks.Task<MoodEvent> getMoodEvent(@NonNull String id)
      Get a mood event by id.
      Parameters:
      id - Id of the mood event to fetch
      Returns:
      Task which should resolve to the mood event (or null if not found)
    • deleteMoodEvent

      public com.google.android.gms.tasks.Task<Void> deleteMoodEvent(String moodId)
    • getAll

      public com.google.firebase.firestore.Query getAll()
      Returns all mood events which can then be further filtered.
      Returns:
      All (visible) mood events.
    • listenToMoodEventsForUsers

      public com.google.firebase.firestore.ListenerRegistration listenToMoodEventsForUsers(List<String> userIds, MoodEventFilter filter, int followerLimit, CombinedListener listener)
      Listens to mood events for a list of user IDs. For the current user (assumed to be the first element in userIds) all posts are returned. For each followed user, only the 3 most recent posts are returned. The results from all queries are combined and returned via the CombinedListener.