2020-01-08 14:39:33 +00:00
|
|
|
package it.unisannio.ding.ids.wedroid.app.viewModel;
|
2019-11-30 13:43:52 +00:00
|
|
|
|
|
|
|
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;
|
2019-12-02 12:30:48 +00:00
|
|
|
import it.unisannio.ding.ids.wedroid.app.util.SharedPreferenceHelper;
|
2019-12-02 18:19:04 +00:00
|
|
|
import it.unisannio.ding.ids.wedroid.wrapper.entity.BoardBackgroundColor;
|
2019-11-30 13:43:52 +00:00
|
|
|
|
|
|
|
public class BoardsListViewModel extends AndroidViewModel {
|
|
|
|
private BoardRepository repository;
|
|
|
|
private LiveData<List<Board>> allBoards;
|
|
|
|
|
|
|
|
public BoardsListViewModel(@NonNull Application application) {
|
|
|
|
super(application);
|
2019-12-02 12:30:48 +00:00
|
|
|
PreferenceReader reader = new SharedPreferenceHelper(application);
|
2019-11-30 13:43:52 +00:00
|
|
|
repository = new BoardRepository(
|
|
|
|
BoardDatabase.getDatabase(application).boardDao(),
|
|
|
|
ServicesFactory.Companion.getInstance(reader).getBoardService(),
|
|
|
|
reader
|
|
|
|
);
|
|
|
|
|
|
|
|
allBoards = repository.getAllBoards();
|
|
|
|
}
|
|
|
|
|
|
|
|
public LiveData<List<Board>> getAllBoards() {
|
|
|
|
return allBoards;
|
|
|
|
}
|
|
|
|
|
2019-12-02 18:19:04 +00:00
|
|
|
public void insertBoard(String title, boolean isPrivate, BoardBackgroundColor color) {
|
|
|
|
repository.insertBoard(title, isPrivate, color);
|
2019-11-30 13:43:52 +00:00
|
|
|
}
|
|
|
|
|
2019-12-01 18:39:41 +00:00
|
|
|
public void deleteBoard(int position) {
|
2019-12-02 18:19:04 +00:00
|
|
|
List<Board> boards = allBoards.getValue();
|
|
|
|
|
|
|
|
if (boards != null)
|
|
|
|
repository.deleteBoard(boards.get(position).getId());
|
2019-12-01 18:39:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public void refresh() {
|
|
|
|
repository.synchronize();
|
2019-11-30 13:43:52 +00:00
|
|
|
}
|
|
|
|
}
|