package Ġcom . github . fer um _ bot . book reuse . ui . fragment . authentication Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . animation . Layout Transition Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . github . fer um _ bot . book reuse . R Ċ import Ġcom . github . fer um _ bot . book reuse . databinding . Fragment General Information Registration Binding Ċ import Ġcom . github . fer um _ bot . book reuse . ui . fragment . base . MainActivity Base Fragment Ċ import Ġcom . github . fer um _ bot . book reuse . ui . fragment . deleg ates . view Binding Ċ import Ġcom . github . fer um _ bot . book reuse . view models . authentication . General Information ViewModel Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMat vey ĠPop ov . Ċ Ġ* ĠDate : Ġ 0 2 . 0 3 . 2 0 2 1 Ċ Ġ* ĠTime : Ġ 1 9 : 1 1 Ċ Ġ* ĠProject : ĠBook Re use Ċ Ġ*/ Ċ Ċ class ĠGeneral Information Fragment : ĠMainActivity Base Fragment ( R . layout . fragment _ general _ information _ registration ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomponent Ġby Ġlazy Ġ{ Ġactivity Component . authorization Component (). build () Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding Ġ{ ĠFragment General Information Registration Binding . bind ( it ) Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < General Information ViewModel > Ġ{ Ġactivity Component . viewModel Factory () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetUp Animations () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġset All Click Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Animations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Transition Ġ= Ġbinding . main ViewGroup . layout Transition ĊĠĠĠĠĠĠĠ Ġlayout Transition . enable Transition Type ( Layout Transition . CHANG ING ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset All Click Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . choose Address EditText . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis :: open Choose Address Fragment Or Request Permission . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . map Placeholder . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis :: open Choose Address Fragment Or Request Permission . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Choose Address Fragment Or Request Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( geo location IsNot Available ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Geo location Permission () ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠNAV IG ATE ĠTO ĠSCREEN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgeo location IsNot Available (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġrequire Context () ĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . check Self Permission ( context , ĠManifest . permission . ACCESS _ F INE _ LOCATION ) Ġ!= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . check Self Permission ( context , ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ) Ġ!= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Geo location Permission () Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER MISSION _ REQUEST _ ACCESS _ CODE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPER MISSION _ REQUEST _ ACCESS _ CODE Ġ= Ġ 1 ĊĠĠĠ Ġ} Ċ }