// Path: app/src/main/java/com/vsahin/moneycim/Model/Pojo/Spending.java
// public class Spending {
// 
//     @Embedded
//     private RawSpending rawSpending;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public RawSpending getRawSpending() {
//         return rawSpending;
//     }
// 
//     public void setRawSpending(RawSpending spending) {
//         this.rawSpending = spending;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// 
//     public boolean isSame(Spending s1){
//         return s1.getRawSpending().getDescription().equals(this.getRawSpending().getDescription())
//                 && s1.getRawSpending().getQuantity().equals(this.getRawSpending().getQuantity())
//                 && s1.getRawSpending().getGroupId() == this.getRawSpending().getGroupId()
//                 && s1.getGroupName().equals(this.getGroupName());
// 
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Repository/SpendingRepository.java
// @Singleton
// public class SpendingRepository {
//     private final AppDatabase appDatabase;
//     @Inject
//     public SpendingRepository(AppDatabase appDatabase) {
//         this.appDatabase = appDatabase;
//     }
// 
//     public LiveData<List<Spending>> getSpendings(){
//         return appDatabase.spendingDao().getSpendingsWithGroups();
//     }
// 
//     public LiveData<Double> getTotalSpendingQuantity(){
//         return appDatabase.spendingDao().getTotalSpendingQuantity();
//     }
// 
//     public void addSpending(RawSpending s){
//         appDatabase.spendingDao().addSpending(s);
//     }
// 
//     public LiveData<List<SpendingGroup>> getSpendingGroups(){
//         return appDatabase.spendingGroupDao().getAllSpendingGroups();
//     }
// 
//     public void deleteSpending(int id){
//         appDatabase.spendingDao().deleteSpending(id);
//     }
// }


import com.vsahin.moneycim.Model.Pojo.Spending;
import com.vsahin.moneycim.Model.Repository.SpendingRepository;
import java.util.List;
import javax.inject.Inject;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModel;

package com.vsahin.moneycim.View.SpendingList;





/**
 * Created by Volkan Şahin on 17.08.2017.
 */

public class SpendingListViewModel extends ViewModel {
    private SpendingRepository spendingRepository;

    final LiveData<List<Spending>> spendings;

    @Inject
    SpendingListViewModel(SpendingRepository spendingRepository) {
        this.spendingRepository = spendingRepository;
        spendings = getSpendings();
    }


// Path: app/src/main/java/com/vsahin/moneycim/Model/Pojo/Spending.java
// public class Spending {
// 
//     @Embedded
//     private RawSpending rawSpending;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public RawSpending getRawSpending() {
//         return rawSpending;
//     }
// 
//     public void setRawSpending(RawSpending spending) {
//         this.rawSpending = spending;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// 
//     public boolean isSame(Spending s1){
//         return s1.getRawSpending().getDescription().equals(this.getRawSpending().getDescription())
//                 && s1.getRawSpending().getQuantity().equals(this.getRawSpending().getQuantity())
//                 && s1.getRawSpending().getGroupId() == this.getRawSpending().getGroupId()
//                 && s1.getGroupName().equals(this.getGroupName());
// 
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Repository/SpendingRepository.java
// @Singleton
// public class SpendingRepository {
//     private final AppDatabase appDatabase;
//     @Inject
//     public SpendingRepository(AppDatabase appDatabase) {
//         this.appDatabase = appDatabase;
//     }
// 
//     public LiveData<List<Spending>> getSpendings(){
//         return appDatabase.spendingDao().getSpendingsWithGroups();
//     }
// 
//     public LiveData<Double> getTotalSpendingQuantity(){
//         return appDatabase.spendingDao().getTotalSpendingQuantity();
//     }
// 
//     public void addSpending(RawSpending s){
//         appDatabase.spendingDao().addSpending(s);
//     }
// 
//     public LiveData<List<SpendingGroup>> getSpendingGroups(){
//         return appDatabase.spendingGroupDao().getAllSpendingGroups();
//     }
// 
//     public void deleteSpending(int id){
//         appDatabase.spendingDao().deleteSpending(id);
//     }
// }


// Path: app/src/main/java/com/vsahin/moneycim/View/SpendingList/SpendingListViewModel.java
import com.vsahin.moneycim.Model.Pojo.Spending;
import com.vsahin.moneycim.Model.Repository.SpendingRepository;
import java.util.List;
import javax.inject.Inject;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModel;

package com.vsahin.moneycim.View.SpendingList;





/**
 * Created by Volkan Şahin on 17.08.2017.
 */

public class SpendingListViewModel extends ViewModel {
    private SpendingRepository spendingRepository;

    final LiveData<List<Spending>> spendings;

    @Inject
    SpendingListViewModel(SpendingRepository spendingRepository) {
        this.spendingRepository = spendingRepository;
        spendings = getSpendings();
    }


    private LiveData<List<Spending>> getSpendings(){
