package Ġcom . little c org i . course ji . run alone Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . annotation . MainThread Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . by ted ance . sdk . open ad sdk . Ad Slot Ċ import Ġcom . by ted ance . sdk . open ad sdk . TT Ad Constant Ċ import Ġcom . by ted ance . sdk . open ad sdk . TT Ad Native Ċ import Ġcom . by ted ance . sdk . open ad sdk . TT App Download Listener Ċ import Ġcom . by ted ance . sdk . open ad sdk . TT Splash Ad Ċ import Ġcom . little c org i . common lib . Base Activity Ċ import Ġcom . little c org i . common lib . context . start Ċ import Ġcom . little c org i . course ji . App Database Ċ import Ġcom . little c org i . course ji . R Ċ import Ġcom . little c org i . course ji . schedule . logic . model . bean . Table Bean Ċ import Ġcom . little c org i . course ji . schedule . logic . model . bean . Time Detail Bean Ċ import Ġcom . little c org i . course ji . schedule . logic . model . bean . Time Table Bean Ċ import Ġcom . little c org i . course ji . utils . TT Ad Manager Holder Ċ import Ġcom . little c org i . course ji . utils . getP refer Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ ç»Ħä»¶ åĮĸ åįķ çĭ¬ è¿Ĳè¡Į æĹ¶çļĦ Splash Activity Ċ Ġ* Ċ Ġ* Ġ@ author Ġlittle c org i Ġ 2 0 2 1 / 0 5 / 0 7 Ċ Ġ*/ Ċ class ĠSpl ash Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Splash Container : ĠFrame Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm TT Ad Native : ĠTT Ad Native ĊĠĠĠ Ġprivate Ġval Ġm Is Express Ġ= Ġfalse Ġ// Ġæĺ¯åĲ¦ è¯·æ±Ĥ æ¨¡æĿ¿ å¹¿åĳĬ ĊĊĠĠĠ Ġ// Ġprivate Ġval Ġmy AppContext Presenter : ĠMy AppContext Presenter Ġby Ġinject () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ splash 2 ) ĊĊĠĠĠĠĠĠĠ Ġm Splash Container Ġ= ĠfindViewById ( R . id . splash _ container ) ĊĠĠĠĠĠĠĠ Ġ// Ġstep 2 : åĪĽå»º TT Ad Native å¯¹è±¡ ĊĠĠĠĠĠĠĠ Ġm TT Ad Native Ġ= ĠTT Ad Manager Holder . get () !!. create Ad Native ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġstep 3 : åĬłè½½ å¹¿åĳĬ ĊĠĠĠĠĠĠĠ Ġload Splash Ad () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! application Context . getP refer (). getBoolean (" has _ adjust ", Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Data Ġ= ĠTable Bean ( type Ġ= Ġ 1 , Ġid Ġ= Ġ 1 , ĠtableName Ġ= Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Base Ġ= ĠApp Database . get Database ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Dao Ġ= Ġdata Base . table Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Dao Ġ= Ġdata Base . time Detail Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Table Dao Ġ= Ġdata Base . time Table Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( time Table Dao . getTime Table ( 1 ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Table Dao . insert Time Table ( Time Table Bean ( id Ġ= Ġ 1 , Ġname Ġ= Ġ" é»ĺè®¤ ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime List Ġ= ĠArrayList < Time Detail Bean >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 1 , Ġ" 0 8 : 0 0 ", Ġ" 0 8 : 5 0 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 2 , Ġ" 0 8 : 5 5 ", Ġ" 0 9 : 4 5 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 3 , Ġ" 1 0 : 1 5 ", Ġ" 1 1 : 0 5 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 4 , Ġ" 1 1 : 1 0 ", Ġ" 1 2 : 0 0 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 5 , Ġ" 1 4 : 3 0 ", Ġ" 1 5 : 2 0 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 6 , Ġ" 1 5 : 2 5 ", Ġ" 1 6 : 1 5 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 7 , Ġ" 1 6 : 3 0 ", Ġ" 1 7 : 2 0 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 8 , Ġ" 1 7 : 2 5 ", Ġ" 1 8 : 1 5 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 9 , Ġ" 1 9 : 0 0 ", Ġ" 1 9 : 5 0 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Time Detail Bean ( 1 0 , Ġ" 1 9 : 5 5 ", Ġ" 2 0 : 4 5 ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Dao . insert Time List ( time List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Dao . insert Table ( table Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . getP refer (). edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean (" has _ adjust ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Int ("", Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠA Ġ: ĠActivity > Ġstart To Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart < A >() ĊĠĠĠĠĠĠĠ Ġ// Ġ éĶĢ æ¯ ģ æŃ¤ Activity ï¼Į ä»¥ ä¾¿ åľ¨ MainActivity è¿ĶåĽŀ æĹ¶ ä¸į åĨį ä¼ļ æĺ¾ç¤º æŃ¤ Activity ĊĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ å¼Ģ å±ı å¹¿åĳĬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġload Splash Ad () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġstep 3 : åĪĽå»º å¼Ģ å±ı å¹¿åĳĬ è¯·æ±Ĥ åıĤæķ° Ad Slot , åħ·ä½ĵ åıĤæķ° åĲ« ä¹ī åıĤèĢĥ æĸĩæ¡£ ĊĠĠĠĠĠĠĠ Ġval Ġad Slot Ġ= Ġif Ġ( m Is Express ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸ª æĢ§ åĮĸ æ¨¡æĿ¿ å¹¿åĳĬ éľĢè¦ģ ä¼łåħ¥ æľŁ æľĽ å¹¿åĳĬ view çļĦ å®½ ãĢģ é«ĺ ï¼Į åįķä½į dp ï¼Į è¯· ä¼łåħ¥ å®ŀéĻħ éľĢè¦ģ çļĦ å¤§å°ı ï¼Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ¯ Ķ å¦Ĥ ï¼ļ å¹¿åĳĬ ä¸ĭ æĸ¹ æĭ ¼ æİ¥ logo ãĢģ éĢĤ éħį åĪ ĺ æµ· å±ı çŃī ï¼Į éľĢè¦ģ èĢĥèĻĳ å®ŀéĻħ å¹¿åĳĬ å¤§å°ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfloat Ġexpress View Width Ġ= ĠUI Utils . get Screen Width Dp ( this ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfloat Ġexpress View Height Ġ= ĠUI Utils . getHeight ( this ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAd Slot . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Code Id (" 8 8 7 4 4 4 6 7 0 ") Ġ// Ġæ¨¡ æĿ¿ å¹¿åĳĬ éľĢè¦ģ è®¾ç½® æľŁ æľĽ ä¸ª æĢ§ åĮĸ æ¨¡æĿ¿ å¹¿åĳĬ çļĦ å¤§å°ı , åįķä½į dp , ä»£çłģ ä½į æĺ¯åĲ¦ å±ŀ äºİ ä¸ª æĢ§ åĮĸ æ¨¡æĿ¿ å¹¿åĳĬ ï¼Į è¯· åľ¨ ç© ¿ å±± çĶ ² å¹³åı° æŁ¥çľĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġview å®½ é«ĺ çŃīäºİ åĽ¾çīĩ çļĦ å®½ é«ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Express View Accepted Size ( 1 0 8 0 f , Ġ 1 9 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAd Slot . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Code Id (" 8 8 7 4 4 4 6 7 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setImage Accepted Size ( 1 0 8 0 , Ġ 1 9 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġstep 4 : è¯·æ±Ĥ å¹¿åĳĬ ï¼Į è°ĥçĶ¨ å¼Ģ å±ı å¹¿åĳĬ å¼ĤæŃ¥ è¯·æ±Ĥ æİ¥åı£ ï¼Į å¯¹ è¯·æ±Ĥ åĽŀè°ĥ çļĦ å¹¿åĳĬ ä½ľ æ¸²æŁĵ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠ Ġm TT Ad Native . load Splash Ad ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad Slot , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠTT Ad Native . Splash Ad Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ MainThread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( code : ĠInt , Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Toast ( this @ Splash Activity , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart To Activity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ MainThread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Timeout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Toast ( this @ Splash Activity , Ġ" å¼Ģ å±ı å¹¿åĳĬ åĬłè½½ è¶ħæĹ¶ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart To Activity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ MainThread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Splash Ad Load ( ad : ĠT TS pl ash Ad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" å¼Ģ å±ı å¹¿åĳĬ è¯·æ±Ĥ æĪĲåĬŁ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ Splash View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġad . splash View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this @ Splash Activity . is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Splash Container . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ĭ Splash View Ġæ·»åĬł åĪ° ViewGroup ä¸Ń , æ³¨æĦı å¼Ģ å±ı å¹¿åĳĬ view ï¼ļ width Ġ>= 7 0 % å±ı å¹ķ å®½ ï¼Ľ height Ġ>= 5 0 % å±ı å¹ķ é«ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Splash Container . addView ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® ä¸į å¼ĢåĲ¯ å¼Ģ å±ı å¹¿åĳĬ åĢĴ è®¡ æĹ¶ åĬŁèĥ½ ä»¥åıĬ ä¸į æĺ¾ç¤º è·³ è¿ĩ æĮīéĴ® , å¦Ĥæŀľ è¿Ļ ä¹Ī è®¾ç½® ï¼Į æĤ¨ éľĢè¦ģ èĩªå®ļä¹ī åĢĴ è®¡ æĹ¶ éĢ»è¾ĳ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġad . set Not Allow Sdk Count down (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart To Activity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® Splash View çļĦ äº¤ äºĴ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad . set Splash Interaction Listener ( object Ġ: ĠT TS pl ash Ad . Ad Interaction Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Clicked ( view : ĠView , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Ad Clicked ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Info Toast ( this @ Splash Activity , Ġ" å¼Ģ å±ı å¹¿åĳĬ çĤ¹åĩ» ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Show ( view : ĠView , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Ad Show ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Info Toast ( this @ Splash Activity , Ġ" å¼Ģ å±ı å¹¿åĳĬ å±ķç¤º ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Skip () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Ad Skip ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Info Toast ( this @ Splash Activity , Ġ" å¼Ģ å±ı å¹¿åĳĬ è·³ è¿ĩ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart To Activity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Time Over () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Ad Time Over ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Info Toast ( this @ Splash Activity , Ġ" å¼Ģ å±ı å¹¿åĳĬ åĢĴ è®¡ æĹ¶ ç»ĵæĿŁ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart To Activity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad . interaction Type Ġ== ĠTT Ad Constant . INTER ACTION _ TYPE _ DOWNLOAD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad . set Download Listener ( object Ġ: ĠTT App Download Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhas Show Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Idle () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Download Active ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠappName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Info Toast ( this @ Splash Activity , Ġ" ä¸ĭè½½ ä¸Ń ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Show Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Download Paused ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠappName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Info Toast ( this @ Splash Activity , Ġ" ä¸ĭè½½ æļĤ åģľ ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Download Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠappName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Toast ( this @ Splash Activity , Ġ" ä¸ĭè½½ å¤±è´¥ ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Download Finished ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Bytes : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠappName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Info Toast ( this @ Splash Activity , Ġ" ä¸ĭè½½ å®ĮæĪĲ ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Installed ( fileName : ĠString , ĠappName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Info Toast ( this @ Splash Activity , Ġ" å®īè£ħ å®ĮæĪĲ ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD _ TIME _ OUT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD _ TIME _ OUT Ġ= Ġ 5 Ġ* Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Splash [ run alone ]" ĊĠĠĠ Ġ} Ċ }