crystal-wallet-android/app/src/main/java/cy/agorise/crystalwallet/viewmodels/ContactListViewModel.java

52 lines
1.7 KiB
Java

package cy.agorise.crystalwallet.viewmodels;
import android.app.Application;
import android.arch.lifecycle.AndroidViewModel;
import android.arch.lifecycle.LiveData;
import android.arch.paging.LivePagedListBuilder;
import android.arch.paging.PagedList;
import cy.agorise.crystalwallet.dao.CrystalDatabase;
import cy.agorise.crystalwallet.enums.CryptoNet;
import cy.agorise.crystalwallet.models.Contact;
/**
* Created by Henry Varona on 1/17/2018.
*/
public class ContactListViewModel extends AndroidViewModel {
private LiveData<PagedList<Contact>> contactList;
private CrystalDatabase db;
public ContactListViewModel(Application application) {
super(application);
this.db = CrystalDatabase.getAppDatabase(application.getApplicationContext());
contactList = new LivePagedListBuilder(this.db.contactDao().contactsByName(),
new PagedList.Config.Builder()
.setEnablePlaceholders(true)
.setPageSize(10)
.setPrefetchDistance(10)
.build()
).build();
}
public void init(CryptoNet cryptoNet){
contactList = new LivePagedListBuilder(this.db.contactDao().contactsByNameAndCryptoNet(cryptoNet.name()),
new PagedList.Config.Builder()
.setEnablePlaceholders(true)
.setPageSize(10)
.setPrefetchDistance(10)
.build()
).build();
}
public LiveData<PagedList<Contact>> getContactList(){
return this.contactList;
}
public boolean contactExists(String name){
return this.db.contactDao().existsByName(name);
}
}