/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 - 2 0 2 2 ĠR yan ht ech ĠLabs Ċ Ġ* Ċ Ġ* Ġ Ġ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 . ry an ht ech . vocab ulario . utils Ċ Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . ACTIVITY _ SERVICE Ċ import Ġandroid . util . Log Ċ import Ġcom . ry an ht ech . vocab ulario . R Ċ import Ġcom . ry an ht ech . vocab ulario . admin . device admin . Vocab ulario Device Admin Receiver Ċ import Ġjava . io . File Ċ Ċ class ĠData Manager Ġ{ ĊĠĠĠ Ġ// ĠClass Ġthat Ġmanages Ġthe Ġdata , Ġfor Ġexample , Ġcreating ĊĠĠĠ Ġ// Ġnew Ġwords Ġto Ġlearn Ġin Ġthe Ġdatabase , Ġchecking Ġif Ġthe Ġapp ĊĠĠĠ Ġ// Ġhas Ġalready Ġbeen Ġconfigured , Ġetc . ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe Ġapp Ġhas Ġalready Ġbeen Ġconfigured Ġ(= Ġopened Ġonce ) ĊĠĠĠĠĠĠĠ Ġfun Ġcheck If App Configured ( application Context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe Ġfile Ġconfigured . ini Ġexists Ġto Ġreturn Ġthe Ġresult ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! File ( application Context . files Dir , Ġ" configured . ini "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ch osen Level In Settings ( chosen Level : ĠInt , Ġapplication Context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOpen Ġthe Ġfile Ġand Ġwrite Ġto Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . files Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" user Level . ini " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text ( chosen Level . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Ch osen Level ( level : ĠString , Ġapplication Context : ĠContext ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠGets Ġa Ġlevel Ġnumber . ĠYou Ġcan Ġpass Ġa Ġstring Ġthat Ġyou Ġget Ġusing ĠgetString () Ġin ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġparameter Ġlevel . ĠIt Ġwill Ġreturn Ġthe Ġfollowing : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ" Very Ġeasy " Ġ( or Ġequivalent ): ĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ" Easy " Ġ( or Ġequivalent ): ĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ" Medium " Ġ( or Ġequivalent ): ĠĠĠĠĠ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ" Hard " Ġ( or Ġequivalent ): ĠĠĠĠĠĠĠ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ" Super Ġhard " Ġ( or Ġequivalent ): Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġutil Instance Ġ= ĠUtils () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( level ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ very _ easy , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ easy , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ medium , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ hard , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ super _ hard , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Ch osen Level String ( level : ĠInt , Ġapplication Context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġutil Instance Ġ= ĠUtils () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( level ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ very _ easy , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ easy , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ medium , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ hard , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġutil Instance . getString From Outside Activity ( R . string . level _ n _ super _ hard , Ġapplication Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġmark Setup As Complete ( application Context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠMark s Ġthe Ġapp Ġas Ġconfigured . ĠIt Ġis Ġcalled Ġafter Ġthe ĠSetup . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Setup ", Ġ" Application Ġmarked Ġas Ġconfigured !") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( application Context . files Dir , Ġ" configured . ini ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (" true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠsetName ( application Context : ĠContext , Ġname : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠChanges Ġthe Ġname Ġof Ġthe Ġuser . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( application Context . files Dir , Ġ" userName . ini ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text ( name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetName ( application Context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠGets Ġthe Ġname Ġof Ġthe Ġuser . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( File ( application Context . files Dir , Ġ" userName . ini "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( application Context . files Dir , Ġ" userName . ini ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear AppData ( application Context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġmethod ĠDE LET ES Ġthe Ġdata Ġof ĠÂ ¡ Vocab ulario ! Ġon Ġthe Ġphone . ĊĠĠĠĠĠĠĠ Ġ// ĠUSE ĠIT ĠONLY ĠWHEN ĠN EC ESS ARY !!! ĊĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġadmin ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ocab ulario Device Admin Receiver . get D pm ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove Active Admin ( Vocab ulario Device Admin Receiver . getComponent Name ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( Ignored : Ġjava . lang . Exception ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ocab ulario Device Admin Receiver . change Admin Enabled Status ( false , Ġapplication Context ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( Ignored : Ġjava . lang . Exception ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġact Mgr : ĠActivity Manager Ġ= Ġapplication Context . getSystem Service ( ACTIVITY _ SERVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas ĠActivity Manager ĊĊĠĠĠĠĠĠĠ Ġ// ĠDelete Ġthe Ġdata ! ĊĠĠĠĠĠĠĠ Ġact Mgr . clear Application UserData () ĊĊĠĠĠĠĠĠĠ Ġ// ĠB AM ! ĠThe Ġdata Ġhas Ġbeen Ġcleared ! ĠNow Ġwe Ġcan Ġrestart Ġthe Ġapp ĊĠĠĠĠĠĠĠ ĠUtils (). restart App ( application Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Organization Name ( name : ĠString , Ġapplication Context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġorganization Ġname . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ ĠFile ( application Context . files Dir , Ġ" adm org ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text ( name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Organization Name ( application Context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( application Context . files Dir , Ġ" adm org ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Managed By Organization ( application Context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( application Context . files Dir , Ġ" pwd . ini "). exists () ĊĠĠĠ Ġ} Ċ }