package Ġcom . yu ai hen . w cd xg . mv vm . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġandroidx . paging . Pager Ċ import Ġandroidx . paging . Paging Config Ċ import Ġandroidx . paging . Paging Data Ċ import Ġandroidx . paging . cached In Ċ import Ġcom . yu ai hen . w cd xg . mv vm . Base ViewModel Ċ import Ġcom . yu ai hen . w cd xg . mv vm . paging . Base Coin Paging Source Ċ import Ġcom . yu ai hen . w cd xg . net . model . Coin Record Model Ċ import Ġkotlinx . coroutines . flow . collect Latest Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠY u ai hen . Ċ Ġ* Ġon Ġ 2 0 2 1 / 6 / 1 7 Ċ Ġ*/ Ċ class ĠCoin ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ coin Record LiveData Ġ= ĠMutable LiveData < Paging Data < Coin Record Model . Coin Data >>() ĊĠĠĠ Ġval Ġcoin Record LiveData Ġ= Ġ_ coin Record LiveData ĊĠĠĠ Ġprivate Ġval Ġ_ coin Rank Record LiveData Ġ= ĊĠĠĠĠĠĠĠ ĠMutable LiveData < Paging Data < Coin Record Model . Coin Data >>() ĊĠĠĠ Ġval Ġcoin Rank Record LiveData Ġ= Ġ_ coin Rank Record LiveData ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç§¯ åĪĨ è®°å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Coin Record () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// pageSize ä¸Ģ é¡µ åĬłè½½ å¤ļå°ĳ æĿ¡ Ġ Ġprefetch Distance è¡¨ç¤º è·Ŀç¦» åºķ éĥ¨ å¤ļå°ĳ æĿ¡ æķ°æį® å¼Ģå§ĭ é¢Ħ åĬłè½½ ï¼Į è®¾ç½® 0 åĪĻ è¡¨ç¤º æ»ĳ åĪ° åºķ éĥ¨ æīį åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP aging Config ( pageSize Ġ= Ġ 2 0 , Ġprefetch Distance Ġ= Ġ 5 , Ġinitial Load Size Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Coin Paging Source ( Base Coin Paging Source . CO IN _ RECORD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. flow . cached In ( this ). collect Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coin Record LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç§¯ åĪĨ æİĴ è¡Į æ ¦ ľ è®°å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Coin Rank Record () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// pageSize ä¸Ģ é¡µ åĬłè½½ å¤ļå°ĳ æĿ¡ Ġ Ġprefetch Distance è¡¨ç¤º è·Ŀç¦» åºķ éĥ¨ å¤ļå°ĳ æĿ¡ æķ°æį® å¼Ģå§ĭ é¢Ħ åĬłè½½ ï¼Į è®¾ç½® 0 åĪĻ è¡¨ç¤º æ»ĳ åĪ° åºķ éĥ¨ æīį åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP aging Config ( pageSize Ġ= Ġ 2 0 , Ġprefetch Distance Ġ= Ġ 5 , Ġinitial Load Size Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Coin Paging Source ( Base Coin Paging Source . CO IN _ RAN K ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. flow . cached In ( this ). collect Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coin Rank Record LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }