From 99643e5be84af7e8da217ed48597ceb3c9d3bc85 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Tue, 4 May 2021 17:59:55 -0600 Subject: before i get too deep in the database stuff --- .../viewmodel/FriendCodeViewModel.java | 79 +++++++++++++++++++++- 1 file changed, 76 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/com/example/wiimmterfaceandroid/viewmodel/FriendCodeViewModel.java') diff --git a/app/src/main/java/com/example/wiimmterfaceandroid/viewmodel/FriendCodeViewModel.java b/app/src/main/java/com/example/wiimmterfaceandroid/viewmodel/FriendCodeViewModel.java index 82b892a..cf31868 100644 --- a/app/src/main/java/com/example/wiimmterfaceandroid/viewmodel/FriendCodeViewModel.java +++ b/app/src/main/java/com/example/wiimmterfaceandroid/viewmodel/FriendCodeViewModel.java @@ -1,9 +1,82 @@ package com.example.wiimmterfaceandroid.viewmodel; +import android.app.Application; + +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.MutableLiveData; + +import com.example.wiimmterfaceandroid.database.AppDatabase; import com.example.wiimmterfaceandroid.model.FriendCode; -public class FriendCodeViewModel { - FriendCode friendCode = new FriendCode(); +import androidx.databinding.ObservableArrayList; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; +import androidx.room.Room; +import androidx.room.RoomDatabase; + +import androidx.databinding.ObservableArrayList; + +public class FriendCodeViewModel extends AndroidViewModel { + ObservableArrayList entries = new ObservableArrayList<>(); + MutableLiveData saving = new MutableLiveData<>(); + MutableLiveData currentEntry = new MutableLiveData<>(); + AppDatabase db; + public FriendCodeViewModel(Application app) { + super(app); + saving.setValue(false); + db = Room.databaseBuilder(app, AppDatabase.class, "fc-database").build(); + new Thread(() -> { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + entries.addAll(db.getFriendCodeDao().getAll()); + }).start(); + } + + public void setCurrentEntry(FriendCode entry) { + currentEntry.postValue(entry); + } + + public MutableLiveData getCurrentEntry() { + return currentEntry; + } + + public MutableLiveData getSaving() { + return saving; + } + + public ObservableArrayList getEntries() { + return entries; + } + + public void saveFriendCode(String name, String friendCode) { + saving.setValue(true); + new Thread(() -> { + if (currentEntry.getValue() != null) { + FriendCode current = currentEntry.getValue(); + current.name = name; + current.friendCode = friendCode; + db.getFriendCodeDao().update(current); + int index = entries.indexOf(current); + entries.set(index, current); + } else { + FriendCode newEntry = new FriendCode(); + newEntry.name = name; + newEntry.friendCode = friendCode; + entries.add(newEntry); + } + saving.postValue(false); + }).start(); + } -} + public void deleteEntry(FriendCode entry) { + new Thread(() -> { + db.getFriendCodeDao().delete(entry); + entries.remove(entry); + }).start(); + } + } -- cgit v1.2.3