package Ġorg . boolean ull . push alerts . permission Ċ Ċ import Ġandroid . content . Context Ċ import Ġorg . boolean ull . core . permission . Permission Composite Controller Ċ import Ġorg . boolean ull . core . permission . Permission Intent Ċ import Ġorg . boolean ull . core . permission . Permission Status Ċ Ċ class ĠPermission Composite Controller Impl ( context : ĠContext ) Ġ: ĠPermission Composite Controller Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpermission Controllers Ġ= ĊĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Alert Controller ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Notification Controller ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Ch ine Controller ( context ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Permission Status (): ĠPermission Status Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermission Controllers . map Ġ{ Ġit . get Permission Status () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit Ġis ĠPermission Status . Permission Bad Status Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠPermission Status . Permission Ok Status ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Permission (): ĠList < Permission Intent > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequests Ġ= Ġmutable ListOf < Permission Intent >() ĊĠĠĠĠĠĠĠ Ġpermission Controllers . map Ġ{ Ġcontroller Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequests . addAll ( controller . request Permission ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrequests ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Permission Status ( id : ĠInt ): ĠPermission Status Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermission Controllers [ id ]. get Permission Status () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Permission ( id : ĠInt ): ĠList < Permission Intent > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermission Controllers [ id ]. request Permission () ĊĠĠĠ Ġ} Ċ }