54 lines
1.8 KiB
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();
|
|
}
|
|
}
|