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> 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> getAllBoards() { return allBoards; } public void insertBoard(String title, boolean isPrivate, BoardBackgroundColor color) { repository.insertBoard(title, isPrivate, color); } public void deleteBoard(int position) { List boards = allBoards.getValue(); if (boards != null) repository.deleteBoard(boards.get(position).getId()); } public void refresh() { repository.synchronize(); } }