1+ enum SaslMechanism {
2+ plain,
3+ scramSha256,
4+ }
5+
16class NetworkConfig {
27 const NetworkConfig ({
38 required this .id,
49 required this .name,
510 required this .host,
611 required this .port,
712 required this .nickname,
13+ this .altNickname,
814 this .username = 'androidircx' ,
915 this .realName = 'AndroidIRCX' ,
1016 this .useTls = true ,
1117 this .password,
18+ this .saslAccount,
19+ this .saslPassword,
20+ this .saslMechanism = SaslMechanism .plain,
1221 this .autoConnect = false ,
1322 });
1423
@@ -17,10 +26,14 @@ class NetworkConfig {
1726 final String host;
1827 final int port;
1928 final String nickname;
29+ final String ? altNickname;
2030 final String username;
2131 final String realName;
2232 final bool useTls;
2333 final String ? password;
34+ final String ? saslAccount;
35+ final String ? saslPassword;
36+ final SaslMechanism saslMechanism;
2437 final bool autoConnect;
2538
2639 NetworkConfig copyWith ({
@@ -29,10 +42,14 @@ class NetworkConfig {
2942 String ? host,
3043 int ? port,
3144 String ? nickname,
45+ String ? altNickname,
3246 String ? username,
3347 String ? realName,
3448 bool ? useTls,
3549 String ? password,
50+ String ? saslAccount,
51+ String ? saslPassword,
52+ SaslMechanism ? saslMechanism,
3653 bool ? autoConnect,
3754 }) {
3855 return NetworkConfig (
@@ -41,10 +58,14 @@ class NetworkConfig {
4158 host: host ?? this .host,
4259 port: port ?? this .port,
4360 nickname: nickname ?? this .nickname,
61+ altNickname: altNickname ?? this .altNickname,
4462 username: username ?? this .username,
4563 realName: realName ?? this .realName,
4664 useTls: useTls ?? this .useTls,
4765 password: password ?? this .password,
66+ saslAccount: saslAccount ?? this .saslAccount,
67+ saslPassword: saslPassword ?? this .saslPassword,
68+ saslMechanism: saslMechanism ?? this .saslMechanism,
4869 autoConnect: autoConnect ?? this .autoConnect,
4970 );
5071 }
@@ -56,10 +77,14 @@ class NetworkConfig {
5677 'host' : host,
5778 'port' : port,
5879 'nickname' : nickname,
80+ 'altNickname' : altNickname,
5981 'username' : username,
6082 'realName' : realName,
6183 'useTls' : useTls,
6284 'password' : password,
85+ 'saslAccount' : saslAccount,
86+ 'saslPassword' : saslPassword,
87+ 'saslMechanism' : saslMechanism.name,
6388 'autoConnect' : autoConnect,
6489 };
6590 }
@@ -71,10 +96,16 @@ class NetworkConfig {
7196 host: json['host' ]! as String ,
7297 port: (json['port' ]! as num ).toInt (),
7398 nickname: json['nickname' ]! as String ,
99+ altNickname: json['altNickname' ] as String ? ,
74100 username: (json['username' ] as String ? ) ?? 'androidircx' ,
75101 realName: (json['realName' ] as String ? ) ?? 'AndroidIRCX' ,
76102 useTls: (json['useTls' ] as bool ? ) ?? true ,
77103 password: json['password' ] as String ? ,
104+ saslAccount: json['saslAccount' ] as String ? ,
105+ saslPassword: json['saslPassword' ] as String ? ,
106+ saslMechanism: json['saslMechanism' ] == null
107+ ? SaslMechanism .plain
108+ : SaslMechanism .values.byName (json['saslMechanism' ]! as String ),
78109 autoConnect: (json['autoConnect' ] as bool ? ) ?? false ,
79110 );
80111 }
0 commit comments