/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠD uck Duck Go Ċ Ġ* Ċ Ġ* Ġ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 . duck duck go . app . settings Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroid . widget . Radio Group Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . duck duck go . app . browser . R Ċ import Ġcom . duck duck go . mobile . android . ui . Duck Duck Go Theme Ċ import Ġcom . duck duck go . mobile . android . ui . Duck Duck Go Theme .* Ċ Ċ class ĠSettings Theme Selector Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Theme Selected ( selected Theme : ĠD uck Duck Go Theme ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Option : ĠD uck Duck Go Theme Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments ?. get Serializable ( DEFAULT _ OPTION _ EXTRA ) Ġas ĠD uck Duck Go Theme ? Ġ?: ĠLIGHT ĊĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . inflate ( activity , ĠR . layout . settings _ theme _ selector _ fragment , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . findViewById < RadioButton >( R . id . theme Selector System Default ). visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Current Select ( current Option , Ġroot View . findViewById ( R . id . theme Selector Group )) ĊĊĠĠĠĠĠĠĠ Ġval Ġalert Builder Ġ= ĠAlertDialog . Builder ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( root View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . settings Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . settings Theme Dialog Save ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Group Ġ= Ġit . findViewById ( R . id . theme Selector Group ) Ġas ĠRadio Group ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Option Ġ= Ġwhen Ġ( radio Group . checked RadioButton Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . theme Selector Light Ġ-> ĠLIGHT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . theme Selector Dark Ġ-> ĠD ARK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . theme Selector System Default Ġ-> ĠSYSTEM _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLIGHT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġactivity Ġas ĠListener ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Theme Selected ( selected Option ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . cancel ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġalert Builder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Current Select ( current Option : ĠD uck Duck Go Theme , Ġradio Group : ĠRadio Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Id Ġ= Ġcurrent Option . radioButton Id () ĊĠĠĠĠĠĠĠ Ġradio Group . check ( selected Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Id Res ĊĠĠĠ Ġprivate Ġfun ĠD uck Duck Go Theme . radioButton Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLIGHT Ġ-> ĠR . id . theme Selector Light ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD ARK Ġ-> ĠR . id . theme Selector Dark ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSYSTEM _ DEFAULT Ġ-> ĠR . id . theme Selector System Default ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ OPTION _ EXTRA Ġ= Ġ" DEFAULT _ OPTION " ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( selected Fire Animation : ĠD uck Duck Go Theme ?): ĠSettings Theme Selector Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠSettings Theme Selector Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= ĠBundle (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . put Serializable ( DEFAULT _ OPTION _ EXTRA , Ġselected Fire Animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ