package Ġcom . example . gl cam er ain fo Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ camera _ permissions _ ration ale . view .* Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġused Ġto Ġask Ġthe Ġuser Ġfor Ġcamera Ġpermissions Ċ Ġ*/ Ċ class ĠCamera Permissions Fragment Ġ: Ġandroidx . fragment . app . Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtitle : ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠFactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameter ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtitle ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠLocation Permissions Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( title : ĠString ): ĠCamera Permissions Fragment Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCamera Permissions Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġset Style ( STYLE _ NORMAL , ĠR . style . FullScreen Dialog Style ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( R . layout . fragment _ camera _ permissions _ ration ale , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmagic Ġto Ġkeep Ġapp Ġin Ġimm ers ive Ġmode ĊĠĠĠĠĠĠĠ Ġdialog ?. window ?. set Flags ( WindowManager . LayoutParams . FLAG _ NOT _ FOCUS ABLE , ĠWindow Manager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ) ĊĠĠĠĠĠĠĠ Ġactivity ?. window ?. decor View ?. system Ui Visibility ?. let Ġ{ Ġ Ġdialog ?. window ?. decor View ?. system Ui Visibility Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog ?. setOn Show Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClear Ġthe Ġnot Ġfocus able Ġflag Ġfrom Ġthe Ġwindow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. window ?. clear Flags ( WindowManager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe ĠWindow Manager Ġwith Ġthe Ġnew Ġattributes Ġ( no Ġn icer Ġway ĠI Ġknow Ġof Ġto Ġdo Ġthis ) .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwm Ġ= Ġactivity ?. getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwm . update View Layout ( dialog ?. window ?. decor View , Ġdialog ?. window ?. attributes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġanimations ĊĠĠĠĠĠĠĠ Ġdialog ?. window ?. attributes ?. window Animations Ġ= ĠR . style . Dialog Animation ĊĊĠĠĠĠĠĠĠ Ġ// ĠSetup Ġa Ġtoolbar Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= Ġroot View . camera R ationale Toolbar ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation Icon ( R . drawable . ic _ chevron _ left _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġdismiss () Ġ} ĊĠĠĠĠĠĠĠ Ġtoolbar . setTitle ( R . string . permissions _ title _ camera ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġdialog ?. window ?. attributes ĊĠĠĠĠĠĠĠ Ġparams ?. width Ġ= ĠConstraint Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġparams ?. height Ġ= ĠConstraint Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġdialog ?. window ?. attributes Ġ= Ġparams Ġas ĠWindow Manager . LayoutParams ĊĠĠĠ Ġ} Ċ } Ċ