package Ġcom . ki pro sh . optimize prime . view . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . Toast Ċ import Ġandroid . widget . Toast . LENGTH _ LONG Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġcom . ki pro sh . optimize prime . R Ċ import Ġcom . ki pro sh . optimize prime . databinding . Activity Upload Data Binding Ċ import Ġcom . ki pro sh . optimize prime . helper . Authentication Helper Ċ import Ġcom . ki pro sh . optimize prime . helper . Bottom Sheet Dialog Ċ import Ġcom . ki pro sh . optimize prime . helper . Common Code Ċ import Ġcom . ki pro sh . optimize prime . helper . Progress Dialog Ċ import Ġcom . ki pro sh . optimize prime . model . Encoded String Req Ċ import Ġcom . ki pro sh . optimize prime . model . Upload Data Response Ċ import Ġcom . ki pro sh . optimize prime . services . API Interface Ċ import Ġcom . ki pro sh . optimize prime . view . adapter . Ret rofit Client Instance Ċ import Ġorg . json . JSONObject Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response ĊĊ Ċ class ĠUpload Data Activity Ġ: ĠAppCompatActivity (), ĠBottom Sheet Dialog . on ItemClickListener Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġupload Data Activity Binding : ĠActivity Upload Data Binding ĊĠĠĠ Ġlateinit Ġvar Ġprogress Dialog : ĠProgress Dialog ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapi Interface : ĠAPI Interface ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauthentication Helper : ĠAuthentication Helper ĊĠĠĠ Ġprivate Ġvar Ġoccurrence Id Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġname Of Associate Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar ĠuserName Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġoccurrence Id Ġ= Ġintent . getInt Extra (" OCC UR REN CE _ ID ", Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġname Of Associate Ġ= Ġintent . getString Extra (" ASS OCI ATE _ NAME "). toString () ĊĠĠĠĠĠĠĠ ĠuserName Ġ= Ġintent . getString Extra (" USER _ NAME "). toString () ĊĠĠĠĠĠĠĠ Ġapi Interface Ġ= ĠRet rofit Client Instance . get Ret rofit Instance (). create ( API Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġauthentication Helper Ġ= ĠAuthentication Helper ( application Context ) ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ upload _ data ) ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . ll Open Camera . setOnClickListener Ġ{ Ġtake Photo () Ġ} ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . ll Open Gallery . setOnClickListener Ġ{ Ġselect Image In Album () Ġ} ĊĠĠĠĠĠĠĠ Ġupdate StatusBar Colour () ĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog () ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . tv Associate Name . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ " Ġ+ ĠuserName . partition Ġ{ Ġit Ġin Ġ" Ġ" Ġ}. second ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . c iv Custom Background . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Dialog ( this ). show ( support FragmentManager , Ġ" ĠModal Bottom Sheet ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . tv Preview Text . text Ġ= Ġ" Text ĠPreview ĠHere " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Of Associate . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . et G reeting . hint Ġ= Ġ" Click Ġhere Ġto Ġadd Ġw ishes ..." ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . et G reeting . hint Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Click Ġhere Ġto Ġadd Ġw ishes Ġfor Ġ$ name Of Associate " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . et G reeting . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . tv Preview Text . text Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ Ċ // ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġupload Data Activity Binding . btn Upload G reeting . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( upload Data Activity Binding . et G reeting . text . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Please Ġadd Ġa Ġwish !", ĠLEN GTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Api () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcall Api () Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Dialog . show Progress ( support FragmentManager ) ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠCommon Code ( this ). get Screen Shot ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . cl Preview ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġencoded String Ġ= ĠCommon Code ( this ). getBase 6 4 From Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠ Ġval Ġparam Object Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġparam Object . put (" base 6 4 ", Ġencoded String ) Ġ// Base 6 4 Ġimage ĊĠĠĠĠĠĠĠ Ġupload Data ( encoded String !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect Image In Album () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ P ICK ) ĊĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQUEST _ SELECT _ IMAGE _ IN _ AL BU M ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtake Photo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcamera Intent Ġ= ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( camera Intent , ĠREQUEST _ TA KE _ PH OTO ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ TA KE _ PH OTO Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ SELECT _ IMAGE _ IN _ AL BU M Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠREQUEST _ SELECT _ IMAGE _ IN _ AL BU M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . setImage URI ( data ?. data ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠREQUEST _ TA KE _ PH OTO Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . setImage Bitmap ( data . extras ?. get (" data ") Ġas ĠBitmap ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate StatusBar Colour () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwindow : ĠWindow Ġ= Ġwindow ĊĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠContext Compat . getColor ( this , ĠR . color . intro _ slide _ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . ic _ cool ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . ic _ summer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . ic _ night ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . bg _ flow ers ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . bg _ friends ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Data Activity Binding . iv Preview . background Ġ= Ġget Drawable ( R . drawable . bg _ colo urs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupload Data ( encoded String : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader Map Ġ= ĠAuthentication Helper ( this ). getHeader Map () ĊĠĠĠĠĠĠĠ Ġval Ġencoded String Req Ġ= ĠEn coded String Req () ĊĠĠĠĠĠĠĠ Ġencoded String Req . email Ġ= Ġencoded String ĊĠĠĠĠĠĠĠ Ġapi Interface . upload Data ( header Map !! , Ġoccurrence Id . toString (), Ġencoded String Req ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCallback < Upload Data Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < Upload Data Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < Upload Data Response > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ho or ay ! ĠUpload Ġsuccessful !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLEN GTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Upload Data Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Upload Ġfailed ! ĠPlease Ġtry Ġagain ...", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLEN GTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }