package Ġcom . th ank sm ister . iot . mqtt . alar mp anel . network Ċ Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . ui . Configuration Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . utils . Alarm Utils Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . utils . Alarm Utils . Companion . ALARM _ COMMAND _ TOPIC Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . utils . Alarm Utils . Companion . ALARM _ STATE _ TOPIC Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . utils . Component Utils .* Ċ import Ġcom . th ank sm ister . iot . mqtt . alar mp anel . utils . Device Utils Ċ import Ġdp reference . DP reference Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* ĠFor Ġoriginal Ġimplementation Ġsee Ġhttps :// github . com / andro idth ings / sensor hub - cloud - iot . Ċ Ġ*/ Ċ class ĠM QT TO ptions Ġ@ Inject Ċ constructor ( private Ġval Ġshared Preferences : ĠD Preference ) Ġ{ ĊĊĠĠĠ Ġval ĠisValid : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( get Tls Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( get Broker ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( getClient Id ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetState Topics (). isNotEmpty () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( get Command Topic ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( getState Topic ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( getUsername ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( getPassword ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ! TextUtils . isEmpty ( get Broker ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( getClient Id ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetState Topics (). isNotEmpty () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! TextUtils . isEmpty ( get Command Topic ()) ĊĊĠĠĠ Ġval Ġbroker Url : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ(! TextUtils . isEmpty ( get Broker ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get Broker (). contains (" http :// ") Ġ|| Ġget Broker (). contains (" https :// ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( Locale . getDefault (), ĠHTTP _ BRO KER _ URL _ FORMAT , Ġget Broker (), Ġget Port ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( get Tls Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( Locale . getDefault (), ĠSSL _ BRO KER _ URL _ FORMAT , Ġget Broker (), Ġget Port ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( Locale . getDefault (), ĠTCP _ BRO KER _ URL _ FORMAT , Ġget Broker (), Ġget Port ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ"" ĊĊĠĠĠ Ġfun Ġget Broker (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ BRO KER , Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ClientId (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠclientId Ġ= Ġshared Preferences . get Pref String ( PRE F _ CLIENT _ ID , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( clientId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠclientId Ġ= ĠDevice Utils . uu Id Hash ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠclientId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Command Topic (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ COMMAND _ TOPIC , ĠAL ARM _ COMMAND _ TOPIC ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetState Topic (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ STATE _ TOPIC , ĠAL ARM _ STATE _ TOPIC ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetState Topics (): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtopics Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġtopics . add ( shared Preferences . get Pref String ( PRE F _ STATE _ TOPIC , ĠAL ARM _ STATE _ TOPIC )) ĊĠĠĠĠĠĠĠ Ġtopics . add ( shared Preferences . get Pref String ( PRE F _ NOTIFICATION _ TOPIC , ĠNOT IFICATION _ STATE _ TOPIC )) ĊĠĠĠĠĠĠĠ Ġtopics . add ( shared Preferences . get Pref String ( PRE F _ CAPTURE _ TOPIC , ĠIMAGE _ CAPTURE _ STATE _ TOPIC )) ĊĠĠĠĠĠĠĠ Ġreturn Ġtopics . toArray ( array Of < String >()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Notification Topic (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ NOTIFICATION _ TOPIC , ĠNOT IFICATION _ STATE _ TOPIC ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Camera Topic (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ CAPTURE _ TOPIC , ĠIMAGE _ CAPTURE _ STATE _ TOPIC ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Username (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ USERNAME , Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Password (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref String ( PRE F _ PASSWORD , Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Port (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref Int ( PRE F _ PORT , ĠAlarm Utils . PORT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Tls Connection (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . get Pref Boolean ( PRE F _ TLS _ CONNECTION , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Username ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ USERNAME , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ClientId ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ CLIENT _ ID , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Broker ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ BRO KER , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Port ( value : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref Int ( PRE F _ PORT , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Password ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ PASSWORD , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Command Topic ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ COMMAND _ TOPIC , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Alarm Topic ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ STATE _ TOPIC , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Notification Topic ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ NOTIFICATION _ TOPIC , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Capture Topic ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref String ( PRE F _ CAPTURE _ TOPIC , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Tls Connection ( value : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref Boolean ( PRE F _ TLS _ CONNECTION , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġset Options Updated ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Options Updated ( value : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shared Preferences . set Pref Boolean ( MQTT _ OPTIONS _ UPDATED , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Updates (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdates Ġ= Ġshared Preferences . get Pref Boolean ( MQTT _ OPTIONS _ UPDATED , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Updates : Ġ" Ġ+ Ġupdates ) ĊĠĠĠĠĠĠĠ Ġreturn Ġupdates ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ STATE _ TOPIC ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ NOTIFICATION _ TOPIC ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ CAPTURE _ TOPIC ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ USERNAME ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ COMMAND _ TOPIC ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ TLS _ CONNECTION ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ PASSWORD ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ PORT ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ CLIENT _ ID ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ PASSWORD ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( PRE F _ BRO KER ) ĊĠĠĠĠĠĠĠ Ġshared Preferences . remove Preference ( MQTT _ OPTIONS _ UPDATED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSSL _ BRO KER _ URL _ FORMAT Ġ= Ġ" ssl :// % s :% d " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTCP _ BRO KER _ URL _ FORMAT Ġ= Ġ" tcp :// % s :% d " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHTTP _ BRO KER _ URL _ FORMAT Ġ= Ġ"% s :% d " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ STATE _ TOPIC Ġ= Ġ" pref _ alarm _ topic " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ NOTIFICATION _ TOPIC Ġ= Ġ" pref _ notification _ topic " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ CAPTURE _ TOPIC Ġ= Ġ" pref _ capture _ topic " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ USERNAME Ġ= Ġ" pref _ username " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ COMMAND _ TOPIC Ġ= Ġ" pref _ command _ topic " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ TLS _ CONNECTION Ġ= Ġ" pref _ tls _ connection " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ PASSWORD Ġ= Ġ" pref _ password " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ PORT Ġ= Ġ" pref _ port " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ CLIENT _ ID Ġ= Ġ" pref _ client _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ BRO KER Ġ= Ġ" pref _ broker " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMQTT _ OPTIONS _ UPDATED Ġ= Ġ" pref _ mqtt _ options _ updated " ĊĠĠĠ Ġ} Ċ }