package Ġcom . lav os . features . common dialog single btn Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Media Store Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Popup Window Ċ import Ġandroid . widget . Relative Layout Ċ import Ġc afe . ad riel . android aud i ore c order . Android Audio Recorder Ċ import Ġcom . lav os . R Ċ import Ġcom . lav os . app . App Database Ċ import Ġcom . lav os . app . Pref Ċ import Ġcom . lav os . app . domain . Shop Visit Comp et et or Model Entity Ċ import Ġcom . lav os . app . domain . Visit Remark s Entity Ċ import Ġcom . lav os . app . utils . App Utils Ċ import Ġcom . lav os . app . utils . FT Storage Utils Ċ import Ġcom . lav os . app . utils . Permission Utils Ċ import Ġcom . lav os . app . utils . To aster Ċ import Ġcom . lav os . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . lav os . features . dashboard . presentation . Meeting Type Adapter Ċ import Ġcom . lav os . features . dashboard . presentation . Visit Remark sType Adapter Ċ import Ġcom . lav os . widgets . App Custom EditText Ċ import Ġcom . lav os . widgets . App Custom TextView Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġcom . theme change app . pick image . Permission Helper Ċ import Ġkotlinx . android . synt hetic . main . dialog _ add _ feedback _ single _ btn .* Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSa ik at Ġon Ġ 3 1 - 0 1 - 2 0 2 0 . Ċ Ġ*/ Ċ class ĠAdd Feedback Single Btn Dialog Ġ: ĠDialog Fragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdialog Header : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġet _ feedback : ĠApp Custom EditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdialog Ok : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġiv _ close _ icon : ĠAppCompat ImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġet _ next _ visit _ date : ĠApp Custom EditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv _ visit _ date _ aster isk _ mark : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġet _ audio : ĠApp Custom EditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrl _ audio : ĠRelative Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv _ remarks _ dropdown : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrl _ remarks : ĠRelative Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtil _ feedback : ĠText Input Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġll _ compet itor Img : ĠRelative Layout ĊĊĠĠĠ Ġprivate Ġvar Ġvisit Remark s Popup Window : ĠPopup Window ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġ Ġvar Ġaudio File : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnext Visit Date Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar ĠfilePath Ġ= Ġ"" ĊĊĠĠĠ Ġprivate Ġval Ġmy Calendar Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCalendar . getInstance ( Locale . EN GL ISH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Header : ĠString ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Action Btn : ĠString ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Shop ID : ĠString ĊĠĠĠĠĠĠĠ Ġ// private Ġlateinit Ġvar Ġm Right Btn : ĠString ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Listener : ĠOn Ok ClickListener ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( header : ĠString , Ġaction Btn : ĠString , shop ID : ĠString , Ġlistener : ĠOn Ok ClickListener ): ĠAdd Feedback Single Btn Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Fragment Ġ= ĠAdd Feedback Single Btn Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Header Ġ= Ġheader ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Action Btn Ġ= Ġaction Btn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Shop ID Ġ= Ġshop ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcard Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdialog ?. window !!. request Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ Ġdialog ?. set Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠ Ġdialog ?. window !!. setBackground Drawable Resource ( R . drawable . rounded _ corner _ white _ bg ) ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . dialog _ add _ feedback _ single _ btn , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit View ( v ) ĊĊĠĠĠĠĠĠĠ Ġis Cancel able Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Header Ġ= Ġv . findViewById ( R . id . dialog _ header _ TV ) ĊĠĠĠĠĠĠĠ Ġet _ feedback Ġ= Ġv . findViewById ( R . id . et _ feedback ) ĊĠĠĠĠĠĠĠ Ġdialog Ok Ġ= Ġv . findViewById ( R . id . ok _ TV ) ĊĠĠĠĠĠĠĠ Ġdialog Ok . isSelected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġdialog Ok . text Ġ= Ġm Action Btn ĊĠĠĠĠĠĠĠ Ġiv _ close _ icon Ġ= Ġv . findViewById ( R . id . iv _ close _ icon ) ĊĠĠĠĠĠĠĠ Ġet _ next _ visit _ date Ġ= Ġv . findViewById ( R . id . et _ next _ visit _ date ) ĊĠĠĠĠĠĠĠ Ġtv _ visit _ date _ aster isk _ mark Ġ= Ġv . findViewById ( R . id . tv _ visit _ date _ aster isk _ mark ) ĊĠĠĠĠĠĠĠ Ġet _ audio Ġ= Ġv . findViewById ( R . id . et _ audio ) ĊĠĠĠĠĠĠĠ Ġrl _ audio Ġ= Ġv . findViewById ( R . id . rl _ audio ) ĊĠĠĠĠĠĠĠ Ġtv _ remarks _ dropdown Ġ= Ġv . findViewById ( R . id . tv _ remarks _ dropdown ) ĊĠĠĠĠĠĠĠ Ġrl _ remarks Ġ= Ġv . findViewById ( R . id . rl _ remarks ) ĊĠĠĠĠĠĠĠ Ġtil _ feedback Ġ= Ġv . findViewById ( R . id . til _ feedback ) ĊĠĠĠĠĠĠĠ Ġll _ compet itor Img Ġ= Ġv . findViewById ( R . id . rl _ compet itor _ image ) ĊĊĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= Ġm Header ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Next Visit Date Mandatory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ visit _ date _ aster isk _ mark . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// iv _ close _ icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ visit _ date _ aster isk _ mark . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// iv _ close _ icon . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Record Audio Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ audio . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ audio . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Record Audio Enable Ġ|| ĠPref . is Next Visit Date Mandatory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ close _ icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ close _ icon . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Show Visit Remark s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ remarks . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtil _ feedback . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ remarks . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtil _ feedback . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( App Utils . get SharedPreferences log Comp et itor Img Enable ( mContext )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll _ compet itor Img . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll _ compet itor Img . visibility = View . GONE ĊĊĠĠĠĠĠĠĠ Ġdialog Ok . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġiv _ close _ icon . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġet _ next _ visit _ date . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġet _ audio . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtv _ remarks _ dropdown . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġll _ compet itor Img . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( p 0 : ĠView ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġde Select All () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( p 0 !!. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . ok _ TV Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ close _ icon . isEnabled = true ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Next Visit Date Mandatory Ġ&& ĠText Utils . isEmpty ( next Visit Date )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo aster . msg Short ( mContext , ĠgetString ( R . string . error _ message _ next _ visit _ date )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( Pref . is Record Audio Enable Ġ&& ĠText Utils . isEmpty ( et _ audio . text . toString (). trim ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo aster . msg Short ( mContext , ĠgetString ( R . string . error _ message _ audio )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Ok . isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Pref . is Show Visit Remark s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . on Ok Click ( et _ feedback . text . toString (). trim (), Ġnext Visit Date , ĠfilePath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . on Ok Click ( tv _ remarks _ dropdown . text . toString (). trim (), Ġnext Visit Date , ĠfilePath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . iv _ close _ icon Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . onClose Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . et _ next _ visit _ date Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utils . hide Soft Keyboard ( mContext Ġas ĠDashboard Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġan i DatePicker Ġ= ĠDate Picker Dialog ( mContext , ĠR . style . DatePicker Theme , Ġdate , Ġmy Calendar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Calendar . YEAR ), Ġmy Calendar . get ( Calendar . MONTH ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Calendar . get ( Calendar . DAY _ OF _ MONTH )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan i DatePicker . date Picker . min Date Ġ= ĠCalendar . getInstance ( Locale . EN GL ISH ). time In Millis Ġ+ Ġ( 1 0 0 0 Ġ* Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan i DatePicker . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . et _ audio Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Path Ġ= ĠFT Storage Utils . get FolderPath ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaudio File Ġ= ĠFile ("$ folder Path /" Ġ+ ĠSystem . currentTimeMillis () Ġ+ Ġ". mp 3 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Audio Recorder . with ( mContext Ġas ĠDashboard Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRequired ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set FilePath ( audio File ?. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Context Compat . getColor ( mContext , ĠR . color . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setRequest Code ( Permission Helper . REQUEST _ CODE _ AUDIO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Start ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Keep Display On ( true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStart Ġrecording ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. record () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tv _ remarks _ dropdown Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠApp Database . get DBInstance ()?. visit Remark s Dao ()?. getAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull Ġ|| Ġlist . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo aster . msg Short ( mContext , ĠgetString ( R . string . no _ data _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( visit Remark s Popup Window Ġ!= Ġnull Ġ&& Ġvisit Remark s Popup Window ?. is Showing !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Meeting Type DropDown Pop Up ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . rl _ compet itor _ image Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . onClick Comp et itor Img () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Permission Check One () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Picture Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġpermission Utils : ĠPermission Utils ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun Ġinit Permission Check One () Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils Ġ= ĠPermission Utils ( mContext Ġas ĠActivity , Ġobject Ġ: ĠPermission Utils . On Permission Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Picture Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Not Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . accept _ permission )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, ĠarrayOf < String >( Manifest . permission . CAMERA , ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Picture Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpicture Dialog Ġ= ĠAlertDialog . Builder ( mContext ) ĊĠĠĠĠĠĠĠ Ġpicture Dialog . setTitle (" Select ĠAction ") ĊĠĠĠĠĠĠĠ Ġval Ġpicture Dialog Items Ġ= ĠarrayOf (" Select Ġphoto Ġfrom Ġgallery ", Ġ" Capture Ġphoto Ġfrom Ġcamera ") ĊĠĠĠĠĠĠĠ Ġpicture Dialog . set Items ( picture Dialog Items ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( which ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġselect Image In Album () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġlaunch Camera () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpicture Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Image In Album () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Permission Helper . check Storage Permission ( mContext Ġas ĠDashboard Activity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ P ICK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Store . Images . Media . EXTERNAL _ CONTENT _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). startActivity For Result ( intent , ĠPermission Helper . REQUEST _ CODE _ STORAGE ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlaunch Camera () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Permission Helper . check Camera Permission ( mContext Ġas ĠDashboard Activity ) Ġ&& ĠPermission Helper . check Storage Permission ( mContext Ġas ĠDashboard Activity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* val Ġintent Ġ= ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġ( mContext Ġas ĠDashboard Activity ). get Photo File Uri ( System . currentTimeMillis (). toString () Ġ+ Ġ". png ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). startActivity For Result ( intent , ĠPermission Helper . REQUEST _ CODE _ CAMERA ) */ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). capture Image () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġprivate Ġfun Ġcall Meeting Type DropDown Pop Up ( list : ĠList < Visit Remark s Entity >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠmContext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ? ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġcustom Ġlayout / view ĊĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġinflater !!. inflate ( R . layout . popup _ meeting _ type , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window Ġ= ĠPopup Window ( custom View , Ġresources . get Dimension Pixel Offset ( R . dim en ._ 2 2 0 sdp ), ĠRelative Layout . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġval Ġrv _ meeting _ type _ list Ġ= Ġcustom View . findViewById ( R . id . rv _ meeting _ type _ list ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrv _ meeting _ type _ list . layout Manager Ġ= ĠLinearLayoutManager ( mContext ) ĊĊĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. elevation Ġ= Ġ 2 0 0 f ĊĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. update () ĊĊĊĠĠĠĠĠĠĠ Ġrv _ meeting _ type _ list . adapter Ġ= ĠVisit Remark sType Adapter ( mContext , Ġlist Ġas ĠArrayList < Visit Remark s Entity >, Ġobject Ġ: ĠVisit Remark sType Adapter . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( adapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ remarks _ dropdown . text Ġ= Ġlist [ adapter Position ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( visit Remark s Popup Window Ġ!= Ġnull Ġ&& Ġ! visit Remark s Popup Window ?. is Showing !! ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ remarks . post ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. show As DropDown ( tv _ remarks _ dropdown , Ġresources . get Dimension Pixel Offset ( R . dim en ._ 1 sdp ), Ġresources . get Dimension Pixel Offset ( R . dim en ._ 1 0 sdp ), ĠGr avity . BOTTOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Remark s Popup Window ?. show As DropDown ( tv _ remarks _ dropdown , Ġtv _ remarks _ dropdown . width Ġ- Ġvisit Remark s Popup Window ?. width !! , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdate Ġ= ĠDate Picker Dialog . On Date Set Listener Ġ{ Ġview , Ġyear , Ġmonth OfYear , Ġday OfMonth Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . YEAR , Ġyear ) ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . MONTH , Ġmonth OfYear ) ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . DAY _ OF _ MONTH , Ġday OfMonth ) ĊĊĠĠĠĠĠĠĠ Ġnext Visit Date Ġ= ĠApp Utils . get Formatted Date For Api ( my Calendar . time ) ĊĠĠĠĠĠĠĠ Ġet _ next _ visit _ date . setText ( App Utils . change Attendance DateFormat ( App Utils . get D ob Formatted Date ( my Calendar . time ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġde Select All () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Ok . isSelected Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow ( manager : ĠFragment Manager , Ġtag : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġ(! dialog . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġmanager ?. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġft ?. add ( this , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġft ?. commit Allow ing State Loss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ//} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Ok ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Ok Click ( feedback : ĠString , Ġnext Visit Date : ĠString , ĠfilePath : ĠString ) ĊĊĠĠĠĠĠĠĠ Ġfun ĠonClose Click () ĊĊĠĠĠĠĠĠĠ Ġfun ĠonClick Comp et itor Img () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Audio (){ ĊĠĠĠĠĠĠĠ ĠfilePath Ġ= Ġaudio File ?. absolute Path !! ĊĠĠĠĠĠĠĠ Ġet _ audio . setText ( audio File ?. absolute Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image ( img Real Path : ĠUri , ĠfileSize In KB : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Path Comp et itor Ġ= Ġimg Real Path . toString () ĊĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( img Real Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resize ( 5 0 0 , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv _ compet itor _ image _ view _ feedback ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġobj : ĠShop Visit Comp et et or Model Entity Ġ= ĠShop Visit Comp et et or Model Entity () ĊĠĠĠĠĠĠĠ Ġobj . session _ token = Pref . session _ token !! ĊĠĠĠĠĠĠĠ Ġobj . shop _ id = m Shop ID ĊĠĠĠĠĠĠĠ Ġobj . user _ id = Pref . user _ id !! ĊĠĠĠĠĠĠĠ Ġobj . shop _ image = image Path Comp et itor ĊĠĠĠĠĠĠĠ Ġobj . is Uploaded = false ĊĠĠĠĠĠĠĠ Ġobj . visited _ date = App Utils . getCurrent DateTime () ĊĠĠĠĠĠĠĠ ĠApp Database . get DBInstance () !!. shop Visit Comp et et or Image Dao (). insert ( obj ) ĊĊĠĠĠĠĠĠĠ Ġiv _ close _ icon . isEnabled = false ĊĠĠĠ Ġ} Ċ }