package Ġcom . blank j . util code . pkg . feature . app Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġcom . blank j . lib . common . Common Title Activity Ċ import Ġcom . blank j . util code . pkg . Config Ċ import Ġcom . blank j . util code . pkg . R Ċ import Ġcom . blank j . util code . pkg . helper . Permission Helper Ċ import Ġcom . blank j . util code . util .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ app .* Ċ Ċ /** Ċ Ġ* Ġ``` Ċ Ġ* Ġauthor : ĠBl ank j Ċ Ġ* Ġblog Ġ Ġ: Ġhttp :// blank j . com Ċ Ġ* Ġtime Ġ Ġ: Ġ 2 0 1 6 / 1 0 / 1 3 Ċ Ġ* Ġdesc Ġ Ġ: Ġdemo Ġabout ĠApp Utils Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ class ĠApp Activity Ġ: ĠCommon Title Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Helper . request Storage ( object Ġ: ĠPermission Helper . On Permission Granted Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstarter Ġ= ĠIntent ( context , ĠApp Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( starter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġobject Ġ: ĠPermission Helper . On Permission Denied Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Denied () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġlistener Ġ= Ġobject Ġ: ĠOn Released Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Released () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠApp Utils . install App ( Config . TEST _ AP K _ PATH ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind Title (): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetString ( R . string . demo _ app ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data ( bundle : ĠBundle ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġbind Layout (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ app ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( savedInstanceState : ĠBundle ?, Ġcontent View : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġapply De bounc ing ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Install App Btn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Un install App Btn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Launch App Btn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rel a unch App Btn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Exit App Btn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Launch App Details Settings Btn ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠSpan Utils . with ( app About Tv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" is App Root : Ġ" Ġ+ ĠApp Utils . is App Root ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" is App Debug : Ġ" Ġ+ ĠApp Utils . is App Debug ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" is App System : Ġ" Ġ+ ĠApp Utils . is App System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" is App Foreground : Ġ" Ġ+ ĠApp Utils . is App Foreground (" com . blank j . android util code ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" is App Running : Ġ" Ġ+ ĠApp Utils . is App Running (" com . blank j . android util code ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" getApp Icon : Ġ"). append Image ( App Utils . getApp Icon (), ĠSpan Utils . ALIGN _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp PackageName : Ġ" Ġ+ ĠApp Utils . getApp PackageName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" get AppName : Ġ" Ġ+ ĠApp Utils . get AppName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Path : Ġ" Ġ+ ĠApp Utils . getApp Path ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Version Name : Ġ" Ġ+ ĠApp Utils . getApp Version Name ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Version Code : Ġ" Ġ+ ĠApp Utils . getApp Version Code ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Signature SHA 1 : Ġ" Ġ+ ĠApp Utils . getApp Signature SHA 1 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Signature SHA 2 5 6 : Ġ" Ġ+ ĠApp Utils . getApp Signature SHA 2 5 6 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Signature MD 5 : Ġ" Ġ+ ĠApp Utils . getApp Signature MD 5 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append Line (" getApp Uid : Ġ" Ġ+ ĠApp Utils . getApp Uid ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" get A pk Info : Ġ" Ġ+ ĠApp Utils . get A pk Info ( App Utils . getApp Path ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo Business () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon De bounc ing Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Install App Btn Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Utils . is App Installed ( Config . TEST _ PKG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Short ( R . string . app _ install _ tips ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! FileUtils . isFile Exists ( Config . TEST _ AP K _ PATH )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelease Install A pk Task ( listener ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Released () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Un install App Btn Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Utils . is App Installed ( Config . TEST _ PKG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utils . uninstall App ( Config . TEST _ PKG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Short ( R . string . app _ uninstall _ tips ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Launch App Btn Ġ-> ĠApp Utils . launch App ( this . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Rel a unch App Btn Ġ-> ĠApp Utils . rel a unch App () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Launch App Details Settings Btn Ġ-> ĠApp Utils . launch App Details Settings () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . app Exit App Btn Ġ-> ĠApp Utils . exit App () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRelease Install A pk Task ( private Ġval Ġm Listener : ĠOn Released Listener ) Ġ: ĠThread Utils . Simple Task < Unit >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdo In Background () Ġ{ ĊĠĠĠĠĠĠĠ ĠResource Utils . copy File From Assets (" test _ install ", ĠConfig . TEST _ AP K _ PATH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Listener . on Released () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Utils . execute By Io ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠOn Released Listener Ġ{ ĊĠĠĠ Ġfun Ġon Released () Ċ }