2727
2828using System ;
2929using System . Collections . Generic ;
30+ using OneSignalSDK ;
3031using OneSignalSDK . Android . User . Models ;
3132using OneSignalSDK . Android . Utilities ;
3233using OneSignalSDK . User ;
@@ -73,7 +74,13 @@ public IPushSubscription PushSubscription
7374
7475 public string Language
7576 {
76- set => _user . Call ( "setLanguage" , value ) ;
77+ set
78+ {
79+ // Empty string is the reset to the device language. Null is not.
80+ if ( InputGuard . IsNull ( value , "setLanguage: language" ) )
81+ return ;
82+ _user . Call ( "setLanguage" , value ) ;
83+ }
7784 }
7885
7986 public Dictionary < string , string > GetTags ( )
@@ -82,35 +89,102 @@ public Dictionary<string, string> GetTags()
8289 return obj . MapToDictionary ( ) ;
8390 }
8491
85- public void AddTag ( string key , string value ) => _user . Call ( "addTag" , key , value ) ;
92+ public void AddTag ( string key , string value )
93+ {
94+ if (
95+ InputGuard . IsMissing ( key , "addTag: key" )
96+ || InputGuard . IsNull ( value , "addTag: value" )
97+ )
98+ return ;
99+ _user . Call ( "addTag" , key , value ) ;
100+ }
86101
87- public void AddTags ( Dictionary < string , string > tags ) => _user . Call ( "addTags" , tags . ToMap ( ) ) ;
102+ public void AddTags ( Dictionary < string , string > tags )
103+ {
104+ if ( InputGuard . HasMissingEntries ( tags , "addTags" , true ) )
105+ return ;
106+ _user . Call ( "addTags" , tags . ToMap ( ) ) ;
107+ }
88108
89- public void RemoveTag ( string key ) => _user . Call ( "removeTag" , key ) ;
109+ public void RemoveTag ( string key )
110+ {
111+ if ( InputGuard . IsMissing ( key , "removeTag: key" ) )
112+ return ;
113+ _user . Call ( "removeTag" , key ) ;
114+ }
90115
91- public void RemoveTags ( params string [ ] keys ) =>
116+ public void RemoveTags ( params string [ ] keys )
117+ {
118+ if ( InputGuard . IsMissingAny ( keys , "removeTags: key" ) )
119+ return ;
92120 _user . Call ( "removeTags" , keys . ToArrayList ( ) ) ;
121+ }
93122
94- public void AddAlias ( string label , string id ) => _user . Call ( "addAlias" , label , id ) ;
123+ public void AddAlias ( string label , string id )
124+ {
125+ if (
126+ InputGuard . IsMissing ( label , "addAlias: label" )
127+ || InputGuard . IsMissing ( id , "addAlias: id" )
128+ )
129+ return ;
130+ _user . Call ( "addAlias" , label , id ) ;
131+ }
95132
96- public void AddAliases ( Dictionary < string , string > aliases ) =>
133+ public void AddAliases ( Dictionary < string , string > aliases )
134+ {
135+ if ( InputGuard . HasMissingEntries ( aliases , "addAliases" , false ) )
136+ return ;
97137 _user . Call ( "addAliases" , aliases . ToMap ( ) ) ;
138+ }
98139
99- public void RemoveAlias ( string label ) => _user . Call ( "removeAlias" , label ) ;
140+ public void RemoveAlias ( string label )
141+ {
142+ if ( InputGuard . IsMissing ( label , "removeAlias: label" ) )
143+ return ;
144+ _user . Call ( "removeAlias" , label ) ;
145+ }
100146
101- public void RemoveAliases ( params string [ ] labels ) =>
147+ public void RemoveAliases ( params string [ ] labels )
148+ {
149+ if ( InputGuard . IsMissingAny ( labels , "removeAliases: label" ) )
150+ return ;
102151 _user . Call ( "removeAliases" , labels . ToArrayList ( ) ) ;
152+ }
103153
104- public void AddEmail ( string email ) => _user . Call ( "addEmail" , email ) ;
154+ public void AddEmail ( string email )
155+ {
156+ if ( InputGuard . IsMissing ( email , "addEmail: email" ) )
157+ return ;
158+ _user . Call ( "addEmail" , email ) ;
159+ }
105160
106- public void RemoveEmail ( string email ) => _user . Call ( "removeEmail" , email ) ;
161+ public void RemoveEmail ( string email )
162+ {
163+ if ( InputGuard . IsMissing ( email , "removeEmail: email" ) )
164+ return ;
165+ _user . Call ( "removeEmail" , email ) ;
166+ }
107167
108- public void AddSms ( string sms ) => _user . Call ( "addSms" , sms ) ;
168+ public void AddSms ( string sms )
169+ {
170+ if ( InputGuard . IsMissing ( sms , "addSms: sms" ) )
171+ return ;
172+ _user . Call ( "addSms" , sms ) ;
173+ }
109174
110- public void RemoveSms ( string sms ) => _user . Call ( "removeSms" , sms ) ;
175+ public void RemoveSms ( string sms )
176+ {
177+ if ( InputGuard . IsMissing ( sms , "removeSms: sms" ) )
178+ return ;
179+ _user . Call ( "removeSms" , sms ) ;
180+ }
111181
112- public void TrackEvent ( string name , Dictionary < string , object > properties = null ) =>
113- _user . Call ( "trackEvent" , name , properties ? . ToMap ( ) ) ;
182+ public void TrackEvent ( string name , Dictionary < string , object > properties = null )
183+ {
184+ if ( InputGuard . IsMissing ( name , "trackEvent: name" ) )
185+ return ;
186+ _user . Call ( "trackEvent" , name , InputGuard . ReplaceNonFiniteNumbers ( properties ) ? . ToMap ( ) ) ;
187+ }
114188
115189 public void Initialize ( )
116190 {
0 commit comments