package Ġcom . lo f tech s . sample . profile Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . google . android . material . app bar . Material Toolbar Ċ import Ġcom . google . android . material . switch material . Switch Material Ċ import Ġcom . google . android . material . text view . Material TextView Ċ import Ġcom . lo f tech s . sample . R Ċ import Ġcom . lo f tech s . sample . base . Abstract Fragment Ċ import Ġcom . lo f tech s . sample . base . Base Contract Ċ import Ġcom . lo f tech s . sample . component . G lide App Ċ import Ġcom . lo f tech s . sample . utils . Custom UI Util Ċ import Ġjava . io . File Ċ Ċ class ĠSetting Fragment Ġ: ĠAbstract Fragment (), ĠSetting Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Presenter : ĠSetting Contract . Presenter < Setting Contract . View >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Toolbar : ĠMaterial Toolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Avatar : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Nick name : ĠMaterial TextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Mute Title : ĠMaterial TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Mute Switch : ĠSwitch Material ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Notification Sender Title : ĠMaterial TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Notification Sender Switch : ĠSwitch Material ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Notification Content Title : ĠMaterial TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Notification Content Switch : ĠSwitch Material ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Instance : ĠSetting Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠSetting Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Presenter (): ĠBase Contract . Base Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Presenter Ġ?: ĠSetting Presenter (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear Presenter () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Presenter Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ setting , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Presenter ?. bind View ( this ) ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Toolbar Ġ= Ġview . findViewById ( R . id . setting _ toolbar ) ĊĠĠĠĠĠĠĠ Ġm Toolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Avatar Ġ= Ġview . findViewById ( R . id . setting _ avatar ) ĊĠĠĠĠĠĠĠ Ġm Nick name Ġ= Ġview . findViewById ( R . id . setting _ nickname ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Layout : ĠConstraint Layout Ġ= Ġview . findViewById ( R . id . setting _ profile _ layout ) ĊĠĠĠĠĠĠĠ Ġprofile Layout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Fragment ( Set Profile Fragment . newInstance (), Ġm Presenter ?. get Set Profile Bundle ( require Arguments ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmute Layout : ĠConstraint Layout Ġ= Ġview . findViewById ( R . id . setting _ mute ) ĊĠĠĠĠĠĠĠ Ġm Mute Title Ġ= Ġmute Layout . findViewById ( R . id . item _ setting _ title ) ĊĠĠĠĠĠĠĠ Ġm Mute Switch Ġ= Ġmute Layout . findViewById ( R . id . item _ setting _ switch ) ĊĠĠĠĠĠĠĠ Ġm Mute Switch . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter ?. set Mute ( isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnotification Sender Layout : ĠConstraint Layout Ġ= Ġview . findViewById ( R . id . setting _ notification _ sender ) ĊĠĠĠĠĠĠĠ Ġm Notification Sender Title Ġ= Ġnotification Sender Layout . findViewById ( R . id . item _ setting _ title ) ĊĠĠĠĠĠĠĠ Ġm Notification Sender Switch Ġ= Ġnotification Sender Layout . findViewById ( R . id . item _ setting _ switch ) ĊĠĠĠĠĠĠĠ Ġm Notification Sender Switch . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter ?. enable Notification Display ( isChecked , Ġm Notification Content Switch . isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnotification Content Layout : ĠConstraint Layout Ġ= Ġview . findViewById ( R . id . setting _ notification _ content ) ĊĠĠĠĠĠĠĠ Ġm Notification Content Title Ġ= Ġnotification Content Layout . findViewById ( R . id . item _ setting _ title ) ĊĠĠĠĠĠĠĠ Ġm Notification Content Switch Ġ= Ġnotification Content Layout . findViewById ( R . id . item _ setting _ switch ) ĊĠĠĠĠĠĠĠ Ġm Notification Content Switch . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter ?. enable Notification Display ( m Notification Sender Switch . isChecked , Ġis Checked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġm Presenter ?. unbind View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetDefault Avatar View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠCustom UI Util . convert Dp To Pixel ( require Context (), Ġ 6 4 ) ĊĠĠĠĠĠĠĠ ĠG lide App . with ( m Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . drawable . ic _ profile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. circle Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. override ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( m Avatar ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Avatar View ( avatar File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠCustom UI Util . convert Dp To Pixel ( require Context (), Ġ 6 4 ) ĊĠĠĠĠĠĠĠ ĠG lide App . with ( m Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( avatar File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. circle Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. skip Memory Cache ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. override ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( m Avatar ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Nick name Text ( nickname Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Nick name . text Ġ= Ġnickname Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Mute Title Text ( text Resource ID : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Mute Title . text Ġ= ĠgetString ( text Resource ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Mute Status ( is Mute : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Mute Switch . isChecked Ġ= Ġis Mute ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Sender Title Text ( text Resource ID : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Notification Sender Title . text Ġ= ĠgetString ( text Resource ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Sender Status ( show Display Sender : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Notification Sender Switch . isChecked Ġ= Ġshow Display Sender ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Content Title Text ( text Resource ID : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Notification Content Title . text Ġ= ĠgetString ( text Resource ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Content Status ( show Display Content : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Notification Content Switch . isChecked Ġ= Ġshow Display Content ĊĠĠĠ Ġ} Ċ }