Skip to content

Commit 1ff7071

Browse files
rajveermalviyagnprice
authored andcommitted
binding [nfc]: Make PackageInfo and *DeviceInfo constructors const
1 parent 0659c48 commit 1ff7071

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

lib/model/binding.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ abstract class ZulipBinding {
156156

157157
/// Like [device_info_plus.BaseDeviceInfo], but without things we don't use.
158158
abstract class BaseDeviceInfo {
159-
BaseDeviceInfo();
159+
const BaseDeviceInfo();
160160
}
161161

162162
/// Like [device_info_plus.AndroidDeviceInfo], but without things we don't use.
@@ -175,7 +175,7 @@ class AndroidDeviceInfo extends BaseDeviceInfo {
175175
/// https://developer.android.com/reference/android/os/Build.VERSION_CODES.html
176176
final int sdkInt;
177177

178-
AndroidDeviceInfo({required this.release, required this.sdkInt});
178+
const AndroidDeviceInfo({required this.release, required this.sdkInt});
179179
}
180180

181181
/// Like [device_info_plus.IosDeviceInfo], but without things we don't use.
@@ -185,7 +185,7 @@ class IosDeviceInfo extends BaseDeviceInfo {
185185
/// See: https://developer.apple.com/documentation/uikit/uidevice/1620043-systemversion
186186
final String systemVersion;
187187

188-
IosDeviceInfo({required this.systemVersion});
188+
const IosDeviceInfo({required this.systemVersion});
189189
}
190190

191191
/// Like [device_info_plus.MacOsDeviceInfo], but without things we don't use.
@@ -199,7 +199,7 @@ class MacOsDeviceInfo extends BaseDeviceInfo {
199199
/// See: https://developer.apple.com/documentation/foundation/operatingsystemversion/1415564-patchversion
200200
final int patchVersion;
201201

202-
MacOsDeviceInfo({
202+
const MacOsDeviceInfo({
203203
required this.majorVersion,
204204
required this.minorVersion,
205205
required this.patchVersion,
@@ -228,7 +228,9 @@ class MacOsDeviceInfo extends BaseDeviceInfo {
228228
// makes it less ideal.
229229
// [1]: https://gist.github.com/rajveermalviya/58b3add437280cc7f8356f3697099b7c
230230
// [2]: https://github.com/zulip/zulip-flutter/pull/724#discussion_r1628318991
231-
class WindowsDeviceInfo implements BaseDeviceInfo {}
231+
class WindowsDeviceInfo implements BaseDeviceInfo {
232+
const WindowsDeviceInfo();
233+
}
232234

233235
/// Like [device_info_plus.LinuxDeviceInfo], but without things we don't use.
234236
class LinuxDeviceInfo implements BaseDeviceInfo {
@@ -249,15 +251,15 @@ class LinuxDeviceInfo implements BaseDeviceInfo {
249251
/// See: https://www.freedesktop.org/software/systemd/man/latest/os-release.html#VERSION_ID=
250252
final String? versionId;
251253

252-
LinuxDeviceInfo({required this.name, required this.versionId});
254+
const LinuxDeviceInfo({required this.name, required this.versionId});
253255
}
254256

255257
/// Like [package_info_plus.PackageInfo], but without things we don't use.
256258
class PackageInfo {
257259
final String version;
258260
final String buildNumber;
259261

260-
PackageInfo({
262+
const PackageInfo({
261263
required this.version,
262264
required this.buildNumber,
263265
});
@@ -329,7 +331,7 @@ class LiveZulipBinding extends ZulipBinding {
329331
device_info_plus.MacOsDeviceInfo() => MacOsDeviceInfo(majorVersion: info.majorVersion,
330332
minorVersion: info.minorVersion,
331333
patchVersion: info.patchVersion),
332-
device_info_plus.WindowsDeviceInfo() => WindowsDeviceInfo(),
334+
device_info_plus.WindowsDeviceInfo() => const WindowsDeviceInfo(),
333335
device_info_plus.LinuxDeviceInfo() => LinuxDeviceInfo(name: info.name,
334336
versionId: info.versionId),
335337
_ => throw UnimplementedError(),

test/model/binding.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ class TestZulipBinding extends ZulipBinding {
207207

208208
/// The value that `ZulipBinding.instance.deviceInfo` should return.
209209
BaseDeviceInfo deviceInfoResult = _defaultDeviceInfoResult;
210-
static final _defaultDeviceInfoResult = AndroidDeviceInfo(sdkInt: 33, release: '13');
210+
static const _defaultDeviceInfoResult = AndroidDeviceInfo(sdkInt: 33, release: '13');
211211

212212
void _resetDeviceInfo() {
213213
deviceInfoResult = _defaultDeviceInfoResult;
@@ -221,7 +221,7 @@ class TestZulipBinding extends ZulipBinding {
221221

222222
/// The value that `ZulipBinding.instance.packageInfo` should return.
223223
PackageInfo packageInfoResult = _defaultPackageInfo;
224-
static final _defaultPackageInfo = PackageInfo(version: '0.0.1', buildNumber: '1');
224+
static const _defaultPackageInfo = PackageInfo(version: '0.0.1', buildNumber: '1');
225225

226226
void _resetPackageInfo() {
227227
packageInfoResult = _defaultPackageInfo;

test/widgets/action_sheet_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ void main() {
415415

416416
testWidgets('can show snackbar on success', (tester) async {
417417
// Regression test for: https://github.com/zulip/zulip-flutter/issues/732
418-
testBinding.deviceInfoResult = IosDeviceInfo(systemVersion: '16.0');
418+
testBinding.deviceInfoResult = const IosDeviceInfo(systemVersion: '16.0');
419419

420420
final message = eg.streamMessage();
421421
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));

test/widgets/clipboard_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,21 @@ void main() {
5858
}
5959

6060
testWidgets('iOS', (WidgetTester tester) async {
61-
testBinding.deviceInfoResult = IosDeviceInfo(systemVersion: '16.0');
61+
testBinding.deviceInfoResult = const IosDeviceInfo(systemVersion: '16.0');
6262
await call(tester, text: 'asdf');
6363
await checkClipboardText('asdf');
6464
await checkSnackBar(tester, expected: true);
6565
});
6666

6767
testWidgets('Android', (WidgetTester tester) async {
68-
testBinding.deviceInfoResult = AndroidDeviceInfo(sdkInt: 33, release: '13');
68+
testBinding.deviceInfoResult = const AndroidDeviceInfo(sdkInt: 33, release: '13');
6969
await call(tester, text: 'asdf');
7070
await checkClipboardText('asdf');
7171
await checkSnackBar(tester, expected: false);
7272
});
7373

7474
testWidgets('Android <13', (WidgetTester tester) async {
75-
testBinding.deviceInfoResult = AndroidDeviceInfo(sdkInt: 32, release: '12');
75+
testBinding.deviceInfoResult = const AndroidDeviceInfo(sdkInt: 32, release: '12');
7676
await call(tester, text: 'asdf');
7777
await checkClipboardText('asdf');
7878
await checkSnackBar(tester, expected: true);

0 commit comments

Comments
 (0)