package Ġg app . season . ro am cat . page . launch Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġg app . season . ro am cat . R Ċ import Ġg app . season . ro am cat . page . Base Activity Ċ import Ġg app . season . ro am cat . page . main . MainActivity Ċ import Ġg app . season . util . tips . Alert Util Ċ import Ġkotlinx . coroutines . Main Scope Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġpermissions . dispatcher .* Ċ Ċ @ Runtime Permissions Ċ class ĠLaunch Activity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ launch ) ĊĠĠĠĠĠĠĠ ĠsetUp () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġoverride Ġfun Ġcustom Imm ersion Bar (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . navigation Bar Color Ġ= Ġresources . getColor ( R . color . launch _ gradient _ end ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// çĶ³è¯· æĿĥéĻĲ ĊĠĠĠĠĠĠĠ Ġrequest External Storage Permission With Permission Check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit AppData () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Handler ( Looper . get Main Looper ()). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}, Ġ 2 0 0 ) */ ĊĠĠĠĠĠĠĠ Ġ// åľ¨ Main Scope () ä¸Ń delay çļĦ æĵįä½ľ ä¸įä¼ļ éĺ» å¡ŀ ä¸» çº¿ç¨ĭ ï¼Į çĽ¸ å½ĵ äºİ Handler ( Looper . get Main Looper ()). post Delayed çļĦ æĵįä½ľ ĊĠĠĠĠĠĠĠ ĠMain Scope (). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Launch Activity , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Needs Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġrequest External Storage Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit AppData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Permission Denied ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġon Request External Storage Permission Denied () Ġ{ ĊĠĠĠĠĠĠĠ Ġalert Permission Denied () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Never Ask Again ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġon Request External Storage Permission Never Ask Again () Ġ{ ĊĠĠĠĠĠĠĠ Ġalert Permission Denied () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Show R ationale ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġshow Permission R ationale For Request External Storage ( request : ĠPermission Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNOTE : ĠShow Ġa Ġr ationale Ġto Ġexplain Ġwhy Ġthe Ġpermission Ġis Ġneeded , Ġe . g . Ġwith Ġa Ġdialog . ĊĠĠĠĠĠĠĠ Ġ// ĠCall Ġproceed () Ġor Ġcancel () Ġon Ġthe Ġprovided ĠPermission Request Ġto Ġcontinue Ġor Ġabort ĊĠĠĠĠĠĠĠ Ġrequest . proceed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Need On Request Permissions Result ") ĊĠĠĠ Ġ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 ) ĊĠĠĠĠĠĠĠ Ġon Request Permissions Result ( request Code , Ġgrant Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġalert Permission Denied () Ġ{ ĊĠĠĠĠĠĠĠ ĠAlert Util . confirm ( this , Ġnull , ĠgetString ( R . string . grant _ storage _ permission ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . btn _ ok ), ĠgetString ( R . string . btn _ cancel ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) Ġ{ Ġcode , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( code Ġ== ĠAlert Util . POSITIVE _ BUTTON ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest External Storage Permission With Permission Check () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ