/* Ċ Ġ* ĠCopyright Ġ 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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . example . android dev challenge 2 0 2 1 2 0 2 1 . presentation Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . datastore . core . Data Migration Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . core . handlers . Replace File Cor ruption Handler Ċ import Ġandroidx . datastore . preferences . core . Preference DataStore Factory Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġdagger . h ilt . android . H ilt Android App Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Supervisor Job Ċ import Ġjava . io . File Ċ Ċ @ H ilt Android App Ċ class ĠMain Application Ġ: ĠApplication () Ġ{ ĊĊĠĠĠ Ġfun Ġcreate DataStore ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġcor ruption Handler : ĠReplace File Cor ruption Handler < Preferences >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmigrations : ĠList < Data Migration < Preferences >> Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠ Ġscope : ĠCor outine Scope Ġ= ĠCor outine Scope ( Dispatch ers . IO Ġ+ ĠSuper visor Job ()) ĊĠĠĠ Ġ): ĠData Store < Preferences > Ġ= ĊĠĠĠĠĠĠĠ ĠPreference DataStore Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcor ruption Handler Ġ= Ġcor ruption Handler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmigrations Ġ= Ġmigrations , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope Ġ= Ġscope ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( this . files Dir , Ġ" datastore /$ name . preferences _ pb ") ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ