Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainViewModel extends AndroidViewModel {
- private static SomethingDatabase database;
- private LiveData<List<Something>> something;
- public MainViewModel(@NonNull Application application) {
- super(application);
- database = SomethingDatabase.getInstance(getApplication());
- something = database.somethingDao().getAllSomething();
- }
- public Something getSomethingById(int id) {
- try {
- return new GetSomethingTask().execute(id).get();
- } catch (ExecutionException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return null;
- }
- public void deleteAllSomething() {
- new DeleteSomethingTask().execute();
- }
- public void insertSomething(Something something) {
- new InsertTask().execute(something);
- }
- public void deleteSomething(Something something) {
- new DeleteTask().execute(something);
- }
- public LiveData<List<Something>> getSomething() {
- return something;
- }
- private static class DeleteTask extends AsyncTask<Something, Void, Void> {
- @Override
- protected Void doInBackground(Something... something) {
- if (something != null && something.length > 0) {
- database.somethingDao().deleteSomething(something[0]);
- }
- return null;
- }
- }
- private static class InsertTask extends AsyncTask<Something, Void, Void> {
- @Override
- protected Void doInBackground(Something... something) {
- if (something != null && something.length > 0) {
- database.somethingDao().insertSomething(something[0]);
- }
- return null;
- }
- }
- private static class DeleteSomethingTask extends AsyncTask<Void, Void, Void> {
- @Override
- protected Void doInBackground(Void... integers) {
- database.somethingDao().deleteAllSomething();
- return null;
- }
- }
- private static class GetSomethingTask extends AsyncTask<Integer, Void, Something> {
- @Override
- protected Something doInBackground(Integer... integers) {
- if (integers != null && integers.length > 0) {
- return database.somethingDao().getSomethingById(integers[0]);
- }
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement