package Ġcom . lp ir ro . tile demo . sharing Ċ Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . lp ir ro . tile demo . Config Setting Ċ import Ġcom . lp ir ro . tile demo . R Ċ import Ġcom . lp ir ro . tile demo . Rx Bus Ċ import Ġcom . lp ir ro . tile demo . Utils Ċ import Ġcom . lp ir ro . tile demo . Utils . Q SETTING _ CONFIG Ċ import Ġcom . lp ir ro . tile demo . custom quick settings . Quick Setting Model ĊĊ Ċ const Ġval ĠW LAN Ġ= Ġ" WLAN " Ċ const Ġval ĠBluetooth Ġ= Ġ" Bluetooth " Ċ const Ġval ĠFlash light Ġ= Ġ" Flash light " Ċ const Ġval ĠGPS Ġ= Ġ" GPS " Ċ const Ġval ĠM OB ILE DATA Ġ= Ġ" MOB ILE ĠDATA " Ċ const Ġval ĠN FC Ġ= Ġ" N FC " Ċ Ċ class ĠQ Setting Config Receiver : ĠBroadcast Receiver () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Bundle : ĠBundle ? Ġ= Ġit . get Bundle Extra (" config _ bundle ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Bundle ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġit . get Parcelable (" config ") Ġas ? ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig ?. let Ġ{ Ġsave Config ( context !! , Ġconfig ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context !! ," Ġcheck Ġparam Ġis Ġpassed Ġin Ġbundle Ġwith Ġkey Ġconfig _ bundle Ġand Ġthe ĠPar cal able Ġobject Ġwith Ġkey Ġconfig ", ĠToast . LENGTH _ LONG Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Config ( context : ĠContext , Ġconfig : ĠConfig ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared preferences Ġby Ġlazy Ġ{ Ġ Ġcontext . get SharedPreferences (" My PREFER ENCES ", ĠContext . MODE _ PRIVATE ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Quick Setting Model . Tiles Model >(). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshown Elements Ġ= Ġconfig . shown Elements ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshown Notifications Ġ= Ġconfig . shown Notifications ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshown Elements . elements . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . element Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠW LAN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( WLAN , ĠR . drawable . ic _ wifi , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( Bluetooth , ĠR . drawable . ic _ bluetooth , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlash light Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( Flash light , ĠR . drawable . ic _ flash light , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGPS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( GPS , ĠR . drawable . ic _ gps _ off , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM OB ILE DATA Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( MOB ILE DATA , ĠR . drawable . ic _ cell _ wifi , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN FC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Quick Setting Model . Tiles Model ( N FC , ĠR . drawable . ic _ n fc , Ġis ReadOnly Ġ= Ġit . access Level Ġ== Ġ" readonly ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlistOf Notifications Ġ= Ġarray ListOf < Notification >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshown Notifications . notification . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Notifications . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . listOf allowed Notification Package . addAll ( listOf Notifications . map Ġ{ Ġit . packageName Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave To Shared Preference ( shared preferences , ĠlistOf Notifications ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠRx Bus . publish ( Config Setting ( list )) ĊĠĠĠĠĠĠĠ Ġsave Into Shared Preference ( shared preferences , Ġlist ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave To Shared Preference ( shared preferences : ĠSharedPreferences ?, Ġlist : ĠArrayList < Notification >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson : ĠString Ġ= ĠGson (). toJson ( list ) ĊĠĠĠĠĠĠĠ Ġshared preferences ?. edit ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Utils . NOTIFICATION _ PACKAGE _ LIST , Ġjson ) ĊĠĠĠĠĠĠĠ Ġ} ?. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Into Shared Preference ( shared preferences : ĠSharedPreferences ?, Ġlist : ĠList < Quick Setting Model . Tiles Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson : ĠString Ġ= ĠGson (). toJson ( list ) ĊĠĠĠĠĠĠĠ Ġshared preferences ?. edit ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Q SETTING _ CONFIG , Ġjson ) ĊĠĠĠĠĠĠĠ Ġ} ?. commit () ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊĊĊ