/* Ċ Ġ* ĠV en 's ĠAli uc ord ĠPlugins Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠV end icated Ċ Ġ* Ċ Ġ* Ġ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 Ċ */ Ċ Ċ package Ġdev . v end icated . ali uc ord plug s . the mer . settings . editor Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget .* Ċ import Ġcom . ali uc ord . Utils Ċ import Ġcom . ali uc ord . fragments . Settings Page Ċ import Ġcom . ali uc ord . utils . MD Utils Ċ import Ġcom . ali uc ord . views .* Ċ import Ġcom . discord . utilities . color . Color Compat Ċ import Ġcom . ly te fast . flex input . R Ċ import Ġdev . v end icated . ali uc ord plug s . the mer .* Ċ import Ġdev . v end icated . ali uc ord plug s . the mer . settings . The mer Settings Ċ import Ġdev . v end icated . ali uc ord plug s . the mer . settings . editor . tabs .* Ċ import Ġdev . v end icated . ali uc ord plug s . the mer . settings . editor . tabs . color . Color Dialog Type Ċ import Ġdev . v end icated . ali uc ord plug s . the mer . settings . editor . tabs . color . Color Tab Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠTheme Editor ( private Ġval Ġtheme : ĠTheme ) Ġ: ĠSettings Page () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġjson : ĠJSONObject ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtheme . convert If Legacy () ĊĠĠĠĠĠĠĠ Ġjson Ġ= Ġtheme . json (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTHE ME _ KEYS . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has ( it )) Ġput ( it , ĠJSONObject ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġon View Bound ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Bound ( view ) ĊĊĠĠĠĠĠĠĠ Ġset ActionBar Title (" Theme ĠEditor ") ĊĠĠĠĠĠĠĠ Ġset ActionBar Subtitle ( theme . name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġview . context ĊĊĠĠĠĠĠĠĠ ĠTextView ( ctx , Ġnull , Ġ 0 , ĠR . i . Ui Kit _ Settings _ Item _ Addition ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMD Utils . render (" ** Allowed Ġhosts Ġfor Ġimages / fonts :** \ n ${ ALLOWED _ RESOURCE _ DOMAIN S . join ToString () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd View ( build Entry ( ctx , Ġ" Manifest ", ĠR . e . ic _ audit _ logs _ 2 4 dp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest Tab ( json . getJSONObject (" manifest ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( parent FragmentManager , Ġ" Edit ĠManifest ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadd View ( build Entry ( ctx , Ġ" Background ", ĠR . e . ic _ text _ image _ 2 4 dp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBackground Tab ( json . getJSONObject (" background ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( parent FragmentManager , Ġ" Edit Ġbackground ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadd View ( build Entry ( ctx , Ġ" Fonts ", ĠR . e . ic _ edit _ 2 4 dp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFont Tab ( json . getJSONObject (" fonts ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( parent FragmentManager , Ġ" Edit Ġfonts ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadd View ( build Color Entry ( ctx , ĠColor Dialog Type . SIMPLE _ COLORS , Ġ" Simple ĠColors ", ĠR . e . ic _ accessibility _ 2 4 dp , Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS IMP LE _ KEYS . toList () ĊĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġadd View ( build Color Entry ( ctx , ĠColor Dialog Type . COLORS , Ġ" Colors ", ĠR . e . ic _ theme _ 2 4 dp , Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . c :: class . java . declared Fields . map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġadd View ( build Color Entry ( ctx , ĠColor Dialog Type . DRAW ABLE S , Ġ" Drawable ĠT ints ", ĠR . e . ic _ emoji _ 2 4 dp , Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . e :: class . java . declared Fields . map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠ Ġ})) ĊĊĠĠĠĠĠĠĠ ĠSave Button ( ctx ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtheme . file . write Text ( json . toString ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThe mer Settings . prompt Restart ( view , Ġthis @ Theme Editor , Ġ" Saved . ĠRestart ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear Layout . addView ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Color Entry ( ctx : ĠContext , Ġtype : ĠColor Dialog Type , Ġtitle : ĠString , Ġdrawable Id : ĠInt , Ġautocomplete Options : ĠLazy < List < String >>) Ġ= ĊĠĠĠĠĠĠĠ Ġbuild Entry ( ctx , Ġtitle , Ġdrawable Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġtitle . lowercase (). replace (" Ġ", Ġ"_ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . open Page With Proxy ( it . context , ĠColor Tab ( type , Ġtitle , Ġjson . getJSONObject ( key ), Ġautocomplete Options )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Entry ( ctx : ĠContext , Ġtitle : ĠString , Ġdrawable Id : ĠInt , ĠonClick : ĠView . OnClickListener ) Ġ= ĊĠĠĠĠĠĠĠ ĠTextView ( ctx , Ġnull , Ġ 0 , ĠR . i . Ui Kit _ Settings _ Item _ Icon ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( ctx , Ġdrawable Id )?. mutate ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Tint ( Color Compat . get The med Color ( ctx , ĠR . b . color Interactive Normal )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Compound Draw ables Relative With Intr insic Bounds ( it , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener ( onClick ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ