package Ġcom . kop . fast live Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . widget . Toast Ċ import Ġcom . kop . fast live . utils . pic choose . Pic Chooser Helper Ċ import Ġcom . kop . fast live . utils . call black . Callback Manager Ċ import Ġcom . kop . fast live . utils . call black . Callback Type Ċ import Ġcom . kop . fast live . utils . pic choose . Pic Chooser Type Ċ import Ġcom . kop . fast live . utils . pic choose . Pic Chooser Type . AV AT AR Ċ import Ġcom . kop . fast live . utils . pic choose . Pic Chooser Type . COVER Ċ import Ġpermissions . dispatcher . Needs Permission Ċ import Ġpermissions . dispatcher . On Never Ask Again Ċ import Ġpermissions . dispatcher . On Permission Denied Ċ import Ġpermissions . dispatcher . On Show R ationale Ċ import Ġpermissions . dispatcher . Permission Request Ċ import Ġpermissions . dispatcher . Runtime Permissions Ċ Ċ /** Ċ Ġ* Ġ åĬŁ ĠĠĠ Ġ èĥ½ : Ġ// TODO Ċ Ġ* Ġ åĪĽ Ġ å»º Ġ äºº : ĠK OP Ċ Ġ* ĠåĪĽå»º æĹ¥æľŁ : Ġ 2 0 1 7 / 1 2 / 2 8 Ġ 1 6 : 1 2 Ċ Ġ*/ Ċ @ Suppress Lint (" Registered ") Ċ @ Runtime Permissions Ċ abstract Ġclass ĠPermission Check Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠ Ġprivate Ġvar Ġm Pic Type : ĠPic Chooser Type ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġm Pic Choose Help : ĠPic Chooser Helper ? Ġ= Ġnull ĊĊĠ Ġabstract Ġfun Ġset Pic Type (): ĠPic Chooser Type ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġm Pic Type Ġ= Ġset Pic Type () ĊĠĠĠ Ġm Pic Choose Help Ġ= ĠPic Chooser Helper ( this , Ġm Pic Type !! ) ĊĠ Ġ} ĊĊĠ Ġ@ Needs Permission ( ĊĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠ Ġfun Ġchoose Pic () Ġ{ ĊĠĠĠ Ġm Pic Choose Help ?. setOn Choose Result Listener ( object Ġ: ĠPic Chooser Helper . On Choose Result Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Pic Type Ġ== ĠAV AT AR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĠCallback Manager . getInstance (). get Callback ( Callback Type . CH OOSE _ PIC _ AV AT AR ) ĊĠĠĠĠĠĠĠĠĠ Ġcallback ?. execute Callback ( url ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( m Pic Type Ġ== ĠCO VER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĠCallback Manager . getInstance (). get Callback ( Callback Type . CH OOSE _ PIC _ COVER ) ĊĠĠĠĠĠĠĠĠĠ Ġcallback ?. execute Callback ( url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Fail ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Permission Check Activity , Ġ" éĢīæĭ© å¤±è´¥ ï¼ļ $ msg ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġm Pic Choose Help ?. show Dialog () ĊĠ Ġ} ĊĊĠ Ġ@ Needs Permission ( ĊĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠ ĠManifest . permission . RECORD _ AUDIO ) ĊĠ Ġfun Ġcreate Room () Ġ{ ĊĠĠĠ Ġval Ġcallback Ġ= ĠCallback Manager . getInstance (). get Callback ( Callback Type . CREATE _ ROOM ) ĊĠĠĠ Ġcallback ?. execute Callback ("") ĊĠ Ġ} ĊĊĠ Ġ@ On Show R ationale ( ĊĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠ ĠManifest . permission . RECORD _ AUDIO , ĊĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠ Ġfun Ġon Camera R ationale ( request : ĠPermission Request ) Ġ{ ĊĠĠĠ Ġshow R ationale Dialog ( request ) ĊĠ Ġ} ĊĊĠ Ġ@ On Permission Denied ( ĊĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠ ĠManifest . permission . RECORD _ AUDIO , ĊĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠ Ġfun Ġon Camera Denied () Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġ" æĿĥéĻĲ ä¸į è¢« åħģè®¸ ï¼ģ ", ĠToast . LENGTH _ LONG ). show () ĊĠ Ġ} ĊĊĠ Ġ@ On Never Ask Again ( ĊĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠ ĠManifest . permission . RECORD _ AUDIO , ĊĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠ Ġfun Ġon Camera Never () Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġ" æĿĥéĻĲ è¢« æ°¸ ä¹ħ æĭ Ĵ ç»Ŀ ï¼ģ ", ĠToast . LENGTH _ LONG ). show () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshow R ationale Dialog ( request : ĠPermission Request ) Ġ{ ĊĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġ. set Positive Button (" åĲĮ æĦı ä½¿çĶ¨ " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġ_ Ġ-> Ġrequest . proceed () Ġ} ĊĠĠĠĠĠĠĠ Ġ. set Negative Button (" æĭ Ĵ ç»Ŀ ä½¿çĶ¨ " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġ_ Ġ-> Ġrequest . cancel () Ġ} ĊĠĠĠĠĠĠĠ Ġ. set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġ. setMessage (" APP éľĢè¦ģ çĽ¸åºĶ æĿĥéĻĲ æīįèĥ½ æŃ£å¸¸ ä½¿çĶ¨ ï¼ģ ") ĊĠĠĠĠĠĠĠ Ġ. show () ĊĠ Ġ} ĊĊĠ Ġ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 ) ĊĠĠĠ Ġ// ĠNOTE : Ġdelegate Ġthe Ġpermission Ġhandling Ġto Ġgenerated Ġfunction ĊĠĠĠ Ġon Request Permissions Result ( request Code , Ġgrant Results ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠ Ġif Ġ( m Pic Choose Help Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġm Pic Choose Help ?. on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }