package Ġcom . example . zh angle i . my application . fragments Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . animation . Type Evaluator Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os .* Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Linear Interpolator Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġcom . example . zh angle i . my application .* Ċ import Ġcom . example . zh angle i . my application . adapters . Base Abstract Adapter Ċ import Ġcom . example . zh angle i . my application . databinding . Fragment Main Binding Ċ import Ġcom . example . zh angle i . my application . entities . MainMenu Ċ import Ġcom . example . zh angle i . my application . entities . main Menu List Ċ import Ġcom . example . zh angle i . my application . fragments . base . View Binding Base Fragment Ċ import Ġcom . google . android . material . button . Material Button Ċ import Ġcom . hl . downloader . Download Listener Ċ import Ġcom . hl . downloader . Download Manager Ċ import Ġcom . hl . downloader . Download Manager . cancel Download Ċ import Ġcom . hl . downloader . Download Manager . start Down Load Ċ import Ġcom . hl . shadow . Shadow Ċ import Ġcom . hl . shadow . lib . Constants Ċ import Ġcom . hl . utils . My Network Callback Ċ import Ġcom . hl . utils . copy Assets 2 Path Ċ import Ġcom . hl . utils . onClick Ċ import Ġcom . hl . utils . req Permissions Ċ import Ġcom . tencent . shadow . dynamic . host . Enter Callback Ċ import Ġio . d cloud . feature . sdk . DC Uni MP SDK Ċ import Ġorg . jetbrains . ank o . Android Ċ import Ġjava . io . File Ċ import Ġjava . lang . Math . PI Ċ import Ġjava . util .* Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . pow Ċ import Ġkotlin . math . sin ĊĊ Ċ /** Ċ Ġ* Ġ@ author Ġ å¼ł ç£ Ĭ Ċ Ġ*/ Ċ class ĠMain Fragment Ġ: ĠView Binding Base Fragment < Fragment Main Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" MainActivity " ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpermissions List Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . INTER NET , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ PHONE _ STATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ CODE Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġmy Animator Set : ĠMy Animator Set ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġmy View : ĠMy View ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcreate View Binding ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠFragment Main Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFragment Main Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠFragment Main Binding . on View Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this @ Main Fragment . toolbar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Main Fragment . toolbar ?. title Ġ= Ġ" ä¸» é¡µ " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMy Network Callback . add Network Listener ( object Ġ: Ġcom . hl . utils . Network Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Wifi Changed ( isConnected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" wifi Ġ æĶ¹åıĺ ï¼Į Ġis Connected Ġ== Ġ$ isConnected ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isConnected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDownload Manager . resume Down Load () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDownload Manager . pause Download () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis @ Main Fragment . my View Ġ= Ġview Binding ?. my View ĊĠĠĠĠĠĠĠ Ġthis @ Main Fragment . my Animator Set Ġ= ĠMy Animator Set () ĊĠĠĠĠĠĠĠ Ġthis . my View . setOnClickListener ( object Ġ: ĠClick Helper Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . KIT K AT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon DoubleClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy View . fixed Color () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Animator Set ?. pause () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . KIT K AT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Single Click ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy View . change Color () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Animator Set ?. resume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġthis . menu RecyclerView . layout Manager Ġ= ĠGrid LayoutManager ( require Context (), Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġthis . menu RecyclerView . adapter Ġ= Ġobject Ġ: ĠBase Abstract Adapter < MainMenu >( main Menu List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġitem Layout : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . item _ main _ menu ĊĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on ViewHolder Init Listener Ġ= Ġ{ ĠviewHolder , Ġ_, Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . getView < Material Button >( R . id . main _ menu _ button )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġis ĠMain Menu . Down Load Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Download () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Bind Item Listener Ġ= Ġ{ ĠviewHolder , Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbutton Ġ= ĠviewHolder . getView < Material Button >( R . id . main _ menu _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ?. icon Ġ= Ġdata ?. icon ?. run Ġ{ ĠContext Compat . get Drawable ( require Context (), Ġthis ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ?. text Ġ= Ġdata ?. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Scale Animation () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" set Scale Animation : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġanim ator X Ġ= ĠObject Animator () ĊĠĠĠĠĠĠĠ Ġanim ator X . setProperty Name (" scale X ") ĊĠĠĠĠĠĠĠ Ġanim ator X . set Float Values ( 0 . 1 f ) ĊĠĠĠĠĠĠĠ Ġanim ator X . duration Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator X . target Ġ= Ġmy View ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Y Ġ= ĠObject Animator () ĊĠĠĠĠĠĠĠ Ġanim ator Y . setProperty Name (" scale Y ") ĊĠĠĠĠĠĠĠ Ġanim ator Y . set Float Values ( 0 . 1 f ) ĊĠĠĠĠĠĠĠ Ġanim ator Y . duration Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator Y . target Ġ= Ġmy View ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" set Scale Animation : Ġmy View Ġ== Ġ$ my View ") ĊĠĠĠĠĠĠĠ Ġmy Animator Set ?. set Play With Animator ( anim ator X , Ġanim ator Y ) ĊĠĠĠĠĠĠĠ Ġmy Animator Set ?. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Rotate Animation () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" set Rotate Animation : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠObject Animator () ĊĠĠĠĠĠĠĠ Ġanim ator . setProperty Name (" rotation ") ĊĠĠĠĠĠĠĠ Ġanim ator . set Float Values ( 3 6 0 f ) ĊĠĠĠĠĠĠĠ Ġanim ator . repeat Count Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġanim ator . interpol ator Ġ= ĠLinear Interpolator () ĊĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 2 0 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator . target Ġ= Ġmy View ĊĠĠĠĠĠĠĠ Ġmy Animator Set ?. set After Animator ( anim ator ) ĊĠĠĠĠĠĠĠ Ġval Ġstart Point Ġ= ĠPoint ( 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġend Point Ġ= ĠPoint ( 2 0 0 f , Ġ 2 0 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġanim ator 1 Ġ= ĠValue Animator . of Object ( Point Evaluator (), Ġstart Point , Ġend Point ) ĊĠĠĠĠĠĠĠ Ġanim ator 1 . duration Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator 1 . add Update Listener Ġ{ Ġanimation : ĠValue Animator Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġanimation . animated Value Ġas ĠPoint ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Animation Update : Ġ" Ġ+ Ġpoint . x Ġ+ Ġ"," Ġ+ Ġpoint . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy View ?. x Ġ= Ġpoint . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy View ?. y Ġ= Ġpoint . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy View ?. invalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator 1 . start () ĊĠĠĠĠĠĠĠ Ġvar Ġt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( t Ġ<= Ġ 2 Ġ* ĠPI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Permissions List : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( permission Ġin Ġpermissions List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permissions List . add ( permission ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( request Permissions List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Permissions Ġ= Ġrequest Permissions List . to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( require Activity (), Ġrequest Permissions , ĠREQUEST _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Picture Selection Activity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < String >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( result Ġin Ġgrant Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" å¿ħé¡» åĲĮ æĦı æīĢæľī æĿĥéĻĲ æīįèĥ½ ä½¿çĶ¨ æľ¬ åĬŁèĥ½ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Picture Selection Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Picture Selection Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġintent . set Class ( require Context (), ĠPicture Selection Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠPoint ( val Ġx : ĠFloat , Ġval Ġy : ĠFloat ) ĊĊĠĠĠ Ġclass ĠPoint Evaluator Ġ: ĠType Evaluator < Point > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġt Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġevaluate ( fraction : ĠFloat , Ġstart Value : ĠPoint , Ġend Value : ĠPoint ): ĠPoint Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ 1 6 Ġ* Ġsin ( t Ġ/ ĠPI ). pow ( 3 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ 1 3 Ġ* Ġcos ( t ) Ġ- Ġ 5 Ġ* Ġcos ( 2 Ġ* Ġt ) Ġ- Ġ 2 Ġ* Ġcos ( 3 Ġ* Ġt ) Ġ- Ġcos ( 4 Ġ* Ġt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= ĠPoint ( x . toFloat (), Ġy . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ+= Ġ 0 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpoint ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick ( data : ĠMain Menu ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Animate Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" å¼Ģå§ĭ åĬ¨çĶ» è¢« çĤ¹åĩ» åķ ¦ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Scale Animation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Rotate Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Picture Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permission () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Video Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Fragment _ to _ video Fragment Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Camera Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Fragment _ to _ open Camera Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Down Load Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Url Ġ= Ġ" http :// down . qq . com / qq web / QQ _ 1 / android _ apk / Android qq _ 8 . 4 . 1 0 . 4 8 7 5 _ 5 3 7 0 6 5 9 8 0 . apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠString Ġdownload Url Ġ= Ġ" https :// images . pex els . com / photos / 4 9 9 3 0 8 8 / pex els - photo - 4 9 9 3 0 8 8 . jpeg ? cs = s rgb & dl = pex els - r ache l - cla ire - 4 9 9 3 0 8 8 . jpg & fm = jpg "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Down Load ( My Application . getInstance (), Ġdownload Url , Ġobject Ġ: ĠDownload Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdownload Ing ( progress : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( progress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Notification Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Fragment _ to _ notify Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Hook Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Fragment _ to _ hook Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Uni App Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq Permissions ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE , ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Granted Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp id Ġ= Ġ"__ UN I __ 0 7 7 3 E 1 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease And Start App ( appid , Ġ"/ mnt / sd card /__ UN I __ 0 7 7 3 E 1 1 . w gt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġdenied Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" ä½ł æĭ Ĵ ç»Ŀ äºĨ çĽ¸åħ³ æĿĥéĻĲ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . Plugin Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Select Shadow Plugin Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMain Menu . JNI Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Fragment _ to _ JN IF ragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Select Shadow Plugin Dialog () Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid ( require Context ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲ¯åĬ¨ ĠSun Flow er Ġæı Ĵ ä»¶ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲ¯åĬ¨ èĩªå®ļä¹ī æµĭè¯ķ æıĴä»¶ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲ¯åĬ¨ ä¾Ŀèµĸ åºĵ çļĦ Service ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲ¯åĬ¨ èĩªå®ļä¹ī Service ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲ¯åĬ¨ èĩªå®ļä¹ī Intent Service ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . items ( items ) Ġ{ Ġdialog , Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġæı Ĵ ä»¶ Ġzip ĠçļĦ è·¯å¾Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Save Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). get External Files Dir ( null ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" plugins / plugin - debug . zip " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Zip Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). copy Assets 2 Path (" plugins / plugin - debug . zip ", Ġplugin Save Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Constants . KEY _ PLUGIN _ ZIP _ PATH , Ġplugin Zip Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĲ¯åĬ¨ æıĴä»¶ ä¸ŃçļĦ å¯¹åºĶçļĦ ĠActivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . KEY _ CLASS NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . google . samples . apps . sun flower . G arden Activity " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpart Key Ġæ¯ı ä¸ª æıĴä»¶ éĥ½ æľī èĩªå·±çļĦ Ġpart Key Ġ çĶ¨æĿ¥ åĮº åĪĨ å¤ļä¸ª æıĴä»¶ ï¼Į éľĢè¦ģ ä¸İ æıĴä»¶ æīĵ åĮħ èĦļæľ¬ ä¸ŃçļĦ Ġpackage Plugin { Ġpart Key Ġxxx } Ġ ä¸Ģèĩ´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ PLUGIN _ PART _ KEY , Ġ" sun flower ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Long ( Constants . KEY _ FROM _ ID , ĠConstants . FROM _ ID _ START _ ACTIVITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ CLASS NAME , Ġ" com . hl . my plugin . MainActivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ PLUGIN _ PART _ KEY , Ġ" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Long ( Constants . KEY _ FROM _ ID , ĠConstants . FROM _ ID _ START _ ACTIVITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . KEY _ CLASS NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . ts ing link . android . update . Check Update Intent Service " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ PLUGIN _ PART _ KEY , Ġ" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Long ( Constants . KEY _ FROM _ ID , ĠConstants . FROM _ ID _ CALL _ SERVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . KEY _ INT ENT _ ACTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . ts ing link . android . update . ACTION _ START _ DOWNLOAD " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Bundle ( Constants . KEY _ EX TR AS , ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . ts ing link . android . update . extra . DOWNLOAD _ URL ", Ġ" http :// down . qq " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ". com / qq web / QQ _ 1 / android _ apk / Android qq _ 8 . 4 . 1 0 . 4 8 7 5 _ 5 3 7 0 6 5 9 8 0 . apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ CLASS NAME , Ġ" com . hl . my plugin . Test Service ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ PLUGIN _ PART _ KEY , Ġ" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Long ( Constants . KEY _ FROM _ ID , ĠConstants . FROM _ ID _ CALL _ SERVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceiver : ĠResult Receiver Ġ= ĠTest Result Receiver ( Handler ( Looper . get Main Looper ())) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ CLASS NAME , Ġ" com . hl . my plugin . Test Intent Service ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Constants . KEY _ PLUGIN _ PART _ KEY , Ġ" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Long ( Constants . KEY _ FROM _ ID , ĠConstants . FROM _ ID _ CALL _ SERVICE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . KEY _ INT ENT _ ACTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . hl . my plugin . action . FOO " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Bundle ( Constants . KEY _ EX TR AS , ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . putString (" com . hl . my plugin . extra . PARAM 1 ", Ġ" æĪĳ æĺ¯ åıĤæķ° 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put Parcelable (" com . hl . my plugin . extra . PARAM 2 ", Ġreceiver ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bundle . get Bundle ( Constants . KEY _ EX TR AS ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Bundle ( Constants . KEY _ EX TR AS , ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . putString (" æµĭè¯ķ æķ°æį® ", Ġ" æĪĳ æĺ¯ å® ¿ ä¸» ä¼ł è¿ĩ æĿ¥ çļĦæķ°æį® ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpermissions Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Main Fragment . req Permissions (* permissions , Ġall Granted Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Shadow Plugin ( require Context (), Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrelease And Start App ( appid : ĠString , Ġw gt Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuni App Sdk ?. release W gt To Run Path F rome Path ( appid , Ġw gt Path ) Ġ{ Ġcode , Ġp Args Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" code Ġ= Ġ[ ${ code }], Ġp Args Ġ= Ġ[ ${ p Args }] ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( code Ġ== Ġ 1 Ġ&& Ġuni App Sdk ?. is Exists App ( appid ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDC Uni MP SDK . getInstance (). start App ( require Activity (), Ġapp id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" is Exists App Ġ= Ġfalse ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Shadow Plugin ( context : ĠContext , Ġbundle : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplugin Manager Ġ= ĠShadow . get PluginManager ( need Dynamic Ġ= Ġfalse , Ġcontext Ġ= Ġcontext ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġcontext Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġform Id Ġ Ġ æłĩè¯Ĩ æľ¬ æ¬¡ è¯·æ±Ĥ çļĦ æĿ¥ æºĲ ä½įç½® ï¼Į çĶ¨äºİ åĮº åĪĨ åħ¥ åı£ ĊĠĠĠĠĠĠĠĠ Ġ* Ġbundle Ġ ĠåıĤæķ° åĪĹè¡¨ , Ġ å»ºè®® åľ¨ åıĤæķ° åĪĹè¡¨ åĬłåħ¥ èĩªå·±çļĦ éªĮè¯ģ ĊĠĠĠĠĠĠĠĠ Ġ* Ġcallback Ġ çĶ¨äºİ ä»İ PluginManager å®ŀçİ° ä¸Ń è¿ĶåĽŀ View ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġplugin Manager ?. enter ( context , Ġbundle . getLong ( Constants . KEY _ FROM _ ID ), Ġbundle , Ġobject Ġ: ĠEnter Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show Loading View ( view : ĠView ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClose Loading View () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Enter Complete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲ¯åĬ¨ æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" åĲ¯åĬ¨ æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ