package Ġio . github . mat tp va ugh n . tom at . features . settings Ċ Ċ open Ġclass ĠPreference Model ( ĊĠĠĠ Ġval Ġtype : ĠPreference Type , ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġclick : ĠPreference Click Ġ= Ġobject Ġ: ĠPreference Click Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDo Ġnothing Ġby Ġdefault ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠPreference Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġother . type Ġ== Ġtype Ġ&& Ġother . title Ġ== Ġtitle Ġ&& Ġother . key Ġ== Ġkey ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠIncrement able Preference Model ( ĊĠĠĠ Ġtitle : ĠString , Ġkey : ĠString , Ġval Ġincrement By : ĠInt Ġ= Ġ 1 , Ġval Ġallow Neg atives : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠPreference Model ( Preference Type . Increment able Int ( increment By ), Ġtitle , Ġkey ) Ċ Ċ interface ĠPreference Click Ġ{ ĊĠĠĠ Ġfun ĠonClick () Ċ } Ċ Ċ sealed Ġclass ĠPreference Type ( val Ġtype Int : ĠInt ) Ġ{ ĊĠĠĠ Ġobject ĠClick able Ġ: ĠPreference Type ( type Int Ġ= Ġ 1 ) ĊĠĠĠ Ġdata Ġclass ĠIncrement able Int ( val Ġincrement By : ĠInt ) Ġ: ĠPreference Type ( type Int Ġ= Ġ 2 ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVIEW _ TYPE _ CLICK ABLE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVIEW _ TYPE _ INCREMENT ABLE Ġ= Ġ 2 ĊĠĠĠ Ġ} Ċ } ĊĊ