wedroid/app/src/main/java/it/unisannio/ding/ids/wedroid/app/viewmodel/BoardsListViewModel.java

54 lines
1.8 KiB
Java

package it.unisannio.ding.ids.wedroid.app.viewModel;
import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import java.util.List;
import it.unisannio.ding.ids.wedroid.app.data.database.BoardDatabase;
import it.unisannio.ding.ids.wedroid.app.data.entity.Board;
import it.unisannio.ding.ids.wedroid.app.data.repository.BoardRepository;
import it.unisannio.ding.ids.wedroid.app.util.PreferenceReader;
import it.unisannio.ding.ids.wedroid.app.util.ServicesFactory;
import it.unisannio.ding.ids.wedroid.app.util.SharedPreferenceHelper;
import it.unisannio.ding.ids.wedroid.wrapper.entity.BoardBackgroundColor;
public class BoardsListViewModel extends AndroidViewModel {
private BoardRepository repository;
private LiveData<List<Board>> allBoards;
public BoardsListViewModel(@NonNull Application application) {
super(application);
PreferenceReader reader = new SharedPreferenceHelper(application);
repository = new BoardRepository(
BoardDatabase.getDatabase(application).boardDao(),
ServicesFactory.Companion.getInstance(reader).getBoardService(),
reader
);
allBoards = repository.getAllBoards();
}
public LiveData<List<Board>> getAllBoards() {
return allBoards;
}
public void insertBoard(String title, boolean isPrivate, BoardBackgroundColor color) {
repository.insertBoard(title, isPrivate, color);
}
public void deleteBoard(int position) {
List<Board> boards = allBoards.getValue();
if (boards != null)
repository.deleteBoard(boards.get(position).getId());
}
public void refresh() {
repository.synchronize();
}
}