package Ġcom . lag rad ost . cloud stream 3 . ui . settings Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . lag rad ost . cloud stream 3 .* Ċ import Ġcom . lag rad ost . cloud stream 3 . API Holder . get Api D ub status Settings Ċ import Ġcom . lag rad ost . cloud stream 3 . API Holder . get Api Provider Lang Settings Ċ import Ġcom . lag rad ost . cloud stream 3 . mv vm . log Error Ċ import Ġcom . lag rad ost . cloud stream 3 . network . init Client Ċ import Ġcom . lag rad ost . cloud stream 3 . ui . API Repository Ċ import Ġcom . lag rad ost . cloud stream 3 . ui . settings . Settings Fragment . Companion . get Pref Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . HOME PAGE _ API Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . Single Selection Helper . show Bottom Dialog Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . Single Selection Helper . show Dialog Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . Single Selection Helper . show Multi Dialog Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . Subtitle Helper Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . UI Helper . hide Keyboard Ċ Ċ class ĠSettings Lang Ġ: ĠPreference Fragment Compat () Ġ{ ĊĠĠĠ Ġ// Ġid k , Ġif Ġyou Ġfind Ġa Ġway Ġof Ġautom ating Ġthis Ġit Ġwould Ġbe Ġgreat ĊĠĠĠ Ġ// Ġhttps :// www . i emoji . com / view / emoji / 1 7 9 4 / flags / ant ar ct ica ĊĠĠĠ Ġ// ĠEmoji ĠCharacter ĠEncoding ĠData Ġ--> ĠC / C ++/ Java ĠSrc ĊĠĠĠ Ġ// Ġhttps :// en . wikipedia . org / wiki / List _ of _ ISO _ 6 3 9 - 1 _ codes Ġleave Ġblank Ġfor Ġauto ĊĠĠĠ Ġprivate Ġval Ġlanguages Ġ= Ġarray ListOf ( ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Span ish ", Ġ" es "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" English ", Ġ" en "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" V iet ĠNam ", Ġ" vi "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" D utch ", Ġ" nl "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" F rench ", Ġ" fr "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" G reek ", Ġ" el "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Sw ed ish ", Ġ" sv "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Tag alog ", Ġ" tl "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Pol ish ", Ġ" pl "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" H indi ", Ġ" hi "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Mal ay alam ", Ġ" ml "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" N ors k ", Ġ" no "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Ger man ", Ġ" de "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Ar abic ", Ġ" ar "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Tur k ish ", Ġ" tr "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Mac ed on ian ", Ġ" mk "), ĊĠĠĠĠĠĠĠ ĠTrip le ("\ uD 8 3 C \ uD DE 7 \ uD 8 3 C \ u DD F 7 ", Ġ" Port ug ue se Ġ( Br azil )", Ġ" pt "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" R oman ian ", Ġ" ro "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" It alian ", Ġ" it "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Chinese ", Ġ" zh "), ĊĠĠĠĠĠĠĠ ĠTrip le ("", Ġ" Ind ones ian ", Ġ" id "), ĊĠĠĠ Ġ). sorted By Ġ{ Ġit . second Ġ} Ġ// ye , Ġwe Ġgo Ġalphabet ical , Ġso Ġp pl Ġdon 't Ġput Ġtheir Ġlang Ġon Ġtop ĊĊĠĠĠ Ġprivate Ġfun ĠgetCurrent Locale (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrequire Context (). resources Ċ // ĠChange Ġlocale Ġsettings Ġin Ġthe Ġapp . ĊĠĠĠĠĠĠĠ Ġ// Ġval Ġdm Ġ= Ġres . display Metrics ĊĠĠĠĠĠĠĠ Ġval Ġconf Ġ= Ġres . configuration ĊĠĠĠĠĠĠĠ Ġreturn Ġconf ?. locale ?. language Ġ?: Ġ" en " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Preferences ( savedInstanceState : ĠBundle ?, Ġroot Key : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠ Ġset Preferences From Resource ( R . xml . settings _ media _ lang , Ġroot Key ) ĊĠĠĠĠĠĠĠ Ġval Ġsettings Manager Ġ= ĠPreference Manager . getDefault SharedPreferences ( require Context ()) ĊĊĠĠĠĠĠĠĠ Ġget Pref ( R . string . display _ sub _ key )?. setOn Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. get Api D ub status Settings ()?. let Ġ{ Ġcurrent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd ub list Ġ= ĠD ub Status . values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnames Ġ= Ġd ub list . map Ġ{ Ġit . name Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent List Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcurrent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent List . add ( dub list . indexOf ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. show Multi Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnames , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . display _ sub bed _ dub bed _ settings ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{}) Ġ{ Ġselected List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAPI Repository . dub Status Active Ġ= Ġselected List . map Ġ{ Ġd ub list [ it ] Ġ}. to HashSet () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Manager . edit (). putString Set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . getString ( R . string . display _ sub _ key ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected List . map Ġ{ Ġnames [ it ] Ġ}. to Mutable Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Preference ClickListener Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Pref ( R . string . prefer _ media _ type _ key )?. setOn Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpref Names Ġ= Ġresources . getString Array ( R . array . media _ type _ pref ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpref Values Ġ= Ġresources . getInt Array ( R . array . media _ type _ pref _ values ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Pref Media Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Manager . getInt ( getString ( R . string . prefer _ media _ type _ key ), Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. show Bottom Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref Names . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref Values . indexOf ( current Pref Media ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . preferred _ media _ settings ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Manager . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Int ( getString ( R . string . prefer _ media _ type _ key ), Ġpref Values [ it ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAc ra Application . remove Key ( HOME PAGE _ API ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context Ġ?: ĠAc ra Application . context )?. let Ġ{ Ġctx Ġ-> Ġapp . init Client ( ctx ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Preference ClickListener Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Pref ( R . string . locale _ key )?. setOn Preference ClickListener Ġ{ Ġpref Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Lang s Ġ= Ġlanguages . to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġ( ben ene Count Ġ> Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġtemp Lang s . add ( Triple ("\ uD 8 3 E \ u DD 8 D ", Ġ" mm mm ... Ġmon ke ", Ġ" mo ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ//} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠgetCurrent Locale () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguage Codes Ġ= Ġtemp Lang s . map Ġ{ Ġit . third Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguage Names Ġ= Ġtemp Lang s . map Ġ{ Ġ( emoji , Ġname , Ġiso ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflag Ġ= Ġemoji . if Blank Ġ{ ĠSub title Helper . get Flag From Iso ( iso ) Ġ?: Ġ" ERROR " Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ flag Ġ$ name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġlanguage Codes . indexOf ( current ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. show Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Names , Ġindex , ĠgetString ( R . string . app _ language ), Ġtrue , Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġlanguage Index Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġlanguage Codes [ language Index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Activity . set Locale ( activity , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Manager . edit (). putString ( getString ( R . string . locale _ key ), Ġcode ). apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. re create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Error ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Preference ClickListener Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Pref ( R . string . provider _ lang _ key )?. setOn Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. get Api Provider Lang Settings ()?. let Ġ{ Ġcurrent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Lang s Ġ= ĠHashSet < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( api Ġin ĠAPI Holder . apis ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Lang s . add ( api . lang ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent List Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcurrent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent List . add ( all Lang s . indexOf ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnames Ġ= Ġall Lang s . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemoji Ġ= ĠSub title Helper . get Flag From Iso ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= ĠSub title Helper . from Two Letters To Language ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfullName Ġ= Ġ"$ emoji Ġ$ name " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( it , ĠfullName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. show Multi Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnames . map Ġ{ Ġit . second Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . provider _ lang _ settings ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{}) Ġ{ Ġselected List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Manager . edit (). putString Set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . getString ( R . string . provider _ lang _ key ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected List . map Ġ{ Ġnames [ it ]. first Ġ}. to Mutable Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// API Repository . providers Active Ġ= Ġit . context . get Api Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Preference ClickListener Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ