package Ġme . w cy . music . loader Ċ Ċ import Ġandroid . app . Loader Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Loader Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Base Columns Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . webkit . Value Callback Ċ import Ġme . w cy . music . model . Music Ċ import Ġme . w cy . music . storage . preference . Preferences Ċ import Ġme . w cy . music . utils . Cover Loader Ċ import Ġme . w cy . music . utils . Parse Utils Ċ import Ġme . w cy . music . utils . System Utils Ċ Ċ /** Ċ Ġ* Ġ@ author Ġw cy Ċ Ġ* Ġ@ date Ġ 2 0 1 8 / 7 / 1 1 Ċ Ġ*/ Ċ class ĠMusic Loader Callback ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġcallback : ĠValue Callback < List < Music >>) Ġ: ĠLoader Manager . Loader Callbacks < Cursor > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmusic List Ġ= Ġmutable ListOf < Music >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Loader ( id : ĠInt , Ġargs : ĠBundle ?): ĠLoader < Cursor > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMusic Cursor Loader ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad Finished ( loader : ĠLoader < Cursor > ?, Ġdata : ĠCursor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfilter Time Ġ= ĠParse Utils . parse Long ( Preferences . get Filter Time ()) Ġ* Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġfilter Size Ġ= ĠParse Utils . parse Long ( Preferences . get Filter Size ()) Ġ* Ġ 1 0 2 4 ĊĊĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmusic List . clear () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( data . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæĺ¯åĲ¦ ä¸º éŁ³ ä¹Ĳ ï¼Į éŃ ħ æĹı æīĭæľº ä¸Ĭ å§ĭ ç»Ī ä¸º 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Music Ġ= Ġdata . getInt ( data . getColumnIndex ( Media Store . Audio . Audio Columns . IS _ M US IC )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! System Utils . is Fly me () Ġ&& Ġis Music Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġdata . getLong ( data . getColumnIndex ( Media Store . Audio . Media . DURATION )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( duration Ġ< Ġfilter Time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileSize Ġ= Ġdata . getLong ( data . getColumnIndex ( Media Store . Audio . Media . SIZE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Size Ġ< Ġfilter Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġdata . getLong ( data . getColumnIndex ( Base Columns ._ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġdata . getString ( data . getColumnIndex ( Media Store . Audio . Audio Columns . TITLE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartist Ġ= Ġdata . getString ( data . getColumnIndex ( Media Store . Audio . Audio Columns . AR TI ST )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Ġ= Ġdata . getString ( data . getColumnIndex ( Media Store . Audio . Audio Columns . AL BU M )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Id Ġ= Ġdata . getLong ( data . getColumnIndex ( Media Store . Audio . Audio Columns . AL BU M _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġdata . getString ( data . getColumnIndex ( Media Store . Audio . Audio Columns . DATA )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġdata . getString ( data . getColumnIndex ( Media Store . Audio . Audio Columns . DISPLAY _ NAME )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic Ġ= ĠMusic () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . song Id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . type Ġ= ĠMusic . Type . LOCAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . artist Ġ= Ġartist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . album Ġ= Ġalbum ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . album Id Ġ= Ġalbum Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . duration Ġ= Ġduration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . path Ġ= Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . fileName Ġ= ĠfileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . file Size Ġ= ĠfileSize ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(++ counter Ġ<= Ġ 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª åĬłè½½ åīį 2 0 é¦ĸ çļĦ ç¼© çķ¥ åĽ¾ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCover Loader . get (). load Thumb ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic List . add ( music ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcallback . on Receive Value ( music List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Loader Reset ( loader : ĠLoader < Cursor > ?) Ġ{ ĊĠĠĠ Ġ} Ċ }