package Ġcom . dash m rl . slo th Ċ Ċ import Ġandroid . support . v 4 . app . Fragment Activity Ċ Ċ /** Ċ Ġ* ĠAuthor ĠĠĠĠĠĠ Ġx in li u Ċ Ġ* ĠDate ĠĠĠĠĠĠĠĠĠ 1 0 / 2 1 / 1 7 Ċ Ġ* ĠTime ĠĠĠĠĠĠĠĠĠ 9 : 0 7 ĠPM Ċ Ġ*/ Ċ class ĠRequest Builder ( internal Ġval Ġact : ĠFragment Activity ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcallback Set Ġ= Ġfalse ĊĠĠĠ Ġinternal Ġval Ġpermissions Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġon Granted : ĠOn Granted Callback ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġon Denied : ĠOn Denied Callback ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġon R ationale : ĠR ationale Callback ĊĠĠĠ Ġinternal Ġvar Ġrequest Code : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġcode ( request Code : ĠInt ): ĠRequest Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . request Code Ġ= Ġrequest Code ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcallback ( on R ationale : ĠR ationale Callback Ġ= ĠDEFAULT _ ON _ RATION ALE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Granted : ĠOn Granted Callback Ġ= ĠDEFAULT _ ON _ GRAN TED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Denied : ĠOn Denied Callback Ġ= ĠDEFAULT _ ON _ DEN IED ): ĠRequest Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on R ationale Ġ= Ġon R ationale ĊĠĠĠĠĠĠĠ Ġthis . on Granted Ġ= Ġon Granted ĊĠĠĠĠĠĠĠ Ġthis . on Denied Ġ= Ġon Denied ĊĠĠĠĠĠĠĠ Ġcallback Set Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcommit () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( callback Set ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" callback () Ġhas Ġnever Ġbeen Ġcall , please Ġcall Ġit Ġat Ġleast Ġonce ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrequest ( var arg Ġpermissions : ĠString ): ĠRequest Builder Ġ= Ġrequest ( listOf (* permissions )) ĊĊĠĠĠ Ġfun Ġrequest ( permissions : ĠList < String >): ĠRequest Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . permissions . clear () ĊĠĠĠĠĠĠĠ Ġthis . permissions . addAll ( permissions ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ ON _ GRAN TED : ĠOn Granted Callback Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ ON _ RATION ALE : ĠR ationale Callback Ġ= Ġ{ Ġ_, Ġrequest Action Ġ-> Ġrequest Action . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ ON _ DEN IED : ĠOn Denied Callback Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠ Ġ} Ċ }