Skip to content

Commit e41445c

Browse files
committed
feat: macos integration
1 parent 9dd02e0 commit e41445c

26 files changed

+104
-97
lines changed

lib/models/theme.dart

+4-12
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,9 @@ class ThemeModel with ChangeNotifier {
155155
notifyListeners();
156156
}
157157

158-
Future<String> getMarkdownFuture(
159-
BuildContext context, {
160-
@required Future<String> Function() md,
161-
@required Future<String> Function() html,
162-
}) {
163-
switch (markdown) {
164-
case AppMarkdownType.webview:
165-
return html();
166-
default:
167-
return md();
168-
}
158+
bool get shouldUseMarkdownFlutterView {
159+
// WebView on macOS not working
160+
return Platform.isMacOS || markdown == AppMarkdownType.flutter;
169161
}
170162

171163
final router = FluroRouter();
@@ -208,7 +200,7 @@ class ThemeModel with ChangeNotifier {
208200
Fimber.d('read theme: $v');
209201
if (AppThemeType.values.contains(v)) {
210202
_theme = v;
211-
} else if (Platform.isIOS) {
203+
} else if (Platform.isIOS || Platform.isMacOS) {
212204
_theme = AppThemeType.cupertino;
213205
} else {
214206
_theme = AppThemeType.material;

lib/widgets/markdown_view.dart

+23-24
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class MarkdownViewData {
1414
BuildContext context, {
1515
@required Future<String> Function() md,
1616
@required Future<String> Function() html,
17-
}) : future = context.read<ThemeModel>().markdown == AppMarkdownType.flutter
17+
}) : future = context.read<ThemeModel>().shouldUseMarkdownFlutterView
1818
? md()
1919
: html();
2020
}
@@ -29,29 +29,28 @@ class MarkdownView extends StatelessWidget {
2929

3030
if (data?.future == null) return Container();
3131

32-
switch (theme.markdown) {
33-
case AppMarkdownType.flutter:
34-
return FutureBuilder<String>(
35-
future: data.future,
36-
builder: (context, snapshot) {
37-
if (snapshot.data == null) {
38-
return Container();
39-
} else {
40-
return MarkdownFlutterView(snapshot.data);
41-
}
42-
},
43-
);
44-
default:
45-
return FutureBuilder<String>(
46-
future: data.future,
47-
builder: (context, snapshot) {
48-
if (snapshot.data == null) {
49-
return Container();
50-
} else {
51-
return MarkdownWebView(snapshot.data);
52-
}
53-
},
54-
);
32+
if (theme.shouldUseMarkdownFlutterView) {
33+
return FutureBuilder<String>(
34+
future: data.future,
35+
builder: (context, snapshot) {
36+
if (snapshot.data == null) {
37+
return Container();
38+
} else {
39+
return MarkdownFlutterView(snapshot.data);
40+
}
41+
},
42+
);
43+
} else {
44+
return FutureBuilder<String>(
45+
future: data.future,
46+
builder: (context, snapshot) {
47+
if (snapshot.data == null) {
48+
return Container();
49+
} else {
50+
return MarkdownWebView(snapshot.data);
51+
}
52+
},
53+
);
5554
}
5655
}
5756
}

macos/.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Flutter-related
2+
**/Flutter/ephemeral/
3+
**/Pods/
4+
5+
# Xcode-related
6+
**/xcuserdata/

macos/Flutter/GeneratedPluginRegistrant.swift

+2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
import FlutterMacOS
66
import Foundation
77

8+
import package_info
89
import shared_preferences_macos
910
import url_launcher_macos
1011

1112
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
13+
FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin"))
1214
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
1315
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
1416
}

macos/Podfile.lock

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
PODS:
22
- FlutterMacOS (1.0.0)
3+
- package_info (0.0.1):
4+
- FlutterMacOS
35
- shared_preferences (0.0.1)
46
- shared_preferences_macos (0.0.1):
57
- FlutterMacOS
@@ -8,15 +10,18 @@ PODS:
810
- FlutterMacOS
911

1012
DEPENDENCIES:
11-
- FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64`)
13+
- FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64-release`)
14+
- package_info (from `Flutter/ephemeral/.symlinks/plugins/package_info/macos`)
1215
- shared_preferences (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos`)
1316
- shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`)
1417
- url_launcher (from `Flutter/ephemeral/.symlinks/plugins/url_launcher/macos`)
1518
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
1619

1720
EXTERNAL SOURCES:
1821
FlutterMacOS:
19-
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64
22+
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64-release
23+
package_info:
24+
:path: Flutter/ephemeral/.symlinks/plugins/package_info/macos
2025
shared_preferences:
2126
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos
2227
shared_preferences_macos:
@@ -28,11 +33,12 @@ EXTERNAL SOURCES:
2833

2934
SPEC CHECKSUMS:
3035
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
36+
package_info: 6eba2fd8d3371dda2d85c8db6fe97488f24b74b2
3137
shared_preferences: 9fec34d1bd906196a4da48fcf6c3ad521cc00b8d
3238
shared_preferences_macos: 480ce071d0666e37cef23fe6c702293a3d21799e
3339
url_launcher: af78307ef9bafff91273b34f1c6c0c86a0004fd7
3440
url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4
3541

3642
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
3743

38-
COCOAPODS: 1.9.1
44+
COCOAPODS: 1.9.3

macos/Runner.xcodeproj/project.pbxproj

+37-35
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
/* End PBXAggregateTarget section */
2222

2323
/* Begin PBXBuildFile section */
24+
268F5AED9BF731C733240714 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AA59B949B7E1450DDDF49C8 /* Pods_Runner.framework */; };
2425
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
2526
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
2627
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
@@ -30,7 +31,6 @@
3031
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
3132
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
3233
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
33-
EBED608B4364C47D7EE092A2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6207DF5338542C0C28D8C925 /* Pods_Runner.framework */; };
3434
/* End PBXBuildFile section */
3535

3636
/* Begin PBXContainerItemProxy section */
@@ -59,10 +59,11 @@
5959
/* End PBXCopyFilesBuildPhase section */
6060

6161
/* Begin PBXFileReference section */
62-
0371C4A72814A31D90E55D35 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
62+
04EC409A86571650630CB5C6 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
63+
1592FA5050139F337ED0EF9F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
6364
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
6465
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
65-
33CC10ED2044A3C60003C045 /* Flutter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Flutter.app; sourceTree = BUILT_PRODUCTS_DIR; };
66+
33CC10ED2044A3C60003C045 /* git_touch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = git_touch.app; sourceTree = BUILT_PRODUCTS_DIR; };
6667
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
6768
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
6869
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
@@ -75,12 +76,11 @@
7576
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
7677
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
7778
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
78-
6207DF5338542C0C28D8C925 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
79+
3F9C72D6A56791D6EB18EF11 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
80+
4AA59B949B7E1450DDDF49C8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7981
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
8082
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
8183
D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
82-
F06CA75B2E586BC95736FD43 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
83-
FD2BA41C5C700B1011BEFED9 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
8484
/* End PBXFileReference section */
8585

8686
/* Begin PBXFrameworksBuildPhase section */
@@ -90,7 +90,7 @@
9090
files = (
9191
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
9292
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
93-
EBED608B4364C47D7EE092A2 /* Pods_Runner.framework in Frameworks */,
93+
268F5AED9BF731C733240714 /* Pods_Runner.framework in Frameworks */,
9494
);
9595
runOnlyForDeploymentPostprocessing = 0;
9696
};
@@ -115,14 +115,14 @@
115115
33CEB47122A05771004F2AC0 /* Flutter */,
116116
33CC10EE2044A3C60003C045 /* Products */,
117117
D73912EC22F37F3D000D13A0 /* Frameworks */,
118-
8D9F0B0FEE4CD06A50D7C248 /* Pods */,
118+
57B511199A47E0E2F6803A9A /* Pods */,
119119
);
120120
sourceTree = "<group>";
121121
};
122122
33CC10EE2044A3C60003C045 /* Products */ = {
123123
isa = PBXGroup;
124124
children = (
125-
33CC10ED2044A3C60003C045 /* Flutter.app */,
125+
33CC10ED2044A3C60003C045 /* git_touch.app */,
126126
);
127127
name = Products;
128128
sourceTree = "<group>";
@@ -164,21 +164,20 @@
164164
path = Runner;
165165
sourceTree = "<group>";
166166
};
167-
8D9F0B0FEE4CD06A50D7C248 /* Pods */ = {
167+
57B511199A47E0E2F6803A9A /* Pods */ = {
168168
isa = PBXGroup;
169169
children = (
170-
0371C4A72814A31D90E55D35 /* Pods-Runner.debug.xcconfig */,
171-
FD2BA41C5C700B1011BEFED9 /* Pods-Runner.release.xcconfig */,
172-
F06CA75B2E586BC95736FD43 /* Pods-Runner.profile.xcconfig */,
170+
3F9C72D6A56791D6EB18EF11 /* Pods-Runner.debug.xcconfig */,
171+
1592FA5050139F337ED0EF9F /* Pods-Runner.release.xcconfig */,
172+
04EC409A86571650630CB5C6 /* Pods-Runner.profile.xcconfig */,
173173
);
174-
name = Pods;
175174
path = Pods;
176175
sourceTree = "<group>";
177176
};
178177
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
179178
isa = PBXGroup;
180179
children = (
181-
6207DF5338542C0C28D8C925 /* Pods_Runner.framework */,
180+
4AA59B949B7E1450DDDF49C8 /* Pods_Runner.framework */,
182181
);
183182
name = Frameworks;
184183
sourceTree = "<group>";
@@ -190,13 +189,13 @@
190189
isa = PBXNativeTarget;
191190
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
192191
buildPhases = (
193-
0B9DDDEE958E95C1569318D6 /* [CP] Check Pods Manifest.lock */,
192+
091EBED07FB1701D028D2FE5 /* [CP] Check Pods Manifest.lock */,
194193
33CC10E92044A3C60003C045 /* Sources */,
195194
33CC10EA2044A3C60003C045 /* Frameworks */,
196195
33CC10EB2044A3C60003C045 /* Resources */,
197196
33CC110E2044A8840003C045 /* Bundle Framework */,
198197
3399D490228B24CF009A79C7 /* ShellScript */,
199-
0B55EC54227DE6798C8068D3 /* [CP] Embed Pods Frameworks */,
198+
57EBF837B767C19EC4B1A418 /* [CP] Embed Pods Frameworks */,
200199
);
201200
buildRules = (
202201
);
@@ -205,7 +204,7 @@
205204
);
206205
name = Runner;
207206
productName = Runner;
208-
productReference = 33CC10ED2044A3C60003C045 /* Flutter.app */;
207+
productReference = 33CC10ED2044A3C60003C045 /* git_touch.app */;
209208
productType = "com.apple.product-type.application";
210209
};
211210
/* End PBXNativeTarget section */
@@ -266,22 +265,7 @@
266265
/* End PBXResourcesBuildPhase section */
267266

268267
/* Begin PBXShellScriptBuildPhase section */
269-
0B55EC54227DE6798C8068D3 /* [CP] Embed Pods Frameworks */ = {
270-
isa = PBXShellScriptBuildPhase;
271-
buildActionMask = 2147483647;
272-
files = (
273-
);
274-
inputFileListPaths = (
275-
);
276-
name = "[CP] Embed Pods Frameworks";
277-
outputFileListPaths = (
278-
);
279-
runOnlyForDeploymentPostprocessing = 0;
280-
shellPath = /bin/sh;
281-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
282-
showEnvVarsInLog = 0;
283-
};
284-
0B9DDDEE958E95C1569318D6 /* [CP] Check Pods Manifest.lock */ = {
268+
091EBED07FB1701D028D2FE5 /* [CP] Check Pods Manifest.lock */ = {
285269
isa = PBXShellScriptBuildPhase;
286270
buildActionMask = 2147483647;
287271
files = (
@@ -338,7 +322,22 @@
338322
);
339323
runOnlyForDeploymentPostprocessing = 0;
340324
shellPath = /bin/sh;
341-
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
325+
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
326+
};
327+
57EBF837B767C19EC4B1A418 /* [CP] Embed Pods Frameworks */ = {
328+
isa = PBXShellScriptBuildPhase;
329+
buildActionMask = 2147483647;
330+
files = (
331+
);
332+
inputFileListPaths = (
333+
);
334+
name = "[CP] Embed Pods Frameworks";
335+
outputFileListPaths = (
336+
);
337+
runOnlyForDeploymentPostprocessing = 0;
338+
shellPath = /bin/sh;
339+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
340+
showEnvVarsInLog = 0;
342341
};
343342
/* End PBXShellScriptBuildPhase section */
344343

@@ -431,6 +430,7 @@
431430
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
432431
CODE_SIGN_STYLE = Automatic;
433432
COMBINE_HIDPI_IMAGES = YES;
433+
DEVELOPMENT_TEAM = "";
434434
FRAMEWORK_SEARCH_PATHS = (
435435
"$(inherited)",
436436
"$(PROJECT_DIR)/Flutter/ephemeral",
@@ -561,6 +561,7 @@
561561
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
562562
CODE_SIGN_STYLE = Automatic;
563563
COMBINE_HIDPI_IMAGES = YES;
564+
DEVELOPMENT_TEAM = "";
564565
FRAMEWORK_SEARCH_PATHS = (
565566
"$(inherited)",
566567
"$(PROJECT_DIR)/Flutter/ephemeral",
@@ -585,6 +586,7 @@
585586
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
586587
CODE_SIGN_STYLE = Automatic;
587588
COMBINE_HIDPI_IMAGES = YES;
589+
DEVELOPMENT_TEAM = "";
588590
FRAMEWORK_SEARCH_PATHS = (
589591
"$(inherited)",
590592
"$(PROJECT_DIR)/Flutter/ephemeral",

macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<BuildableReference
1616
BuildableIdentifier = "primary"
1717
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
18-
BuildableName = "Flutter.app"
18+
BuildableName = "git_touch.app"
1919
BlueprintName = "Runner"
2020
ReferencedContainer = "container:Runner.xcodeproj">
2121
</BuildableReference>
@@ -43,7 +43,7 @@
4343
<BuildableReference
4444
BuildableIdentifier = "primary"
4545
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
46-
BuildableName = "Flutter.app"
46+
BuildableName = "git_touch.app"
4747
BlueprintName = "Runner"
4848
ReferencedContainer = "container:Runner.xcodeproj">
4949
</BuildableReference>
@@ -66,7 +66,7 @@
6666
<BuildableReference
6767
BuildableIdentifier = "primary"
6868
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
69-
BuildableName = "Flutter.app"
69+
BuildableName = "git_touch.app"
7070
BlueprintName = "Runner"
7171
ReferencedContainer = "container:Runner.xcodeproj">
7272
</BuildableReference>
@@ -85,7 +85,7 @@
8585
<BuildableReference
8686
BuildableIdentifier = "primary"
8787
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
88-
BuildableName = "Flutter.app"
88+
BuildableName = "git_touch.app"
8989
BlueprintName = "Runner"
9090
ReferencedContainer = "container:Runner.xcodeproj">
9191
</BuildableReference>

0 commit comments

Comments
 (0)