Skip to content

Instantly share code, notes, and snippets.

@jpvs0101
jpvs0101 / UserListViewModel.kt
Created July 24, 2021 16:25 — forked from ivanalvarado/UserListViewModel.kt
Correct implementation of Swipe-to-Refresh with LiveData.
class UserListViewModel @Inject constructor(private val userRepository: UserRepository) : ViewModel() {
private val reloadTrigger = MutableLiveData<Boolean>()
private val users: LiveData<List<UserModel>> = Transformations.switchMap(reloadTrigger) {
userRepository.getUsers()
}
init {
refreshUsers()
}
#AdContainer,#AdMiddle,#RadAd_Skyscraper,#ad-frame,#bbccom_leaderboard,#bbccom_mpu,#center_banner,#footer_adcode,#hbBHeaderSpon,#header_adcode,#hiddenHeaderSpon,#navbar_adcode,#pagelet_adbox,#rightAds,#rightcolumn_adcode,#top-advertising,#topMPU,#tracker_advertorial,.ad-now,.adbox,.adspot,.dfpad,.prWrap,.sponsored,[id^="adbrite"],[id^="dclkAds"],[id^="konaLayer"],a.kLink span[id^="preLoadWrap"][class="preLoadWrap"],div[id="tooltipbox"][class^="itxt"],div[id^="google_ads_div"],embed[flashvars*="AdID"],iframe[id="dapIfM0"],iframe[name^="AdBrite"],iframe[src*="clicksor.com"],img[src*="clicksor.com"],ispan#ab_pointer,#A9AdsMiddleBoxTop,#A9AdsOutOfStockWidgetTop,#A9AdsServicesWidgetTop,#ADsmallWrapper,#Ad2,#Ad3Left,#Ad3Right,#AdBar1,#AdContainerTop,#AdHeader,#AdRectangle,#AdShowcase_F1,#AdSky23,#AdSkyscraper,#AdSponsor_SF,#AdTargetControl1_iframe,#AdText,#Ad_Block,#Ad_Center1,#Ad_Top,#Adrectangle,#AdsContent,#AdsWrap,#AdvertMPU23b,#Advertorial,#BannerAdvert,#BigBoxAd,#CompanyDetailsNarrowGoogleAdsPresentationContr