package Ġme . mso ul . datastore _ sample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġme . mso ul . datastore . default Of Ċ import Ġme . mso ul . datastore . get Enum Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcurrent Language Ġ= Ġdefault Of < Language >() ĊĠĠĠ Ġprivate Ġvar Ġsync ing Status Ġ= Ġdefault Of < Sync ing >() ĊĊĠĠĠ Ġlateinit Ġvar ĠtextView : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġbutton Set Language : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġbutton Set Sync ing : ĠButton ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠtextView Ġ= ĠfindViewById ( R . id . textView ) ĊĠĠĠĠĠĠĠ Ġbutton Set Language Ġ= ĠfindViewById ( R . id . button ) ĊĠĠĠĠĠĠĠ Ġbutton Set Sync ing Ġ= ĠfindViewById ( R . id . button 2 ) ĊĊĠĠĠĠĠĠĠ Ġbutton Set Language . setOnClickListener Ġ{ Ġshow Preference Dialog (" Language ", Ġcurrent Language ) Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Set Sync ing . setOnClickListener Ġ{ Ġshow Preference Dialog (" Sync ing ", Ġsync ing Status ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġcollecting Ġflows Ġfrom ĠUI , Ġit 's Ġbetter Ġto Ġuse Ġthe Ġnew Ġrepeat On Lifecycle () ĠAPI ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġcode Ġis Ġfor Ġdemonstr ation Ġpurposes Ġonly Ġand Ġis Ġnot Ġsafe Ġfor Ġproduction ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store . get Enum < Language >(). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Language Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġ" The Ġcountry Ġcode Ġof Ġthe Ġpreferred Ġlanguage Ġis Ġ[ ${ current Language . country Code }] " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store . get Enum < Sync ing >(). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync ing Status Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Set Sync ing . text Ġ= Ġ" Sync ing Ġis Ġ$ sync ing Status " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ