/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠB apt iste ĠM OR IN Ġ( mor in b ) Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . github . mor in . kotlin . qrcode Ċ Ċ /** Ċ Ġ* ĠA ĠQR Ġcode Ġen codes Ġa Ġstring Ġof Ġtext . Ċ Ġ* ĠThe ĠQR Ġcode Ġstandard Ġhas Ġfour Ġmodes Ġfor Ġencoding Ġtext : Ġnumeric , Ġal phanumeric , Ġbyte , Ġand ĠK an ji . Ċ Ġ* ĠEach Ġmode Ġen codes Ġthe Ġtext Ġas Ġa Ġstring Ġof Ġbits Ġ( 1 s Ġand Ġ 0 s ), Ċ Ġ* Ġbut Ġeach Ġmode Ġuses Ġa Ġdifferent Ġmethod Ġfor Ġconverting Ġthe Ġtext Ġinto Ġbits . Ċ Ġ* ĠEach Ġmethod Ġis Ġoptimized Ġto Ġgenerate Ġthe Ġshortest Ġpossible Ġstring Ġof Ġbits Ġfor Ġthat Ġdata Ġtype . Ċ Ġ* Ċ Ġ*/ Ċ enum Ġclass ĠQ r Code Mode Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNumeric Ġmode Ġis Ġfor Ġdecimal Ġdigits Ġ 0 Ġthrough Ġ 9 . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠNUM ERIC , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAl phanumeric Ġmode Ġis Ġfor Ġthe Ġdecimal Ġdigits Ġ 0 Ġthrough Ġ 9 , ĊĠĠĠĠ Ġ* Ġas Ġwell Ġas Ġuppercase Ġletters Ġ( not Ġlowercase ! ), Ġand Ġthe Ġsymbols Ġ$ , Ġ% , Ġ*, Ġ+ , Ġ- , Ġ. , Ġ/ , Ġand Ġ: Ġas Ġwell Ġas Ġa Ġspace . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠAL PH AN UM ERIC , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠByte Ġmode , Ġby Ġdefault , Ġis Ġfor Ġcharacters Ġfrom Ġthe ĠISO - 8 8 5 9 - 1 Ġcharacter Ġset . ĊĠĠĠĠ Ġ* ĠHowever , Ġsome ĠQR Ġcode Ġsc anners Ġcan Ġautomatically Ġdetect Ġif ĠUTF - 8 Ġis Ġused Ġin Ġbyte Ġmode Ġinstead . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠBYTE , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠK an ji Ġmode Ġis Ġfor Ġdouble - byte Ġcharacters Ġfrom Ġthe ĠShift ĠJ IS Ġcharacter Ġset . ĊĠĠĠĠ Ġ* ĠWhile ĠUTF - 8 Ġcan Ġencode ĠK an ji Ġcharacters , Ġit Ġmust Ġuse Ġthree Ġor Ġfour Ġbytes Ġto Ġdo Ġso . ĊĠĠĠĠ Ġ* ĠShift ĠJ IS , Ġon Ġthe Ġother Ġhand , Ġuses Ġjust Ġtwo Ġbytes Ġto Ġencode Ġeach ĠK an ji Ġcharacter , ĊĠĠĠĠ Ġ* Ġso ĠK an ji Ġmode Ġcomp resses ĠK an ji Ġcharacters Ġmore Ġefficiently . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġentire Ġinput Ġstring Ġconsists Ġof Ġcharacters Ġin Ġthe Ġdouble - byte Ġrange Ġof ĠShift ĠJ IS , Ġuse ĠK an ji Ġmode . ĊĠĠĠĠ Ġ* ĠIt Ġis Ġalso Ġpossible Ġto Ġuse Ġmultiple Ġmodes Ġwithin Ġthe Ġsame ĠQR Ġcode . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠK AN JI , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtended ĠChannel ĠInter pretation Ġ( E CI ) Ġmode Ġspecifies Ġthe Ġcharacter Ġset Ġ( e . g . ĠUTF - 8 ) Ġdirectly . ĊĠĠĠĠ Ġ* ĠHowever , Ġsome ĠQR Ġcode Ġreaders Ġdo Ġnot Ġsupport ĠE CI Ġmode Ġand Ġwill Ġnot Ġunderstand ĠQR Ġcodes Ġthat Ġuse Ġit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠE CI , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStruct ured ĠAppend Ġmode Ġen codes Ġdata Ġacross Ġmultiple ĠQR Ġcodes , Ġup Ġto Ġa Ġmaximum Ġof Ġ 1 6 ĠQR Ġcodes . ĊĠĠĠĠ Ġ* ĠI Ġwill Ġnot Ġbe Ġdiscus sing Ġthis Ġmode Ġin Ġthis Ġtutorial Ġbut Ġmay Ġadd Ġmore Ġinformation Ġat Ġa Ġlater Ġtime . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠSTR UCT URE D _ APPEND , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠF NC 1 Ġmode Ġallows Ġthe ĠQR Ġcode Ġto Ġfunction Ġas Ġa ĠGS 1 Ġbarcode . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠF NC 1 Ċ } Ċ