Ċ package Ġcom . example . wiz lan . activities ĊĊ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġnet . gl xn . q rg en . core . scheme . V Card Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . example . wiz lan . R Ċ import Ġcom . example . wiz lan . fragments . Home Fragment Ċ import Ġkotlinx . android . synt hetic . main . activity _ qr _ generator .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ qr _ generator . logo Q rg en Screen Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ Ċ class Ġqr Generator Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġqr Image Ġ: ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġval ĠEXTER NAL _ STORAGE _ PERMISSION _ REQUEST _ CODE Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ qr _ generator ) ĊĠĠĠĠĠĠĠ Ġbtn _ text . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ v Card . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ save . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ generate QR . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ// Check Ġfor Ġstorage Ġpermission ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! check Permission For External Storage ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permission For External Storage () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogo Q rg en Screen . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmain Fragment : ĠHome Fragment Ġ= ĠHome Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). add ( R . id . container , Ġmain Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( v ?. id ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ text Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput _ text . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ v Card . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ generate QR . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ v Card Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput _ text . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ v Card . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ generate QR . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ generate QR Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( layout _ v Card . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( input _ name . text . toString (). isNull OrEmpty () Ġ&& Ġinput _ email . text . toString (). isNull OrEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġinput _ address . text . toString (). isNull OrEmpty () Ġ&& Ġinput _ phoneNumber . text . toString (). isNull OrEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġinput _ website . text . toString (). isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context ," All Ġfields Ġcannot Ġbe Ġempty " Ġ, ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate QR Code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( input _ text . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! input _ text . text . toString (). isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate QR Code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput _ text . setError (" This Ġfield Ġis Ġrequired ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ save Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! check Permission For External Storage ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" External ĠStorage Ġpermission Ġneeded . ĠPlease Ġallow Ġin ĠApp ĠSettings Ġfor Ġadditional Ġfunctionality .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( qr Image Ġ!= Ġnull ){ save Image ( qr Image !! )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Function Ġfor ĠGenerating ĠQR Ġcode ĊĠĠĠ Ġfun Ġgenerate QR Code () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( layout _ v Card . visibility Ġ== ĠView . VISIBLE ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Card Ġ= ĠV Card ( input _ name . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Email ( input _ email . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Address ( input _ address . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set PhoneNumber ( input _ phoneNumber . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Website ( input _ website . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqr Image Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnet . gl xn . q rg en . android . QR Code . from ( v Card ). bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( qr Image Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView _ qr Code . setImage Bitmap ( qr Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ save . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif ( input _ text . visibility Ġ== ĠView . VISIBLE ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqr Image Ġ= Ġnet . gl xn . q rg en . android . QR Code . from ( input _ text . text . toString ()). bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( qr Image Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView _ qr Code . setImage Bitmap ( qr Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ save . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// function Ġfor Ġrequesting Ġstorage Ġaccess ĊĠĠĠ Ġfun Ġrequest Permission For External Storage () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . should Show Request Permission R ationale ( this , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" External ĠStorage Ġpermission Ġneeded . ĠPlease Ġallow Ġin ĠApp ĠSettings Ġfor Ġadditional Ġfunctionality .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , ĠarrayOf < String >( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ), ĠEXTER NAL _ STORAGE _ PERMISSION _ REQUEST _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// fu unction Ġfor Ġchecking Ġstorage Ġpermission ĊĠĠĠ Ġfun Ġcheck Permission For External Storage (): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠContext Compat . check Self Permission ( this , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// f unt ion Ġfor Ġsaving Ġimage Ġinto Ġgallery ĊĠĠĠ Ġfun Ġsave Image ( image : ĠBitmap ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsaved Image Path : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġimage FileName Ġ= Ġ" QR " Ġ+ Ġget TimeStamp () Ġ+ Ġ". jpg " ĊĠĠĠĠĠĠĠ Ġvar Ġstorage Dir Ġ= ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . get External Storage Public Directory ( Environment . DIRECTORY _ PI CTURE S ), Ġ"/ QR Generator ") ĊĠĠĠĠĠĠĠ Ġvar Ġsuccess Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ(! storage Dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġstorage Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġimage File Ġ= ĠFile ( storage Dir , Ġimage FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Image Path Ġ= Ġimage File . getAbsolutePath () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġf Out Ġ= ĠFileOutputStream ( image File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . compress ( Bitmap . Compress Format . JPEG , Ġ 1 0 0 , Ġf Out ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Out . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġimage Ġto Ġthe Ġsystem Ġgallery ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmedia Scan Intent Ġ= ĠIntent ( Intent . ACTION _ MEDIA _ SCAN NER _ SCAN _ FILE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġf Ġ= ĠFile ( saved Image Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent Uri Ġ= ĠUri . from File ( f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Scan Intent . setData ( content Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Broadcast ( media Scan Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," QR ĠImage Ġsaved Ġinto Ġfolder : ĠQR Generator Ġin ĠGallery ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," ERROR ĠS AV ING ĠIMAGE ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsaved Image Path !! ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget TimeStamp (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġts Long Ġ= ĠSystem . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġts Ġ= Ġts Long . toString () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġts ĊĠĠĠ Ġ} Ċ }