/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 . android . gradle . replic ator . res gen . util Ċ Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . ceil Ċ import Ġkotlin . random . Random Ċ Ċ private Ġval Ġwords Ġ= ĠlistOf Ġ( ĊĠĠĠĠĠĠĠ Ġ" p izza ", ĊĠĠĠĠĠĠĠ Ġ" party ", ĊĠĠĠĠĠĠĠ Ġ" cool ", ĊĠĠĠĠĠĠĠ Ġ" delivery ", ĊĠĠĠĠĠĠĠ Ġ" awesome ", ĊĠĠĠĠĠĠĠ Ġ" nice ", ĊĠĠĠĠĠĠĠ Ġ" const able ", ĊĠĠĠĠĠĠĠ Ġ" writer ", ĊĠĠĠĠĠĠĠ Ġ" wire ", ĊĠĠĠĠĠĠĠ Ġ" android ", ĊĠĠĠĠĠĠĠ Ġ" face ", ĊĠĠĠĠĠĠĠ Ġ" pie ", ĊĠĠĠĠĠĠĠ Ġ" cookie ", ĊĠĠĠĠĠĠĠ Ġ" etc .", ĊĠĠĠĠĠĠĠ Ġ" the ", ĊĠĠĠĠĠĠĠ Ġ" name ", ĊĠĠĠĠĠĠĠ Ġ" max ", ĊĠĠĠĠĠĠĠ Ġ" min ", ĊĠĠĠĠĠĠĠ Ġ" cho colate ", ĊĠĠĠĠĠĠĠ Ġ" van illa ", ĊĠĠĠĠĠĠĠ Ġ" str aw berry " Ċ ) Ċ Ċ fun Ġgen String ( max Word Count : ĠInt , Ġseparator : ĠString , Ġrandom : ĠRandom ): ĠString Ġ{ ĊĠĠĠ Ġval Ġstring Value Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġrepeat ( random . nextInt ( 1 , Ġmax Word Count Ġ+ Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġstring Value . add ( words . get ( random . nextInt ( words . size ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġstring Value . join ToString ( separator ) Ċ } Ċ Ċ // ĠTODO : ĠMake Ġname Ġbased Ġon Ġcount Ġrather Ġthan Ġrandom Ċ fun Ġgen Name ( random : ĠRandom ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġgen String ( 3 , Ġ"_ ", Ġrandom ) Ċ } Ċ Ċ fun Ġgen Hex ( numberOf Digits : ĠInt , Ġrandom : ĠRandom ): ĠString Ġ{ ĊĠĠĠ Ġval Ġto Hex Ġ= Ġ{ Ġbyte : ĠByte Ġ-> Ġ"% 0 2 x ". format ( abs ( byte . toInt ())) Ġ} ĊĊĠĠĠ Ġ// ĠNote : ĠBytes Ġare Ġ 2 Ġhex Ġdigits , Ġex : Ġ 9 Ġ= Ġ 0 9 , Ġ 2 5 5 Ġ= ĠFF , Ġetc . ĊĠĠĠ Ġreturn Ġrandom . next Bytes ( ceil ( numberOf Digits Ġ/ Ġ 2 . 0 ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("") Ġ{ Ġbyte Ġ-> Ġto Hex ( byte ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring ( 0 , ĠnumberOf Digits ) Ġ// ĠTrim Ġif Ġodd Ġnumber Ġof Ġhex Ġrequested Ċ } Ċ Ċ fun Ġgen FileName Characters ( count : ĠInt , Ġmin FileName Characters : ĠInt Ġ= Ġ 3 ): ĠString Ġ{ ĊĠĠĠ Ġvar Ġcurrent Ġ= Ġcount ĊĠĠĠ Ġvar Ġcharacters Ġ= Ġ"" ĊĠĠĠ Ġwhile Ġ( current Ġ> Ġ 0 Ġ|| Ġcharacters . length Ġ< Ġmin FileName Characters ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcharacters Ġ= Ġ' a ' Ġ+ Ġ( current Ġ% Ġ 2 6 ) Ġ+ Ġcharacters ĊĠĠĠĠĠĠĠ Ġcurrent Ġ/= Ġ 2 6 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ"_ $ characters " Ċ }