package Ġcom . aj ce . host elm ate . fragments Ċ Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . aj ce . host elm ate . R Ċ import Ġcom . aj ce . host elm ate . Utils . Companion . getMonth In Three Cap Letter Ċ import Ġcom . aj ce . host elm ate . service feedback . Feedback Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġkotlinx . android . synt hetic . main . content _ issue _ status .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ feedback .* Ċ import Ġorg . apache . commons . net . ntp . N TP UDP Client Ċ import Ġorg . apache . commons . net . ntp . Time Info Ċ import Ġjava . net . Inet Address Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠJ ith in J ude Ġon Ġ 0 1 , May , 2 0 2 0 Ċ Ġ*/ Ċ class ĠFeedback Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġvar Ġdatabase Reference : ĠDatabase Reference ? Ġ= Ġnull ĊĊĠĠĠ Ġval ĠUSER _ EMAIL : ĠString Ġ= Ġ" user _ email " ĊĠĠĠ Ġvar Ġperson Email : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġcurrent YY : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcurrent MM : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġfood Rating : ĠInt ? Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġfood Review : ĠString ? Ġ= Ġ"" ĊĠĠĠ Ġvar Ġcleaning Rating : ĠInt ? Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġcleaning Review : ĠString ? Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . fragment _ feedback , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġactivity ?. title Ġ= ĠgetString ( R . string . request _ feedback ) ĊĊĠĠĠĠĠĠĠ Ġperson Email Ġ= Ġarguments ?. getString ( USER _ EMAIL ) ĊĊĠĠĠĠĠĠĠ Ġrating Bar Food . setOn Rating ChangeListener Ġ{ Ġrating Bar , Ġpre Count , Ġcurrent Rating Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfood Rating Ġ= Ġcurrent Rating ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrating Bar Clean ing . setOn Rating ChangeListener Ġ{ Ġrating Bar , Ġpre Count , Ġcurrent Rating Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcleaning Rating Ġ= Ġcurrent Rating ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn Submit Feedback . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfood Review Ġ= Ġet Food . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcleaning Review Ġ= Ġet Clean ing . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Month Key Ġ= Ġ" 2 0 2 0 _"+ getMonth In Three Cap Letter ( current MM ?. toInt () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Reference Ġ= ĠFirebase Database . getInstance (). getReference (" feedback /$ year Month Key ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Feedback () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGet Internet Time (). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsubmit Feedback () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( food Rating Ġ== Ġ 0 Ġ|| Ġcleaning Rating Ġ== Ġ 0 Ġ|| Ġfood Review Ġ== Ġ"" Ġ|| Ġcleaning Review Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Form Ġfields Ġcannot Ġbe Ġempty ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmonthly Key Ġ= Ġperson Email ?. replace (".", Ġ"_ ") ĊĊĠĠĠĠĠĠĠ Ġval Ġfeedback Ġ= ĠFeedback ( person Email , Ġfood Rating , Ġfood Review , Ġcleaning Rating , Ġcleaning Review ) ĊĠĠĠĠĠĠĠ Ġdatabase Reference ?. child ( monthly Key !! )?. setValue ( feedback ) ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Feedback Ġsubmitted ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠGet Internet Time Ġ: ĠAsync Task < String ?, ĠVoid ?, ĠString ?> () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pre Execute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. pb Loading In m ates Dashboard ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Submit Feedback . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġpdf Url : ĠString ?): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠTIME _ SERVER Ġ= Ġ" time . nist . gov " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Client Ġ= ĠN TP UDP Client () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinternet Address : ĠInet Address Ġ= ĠInet Address . get ByName ( TIME _ SERVER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Info : ĠTime Info Ġ= Ġtime Client . getTime ( internet Address ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturn Time : ĠLong Ġ= Ġtime Info . message . transmit TimeStamp . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠDate ( return Time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent YY Ġ= ĠSimpleDateFormat (" yyyy ", ĠLocale . US ). format ( time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent MM Ġ= ĠSimpleDateFormat (" MM ", ĠLocale . US ). format ( time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcurrent MM ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( currentTime : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity ?. application Context , Ġ" current Month : Ġ$ current MM ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. pb Loading In m ates Dashboard ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Submit Feedback . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }