├── .flutter-plugins
├── .flutter-plugins-dependencies
├── .gitignore
├── LICENSE
├── README.md
├── android
├── .gitignore
├── .idea
│ ├── .gitignore
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── misc.xml
│ ├── modules.xml
│ ├── modules
│ │ └── android.iml
│ ├── vcs.xml
│ └── workspace.xml
├── app
│ ├── build.gradle
│ ├── flutter_armod
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── armod_flutter_store
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── launcher_icon.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── launcher_icon.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── launcher_icon.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── launcher_icon.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── launcher_icon.png
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── armod-release-key.keystore
├── armod_flutter_store_android.iml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── hs_err_pid61052.log
├── hs_err_pid62372.log
├── hs_err_pid67752.log
├── multidex-config.pro
├── settings.gradle
└── settings_aar.gradle
├── assets
└── icon
│ └── logo.jpg
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
├── Runner
│ ├── ARMODCallbackAPI.swift
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
└── ThirdParties
│ └── README.md
├── lib
├── main.dart
└── src
│ ├── config
│ ├── phantomsxrConfig.dart
│ └── route.dart
│ ├── model
│ ├── data.dart
│ ├── general_experience.dart
│ ├── general_experience_detail.dart
│ └── recommand_experience.dart
│ ├── pages
│ ├── ar_experience_detail.dart
│ ├── ar_view.dart
│ ├── home_page.dart
│ └── mainPage.dart
│ ├── themes
│ ├── light_color.dart
│ └── theme.dart
│ ├── utils.dart
│ └── widgets
│ ├── column_builder.dart
│ ├── customRoute.dart
│ ├── experience_card.dart
│ ├── extentions.dart
│ ├── recommend_card.dart
│ ├── subtitle_text.dart
│ ├── title_text.dart
│ └── without_scroll_glow.dart
├── pubspec.yaml
└── test
└── widget_test.dart
/.flutter-plugins:
--------------------------------------------------------------------------------
1 | # This is a generated file; do not edit or check into version control.
2 | flutter_armod_widget=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_armod_widget-2.0.0-pre.1/
3 | flutter_plugin_android_lifecycle=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_plugin_android_lifecycle-2.0.7/
4 | path_provider=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.11/
5 | path_provider_android=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.16/
6 | path_provider_ios=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_ios-2.0.10/
7 | path_provider_linux=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.7/
8 | path_provider_macos=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.6/
9 | path_provider_windows=/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.0/
10 |
--------------------------------------------------------------------------------
/.flutter-plugins-dependencies:
--------------------------------------------------------------------------------
1 | {"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_armod_widget","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_armod_widget-2.0.0-pre.1/","native_build":true,"dependencies":[]},{"name":"path_provider_ios","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_ios-2.0.10/","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_armod_widget","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_armod_widget-2.0.0-pre.1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_plugin_android_lifecycle-2.0.7/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.16/","native_build":true,"dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.6/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.7/","native_build":false,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/nswell/Documents/PhantomsXR/Others/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.0/","native_build":false,"dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"flutter_armod_widget","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_ios","path_provider_linux","path_provider_macos","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_ios","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2022-10-04 20:40:17.106276","version":"3.0.5"}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://www.dartlang.org/guides/libraries/private-files
2 |
3 | # Files and directories created by pub
4 | .dart_tool/
5 | .packages
6 | build/
7 | # If you're building an application, you may want to check-in your pubspec.lock
8 | pubspec.lock
9 |
10 | # Directory created by dartdoc
11 | # If you don't generate documentation locally you can remove this line.
12 | doc/api/
13 |
14 | # Avoid committing generated Javascript files:
15 | *.dart.js
16 | *.info.json # Produced by the --dump-info flag.
17 | *.js # When generated by dart2js. Don't specify *.js if your
18 | # project includes source files written in JavaScript.
19 | *.js_
20 | *.js.deps
21 | *.js.map
22 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ARMOD-Flutter App Demo
2 | This repository is used to demonstrate how the AR-MOD SDK can be used in Flutter.
3 |
4 | ## Getting Started
5 |
6 |
7 | 1. Install this plugin to your flutter project. If you do not know how to install the `Flutter Package` you can [click here](https://flutter.dev/docs/development/packages-and-plugins/using-packages) to see the document.
8 |
9 |
10 | Install Guid
11 |
12 | The AR-MOD SDK currently provides a plug-in package for Flutter. You can install it through `flutter_armod_widget: ^0.0.3` in your flutter project `pubspec.yaml` !
13 |
14 | ```yaml
15 | # Other config
16 | dependencies:
17 | flutter:
18 | sdk: flutter
19 | flutter_armod_widget: ^0.0.3
20 | # Other config
21 |
22 | ```
23 |
24 |
25 |
26 |
27 | 2. Go to [PhantomsXR](https://github.com/Phantomxm2021/ARMOD-Framework) github respository. Download and Unzip it.
28 |
29 | 3. Choose iOS or Android platform from the options below to set.
30 |
31 |
32 | Android Setup
33 |
34 | 1. Go to the location of your `FLUTTER SDK PATH/.pub-cache/hosted/pub.dartlang.org/flutter_armod_widget-0.0.3/` folder, then paste the `libs` to `android` platform folder.
35 |
36 | 2. Run `Flutter pub get` command in your termial.
37 |
38 |
39 |
40 |
41 |
42 |
43 | iOS Setup
44 |
45 | 1. Create the `ThirdParties` folder to your XCode project.
46 |
47 | 2. Import `UnityFramework.framework` to the folder(ThridParties).
48 |
49 | 3. Add the Framewrok to Xcode -> Targets -> Your APP -> General -> Franework,Libraries, and Embedded Content area, And set the Embed mode to Embed & Sign.
50 |
51 | 4. Execute the `cd iOS` command and run `Pod install` command in your termial.
52 |
53 | 5. Double-Click to open the `Runner.xcworkspace` file. It will be launch the XCode app.
54 |
55 | 6. If you're using Swift, open the *ios/Runner/AppDelegate.swift* file and change the following:
56 |
57 | ```diff
58 | import UIKit
59 | import Flutter
60 | + import flutter_armod_widget
61 |
62 | @UIApplicationMain
63 | @objc class AppDelegate: FlutterAppDelegate {
64 | override func application(
65 | _ application: UIApplication,
66 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
67 | ) -> Bool {
68 | + InitARMODIntegrationWithOptions(argc: CommandLine.argc, argv: CommandLine.unsafeArgv, launchOptions)
69 |
70 | GeneratedPluginRegistrant.register(with: self)
71 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
72 | }
73 | }
74 | ```
75 |
76 | > If you're using Objective-C, open the *ios/Runner/main.m* file and change the following:
77 | ```diff
78 | + #import "flutter_armod_widget.swift.h"
79 |
80 | int main(int argc, char * argv[]) {
81 | @autoreleasepool {
82 | + InitARMODIntegration(argc, argv);
83 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
84 | }
85 | }
86 | ```
87 |
88 | 7. Edit the info.plist
89 |
90 | ```diff
91 |
92 | + io.flutter.embedded_views_preview
93 | + YES
94 |
95 | ```
96 |
97 | ```diff
98 |
99 | + Privacy - Camera Usage Description
100 | + $(PRODUCT_NAME) uses Cameras
101 |
102 | ```
103 |
104 | ```diff
105 |
106 | + NSBonjourServices
107 | + _dartobservatory._tcp
108 |
109 | ```
110 |
111 |
112 |
113 | 4. Create and write your app token to [PhantomsXRConfig.dart](lib/src/config/phantomsxrConfig.dart).
114 |
115 | 5. And write a new screen for AR-MOD.
116 |
117 | # Common mistakes
118 | ## iOS Error
119 | - Q: ios/Flutter/Generated.xcconfig must exist.
120 | - A: Execute `Flutter run` command to generate the `Generated.xcconfig` file
121 |
122 | - Q: CocoaPods could not find compatible versions for pod "flutter_armod_widget"
123 | - A: Find and replace the `platform :ios, '9.0'` to `platform :ios, '11.0'` in the Podfile. Then Execute `Pod update` command to refresh your project.
124 |
125 | ## Example Code
126 | ```dart
127 | import 'dart:async';
128 |
129 | import 'package:armod_flutter_store/src/model/data.dart';
130 | import 'package:armod_flutter_store/src/themes/theme.dart';
131 | import 'package:flutter/cupertino.dart';
132 | import 'package:flutter/material.dart';
133 | import 'package:flutter_armod_widget/flutter_armod_widget.dart';
134 | import 'package:flutter_easyloading/flutter_easyloading.dart';
135 |
136 | import '../config/phantomsxrConfig.dart';
137 |
138 | class ARView extends StatefulWidget {
139 | ARView({Key? key}) : super(key: key);
140 |
141 | @override
142 | ARViewState createState() => ARViewState();
143 | }
144 |
145 | class ARViewState extends State {
146 | late ARMODWidgetController _armodWidgetController;
147 | bool _onWillPop = false;
148 | @override
149 | void initState() {
150 | super.initState();
151 | }
152 |
153 | @override
154 | void dispose() {
155 | super.dispose();
156 | }
157 |
158 | Widget _appBar() {
159 | return SafeArea(
160 | top: true,
161 | child: GestureDetector(
162 | child: Container(
163 | padding: AppTheme.padding,
164 | child: Row(
165 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
166 | children: [
167 | Container(
168 | width: 25,
169 | height: 25,
170 | alignment: Alignment.center,
171 | decoration: BoxDecoration(
172 | color: Colors.white,
173 | borderRadius: BorderRadius.all(Radius.circular(15)),
174 | ),
175 | child: Icon(Icons.close, color: Colors.black54, size: 20),
176 | )
177 | ],
178 | ),
179 | ),
180 | onTap: () async {
181 | bool willPop = await _onBackPressed();
182 | if (willPop) Navigator.of(context).pop(true);
183 | },
184 | ));
185 | }
186 |
187 | @override
188 | Widget build(BuildContext context) {
189 | return new WillPopScope(
190 | onWillPop: _onBackPressed,
191 | child: new Scaffold(
192 | body: SafeArea(
193 | top: true,
194 | child: Stack(
195 | children: [
196 | ARMODWidget(
197 | onARMODCreated: onARMODCreate,
198 | onARMODExit: onARMODExit,
199 | onARMODLaunch: onARMODLaunch,
200 | onAddLoadingOverlay: onAddLoadingOverlay,
201 | onDeviceNotSupport: onDeviceNotSupport,
202 | onNeedInstallARCoreService: onNeedInstallARCoreService,
203 | onOpenBuiltInBrowser: onOpenBuiltInBrowser,
204 | onPackageSizeMoreThanPresetSize:
205 | onPackageSizeMoreThanPresetSize,
206 | onRecognitionComplete: onRecognitionComplete,
207 | onRecognitionStart: onRecognitionStart,
208 | onRemoveLoadingOverlay: onRemoveLoadingOverlay,
209 | onSdkInitialized: onSdkInitialized,
210 | onThrowException: onThrowException,
211 | onTryAcquireInformation: onTryAcquireInformation,
212 | onUpdateLoadingProgress: onUpdateLoadingProgress,
213 | fullscreen: true,
214 | ),
215 | _appBar()
216 | ],
217 | )),
218 | ),
219 | );
220 | }
221 |
222 | ///Handling the back event
223 | Future _onBackPressed() async {
224 | //Close AR-MOD SDK
225 | _armodWidgetController.unloadAndHideARMOD();
226 |
227 | while (!_onWillPop) {
228 | //We need to delayed executed because release AR-MOD operation is async.
229 | //May need to wait one more frame
230 | await Future.delayed(Duration(milliseconds: 1));
231 | }
232 |
233 | return _onWillPop;
234 | }
235 |
236 | showAlertDialog(BuildContext context, String title, String msg) {
237 | // set up the button
238 | Widget okButton = TextButton(
239 | child: Text("OK"),
240 | onPressed: () {
241 | Navigator.of(context).pop();
242 | },
243 | );
244 |
245 | // set up the AlertDialog
246 | AlertDialog alert = AlertDialog(
247 | title: Text(title),
248 | content: Text(msg),
249 | actions: [
250 | okButton,
251 | ],
252 | );
253 |
254 | // show the dialog
255 | showDialog(
256 | context: context,
257 | builder: (BuildContext context) {
258 | return alert;
259 | },
260 | );
261 | }
262 |
263 | Future onARMODCreate(controller) async {
264 | this._armodWidgetController = controller;
265 | if (await _armodWidgetController.isLoaded() != false)
266 | _armodWidgetController.create();
267 | }
268 |
269 | void onARMODLaunch() {
270 | print("----------------------------");
271 | print("-------onARMODLaunch---------");
272 | print("----------------------------");
273 | _armodWidgetController.initARMOD(
274 | '{"EngineType":"Native","dashboardConfig":{"dashboardGateway":"https://weacw.com/api/v1/getarexperience","token":"${PhantomsXRConfig.AppToken}","timeout":30,"maximumDownloadSize":30},"imageCloudRecognizerConfig":{"gateway":"","maximumOfRetries":5,"frequencyOfScan":5}}');
275 |
276 | Future.delayed(Duration(milliseconds: 125),
277 | () => {_armodWidgetController.fetchProject(AppData.ar_experience_uid)});
278 | }
279 |
280 | void onThrowException(String errorMsg, int erorCode) {
281 | EasyLoading.dismiss();
282 | showAlertDialog(context, "(Error:$erorCode)", errorMsg);
283 | }
284 |
285 | void onARMODExit() {
286 | print("----------------------------");
287 | print("-------onARMODExit---------");
288 | print("----------------------------");
289 | _onWillPop = true;
290 | }
291 |
292 | void onUpdateLoadingProgress(progress) {
293 | EasyLoading.showProgress(progress,
294 | status: '${(progress * 100).toStringAsFixed(0)}%');
295 | }
296 |
297 | Future onTryAcquireInformation(String opTag) async {
298 | await Future.delayed(Duration(seconds: 3));
299 | return "onTryAcquireInformation_$opTag";
300 | }
301 |
302 | void onAddLoadingOverlay() {
303 | EasyLoading.instance
304 | ..indicatorType = EasyLoadingIndicatorType.fadingCircle
305 | ..maskColor = Colors.red.withOpacity(0.5)
306 | ..dismissOnTap = false;
307 | }
308 |
309 | void onRemoveLoadingOverlay() {
310 | EasyLoading.dismiss();
311 | }
312 |
313 | void onDeviceNotSupport() {}
314 |
315 | void onRecognitionStart() {}
316 |
317 | void onNeedInstallARCoreService() {}
318 |
319 | void onSdkInitialized() {}
320 |
321 | void onOpenBuiltInBrowser(url) {}
322 |
323 | void onPackageSizeMoreThanPresetSize(currentSize, presetSize) {}
324 |
325 | void onRecognitionComplete() {}
326 | }
327 | ```
328 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/android/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/android/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/android/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/.idea/modules/android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/android/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/workspace.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | 1641222232471
55 |
56 |
57 | 1641222232471
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | def keystoreProperties = new Properties()
29 | def keystorePropertiesFile = rootProject.file('key.properties')
30 | if (keystorePropertiesFile.exists()) {
31 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
32 | }
33 |
34 |
35 | android {
36 | compileSdkVersion 31
37 |
38 | sourceSets {
39 | main.java.srcDirs += 'src/main/kotlin'
40 | }
41 |
42 | lintOptions {
43 | disable 'InvalidPackage'
44 | }
45 |
46 | defaultConfig {
47 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
48 |
49 | applicationId "com.example.armod_flutter_store"
50 | minSdkVersion 28
51 | targetSdkVersion 30
52 | versionCode flutterVersionCode.toInteger()
53 | versionName flutterVersionName
54 | }
55 |
56 | signingConfigs {
57 | release {
58 | keyAlias keystoreProperties['keyAlias']
59 | keyPassword keystoreProperties['keyPassword']
60 | storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
61 | storePassword keystoreProperties['storePassword']
62 | }
63 | }
64 |
65 | buildTypes {
66 | release {
67 | // TODO: Add your own signing config for the release build.
68 | // Signing with the debug keys for now, so `flutter run --release` works.
69 | // signingConfig signingConfigs.debug
70 | signingConfig signingConfigs.release
71 | }
72 | debug {
73 | signingConfig signingConfigs.debug
74 | }
75 | profile {
76 | signingConfig signingConfigs.debug
77 | }
78 | innerTest {
79 | matchingFallbacks = ['debug', 'release']
80 | }
81 | }
82 | }
83 |
84 | flutter {
85 | source '../..'
86 | }
87 |
88 | dependencies {
89 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
90 | }
--------------------------------------------------------------------------------
/android/app/flutter_armod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/flutter_armod
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
10 |
14 |
22 |
26 |
30 |
35 |
39 |
40 |
41 |
42 |
43 |
44 |
46 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/armod_flutter_store/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.armod_flutter_store
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Game view
3 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/armod-release-key.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/android/armod-release-key.keystore
--------------------------------------------------------------------------------
/android/armod_flutter_store_android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | maven {url 'https://maven.aliyun.com/repository/central'}
5 | maven {url 'https://maven.aliyun.com/repository/public'}
6 | maven {url 'https://maven.aliyun.com/repository/google'}
7 | maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}
8 | google()
9 | jcenter()
10 | }
11 |
12 | dependencies {
13 |
14 | classpath 'com.android.tools.build:gradle:4.1.0'
15 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
16 | }
17 |
18 | }
19 |
20 |
21 | allprojects {
22 | repositories {
23 | maven {url 'https://maven.aliyun.com/repository/central'}
24 | maven {url 'https://maven.aliyun.com/repository/public'}
25 | maven {url 'https://maven.aliyun.com/repository/google'}
26 | maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}
27 | google()
28 | jcenter()
29 | }
30 | }
31 |
32 |
33 | rootProject.buildDir = '../build'
34 | subprojects {
35 | project.buildDir = "${rootProject.buildDir}/${project.name}"
36 | project.evaluationDependsOn(':app')
37 | }
38 |
39 | task clean(type: Delete) {
40 | delete rootProject.buildDir
41 | }
42 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 | android.enableR8=true
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/android/hs_err_pid61052.log:
--------------------------------------------------------------------------------
1 | #
2 | # A fatal error has been detected by the Java Runtime Environment:
3 | #
4 | # EXCEPTION_SINGLE_STEP (0x80000004) at pc=0x0000000002fa25fe, pid=61052, tid=0x0000000000012444
5 | #
6 | # JRE version: OpenJDK Runtime Environment (8.0) (build 1.8.0-adoptopenjdk-_2018_05_19_00_59-b00)
7 | # Java VM: OpenJDK 64-Bit Server VM (25.71-b00 mixed mode windows-amd64 compressed oops)
8 | # Problematic frame:
9 | # v ~StubRoutines::jlong_disjoint_arraycopy
10 | #
11 | # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12 | #
13 | # If you would like to submit a bug report, please visit:
14 | # http://bugreport.java.com/bugreport/crash.jsp
15 | #
16 |
17 | --------------- T H R E A D ---------------
18 |
19 | Current thread (0x000000002e81d000): JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_in_Java, id=74820, stack(0x0000000057c20000,0x0000000057d20000)]
20 |
21 | siginfo: ExceptionCode=0x80000004
22 |
23 | Registers:
24 | RAX=0x0000000000a5c4a4, RBX=0x000000005ceaf040, RCX=0x000000005ceaf038, RDX=0xffffffffffff9a34
25 | RSP=0x0000000057d1e9f0, RBP=0x0000000057d1e9f0, RSI=0x000000005cdaf040, RDI=0x00000000b928ac30
26 | R8 =0x0000000000020000, R9 =0x000000005cdaf040, R10=0x0000000000000000, R11=0x00000000e0158690
27 | R12=0x0000000000000000, R13=0x0000000004197050, R14=0x00000000b918ac28, R15=0x000000002e81d000
28 | RIP=0x0000000002fa25fe, EFLAGS=0x0000000000000282
29 |
30 | Top of Stack: (sp=0x0000000057d1e9f0)
31 | 0x0000000057d1e9f0: 0000000000100010 0000000006a3941b
32 | 0x0000000057d1ea00: 0000000000000000 00007ffa2c836c07
33 | 0x0000000057d1ea10: 0000000000000000 0000000000000000
34 | 0x0000000057d1ea20: 0000000000000000 0429705000000000
35 | 0x0000000057d1ea30: 00000000a56e2138 00000000e0158690
36 | 0x0000000057d1ea40: 00000000fa3daec8 ffffffffffffffff
37 | 0x0000000057d1ea50: 00000000fa3daeb8 0429705000000000
38 | 0x0000000057d1ea60: 00000000e0158690 0000000000000000
39 | 0x0000000057d1ea70: 00000688d0d8aaf1 0000051e0000051e
40 | 0x0000000057d1ea80: 0000000000000009 00000001000bdca8
41 | 0x0000000057d1ea90: 0000000057d1ee58 0000000006e0c564
42 | 0x0000000057d1eaa0: 0000000000000009 00000000fa3daf28
43 | 0x0000000057d1eab0: 000000005cda0000 ffffffffffffffff
44 | 0x0000000057d1eac0: 00000000fa3daf08 0000000006480d55
45 | 0x0000000057d1ead0: 0000000057d1eba8 0000000057d1eaf0
46 | 0x0000000057d1eae0: 0000000000000000 0000000000000000
47 |
48 | Instructions: (pc=0x0000000002fa25fe)
49 | 0x0000000002fa25de: c3 90 48 8b 44 d7 e8 48 89 44 d1 e8 48 8b 44 d7
50 | 0x0000000002fa25ee: f0 48 89 44 d1 f0 48 8b 44 d7 f8 48 89 44 d1 f8
51 | 0x0000000002fa25fe: 48 8b 04 d7 48 89 04 d1 48 83 c2 04 7e d4 48 83
52 | 0x0000000002fa260e: ea 04 7c b3 49 8b f9 49 8b f2 48 33 c0 c9 c3 66
53 |
54 |
55 | Register to memory mapping:
56 |
57 | RAX=0x0000000000a5c4a4 is an unknown value
58 | RBX=0x000000005ceaf040 is an unknown value
59 | RCX=0x000000005ceaf038 is an unknown value
60 | RDX=0xffffffffffff9a34 is an unknown value
61 | RSP=0x0000000057d1e9f0 is pointing into the stack for thread: 0x000000002e81d000
62 | RBP=0x0000000057d1e9f0 is pointing into the stack for thread: 0x000000002e81d000
63 | RSI=0x000000005cdaf040 is an unknown value
64 | RDI=0x00000000b928ac30 is pointing into object: 0x00000000b918ac28
65 | [B
66 | - klass: {type array byte}
67 | - length: 69824592
68 | R8 =0x0000000000020000 is an unknown value
69 | R9 =0x000000005cdaf040 is an unknown value
70 | R10=0x0000000000000000 is an unknown value
71 | R11=0x00000000e0158690 is an oop
72 | java.nio.HeapByteBuffer
73 | - klass: 'java/nio/HeapByteBuffer'
74 | R12=0x0000000000000000 is an unknown value
75 | R13=0x0000000004197050 is at entry_point+2320 in (nmethod*)0x0000000004196510
76 | R14=0x00000000b918ac28 is an oop
77 | [B
78 | - klass: {type array byte}
79 | - length: 69824592
80 | R15=0x000000002e81d000 is a thread
81 |
82 |
83 | Stack: [0x0000000057c20000,0x0000000057d20000], sp=0x0000000057d1e9f0, free space=1018k
84 | Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
85 | C 0x0000000002fa25fe
86 |
87 |
88 | --------------- P R O C E S S ---------------
89 |
90 | Java Threads: ( => current thread )
91 | 0x000000002dc2a800 JavaThread "ForkJoinPool.commonPool-worker-9" daemon [_thread_blocked, id=74404, stack(0x0000000042d30000,0x0000000042e30000)]
92 | 0x000000002dc2c800 JavaThread "ForkJoinPool.commonPool-worker-0" daemon [_thread_blocked, id=31084, stack(0x0000000042c30000,0x0000000042d30000)]
93 | 0x000000002dc22800 JavaThread "ForkJoinPool.commonPool-worker-12" daemon [_thread_blocked, id=34936, stack(0x0000000042970000,0x0000000042a70000)]
94 | 0x000000002dc29000 JavaThread "ForkJoinPool.commonPool-worker-10" daemon [_thread_blocked, id=72396, stack(0x0000000042870000,0x0000000042970000)]
95 | 0x000000002dc26800 JavaThread "ForkJoinPool.commonPool-worker-1" daemon [_thread_blocked, id=76420, stack(0x0000000042770000,0x0000000042870000)]
96 | 0x000000002e81f000 JavaThread "ForkJoinPool.commonPool-worker-15" daemon [_thread_blocked, id=75336, stack(0x0000000042670000,0x0000000042770000)]
97 | 0x000000002e822000 JavaThread "WorkerExecutor Queue Thread 14" [_thread_blocked, id=73968, stack(0x0000000042570000,0x0000000042670000)]
98 | 0x000000002e825000 JavaThread "WorkerExecutor Queue Thread 13" [_thread_blocked, id=41668, stack(0x0000000040590000,0x0000000040690000)]
99 | 0x000000002e821800 JavaThread "RMI TCP Connection(30)-127.0.0.1" daemon [_thread_in_native, id=48044, stack(0x000000003fe70000,0x000000003ff70000)]
100 | 0x000000002e81c000 JavaThread "WorkerExecutor Queue Thread 12" [_thread_blocked, id=6880, stack(0x000000003d2c0000,0x000000003d3c0000)]
101 | 0x000000002e81a800 JavaThread "WorkerExecutor Queue Thread 11" [_thread_blocked, id=72708, stack(0x000000003af60000,0x000000003b060000)]
102 | 0x000000002e820800 JavaThread "RMI TCP Connection(29)-127.0.0.1" daemon [_thread_in_native, id=65000, stack(0x000000003a360000,0x000000003a460000)]
103 | 0x000000002e811800 JavaThread "RMI TCP Connection(28)-127.0.0.1" daemon [_thread_in_native, id=34156, stack(0x000000003a260000,0x000000003a360000)]
104 | 0x000000002e818800 JavaThread "WorkerExecutor Queue Thread 10" [_thread_blocked, id=75368, stack(0x0000000037a50000,0x0000000037b50000)]
105 | 0x000000002e816000 JavaThread "WorkerExecutor Queue Thread 9" [_thread_blocked, id=75192, stack(0x0000000036710000,0x0000000036810000)]
106 | 0x000000002e808800 JavaThread "WorkerExecutor Queue Thread 8" [_thread_blocked, id=67936, stack(0x0000000034620000,0x0000000034720000)]
107 | 0x000000002e808000 JavaThread "WorkerExecutor Queue Thread 7" [_thread_blocked, id=72052, stack(0x0000000033e00000,0x0000000033f00000)]
108 | 0x000000003b5e1800 JavaThread "WorkerExecutor Queue Thread 6" [_thread_blocked, id=50808, stack(0x0000000033d00000,0x0000000033e00000)]
109 | 0x000000003b5e1000 JavaThread "WorkerExecutor Queue Thread 5" [_thread_blocked, id=44232, stack(0x0000000033c00000,0x0000000033d00000)]
110 | 0x000000003b5e2800 JavaThread "WorkerExecutor Queue Thread 4" [_thread_blocked, id=14472, stack(0x0000000033b00000,0x0000000033c00000)]
111 | 0x000000003b5e0000 JavaThread "WorkerExecutor Queue Thread 3" [_thread_blocked, id=62104, stack(0x0000000033a00000,0x0000000033b00000)]
112 | 0x000000003b5d8800 JavaThread "WorkerExecutor Queue Thread 2" [_thread_blocked, id=39184, stack(0x0000000033400000,0x0000000033500000)]
113 | 0x000000003b5df800 JavaThread "WorkerExecutor Queue" [_thread_blocked, id=8516, stack(0x0000000033300000,0x0000000033400000)]
114 | 0x000000003b5d7000 JavaThread "Cache worker for execution history cache (S:\Projects\PhantomsXR\UnityProjects\ARMODs\Apps\Flutter\android\.gradle\6.7\executionHistory)" [_thread_blocked, id=35664, stack(0x0000000033200000,0x0000000033300000)]
115 | 0x000000003b5de000 JavaThread "Execution worker for ':' Thread 15" [_thread_blocked, id=46712, stack(0x0000000032f00000,0x0000000033000000)]
116 | 0x000000003b5dd000 JavaThread "Execution worker for ':' Thread 14" [_thread_blocked, id=52808, stack(0x0000000032e00000,0x0000000032f00000)]
117 | 0x000000003b5d7800 JavaThread "Execution worker for ':' Thread 13" [_thread_blocked, id=69416, stack(0x0000000032d00000,0x0000000032e00000)]
118 | 0x000000003b5d9000 JavaThread "Execution worker for ':' Thread 12" [_thread_blocked, id=60956, stack(0x0000000032c00000,0x0000000032d00000)]
119 | 0x000000003b5d6000 JavaThread "Execution worker for ':' Thread 11" [_thread_blocked, id=45384, stack(0x0000000032b00000,0x0000000032c00000)]
120 | 0x000000003b5d5800 JavaThread "Execution worker for ':' Thread 10" [_thread_blocked, id=67160, stack(0x0000000032a00000,0x0000000032b00000)]
121 | 0x000000003b5da000 JavaThread "Execution worker for ':' Thread 9" [_thread_blocked, id=68776, stack(0x0000000032900000,0x0000000032a00000)]
122 | 0x000000003b5db000 JavaThread "Execution worker for ':' Thread 8" [_thread_blocked, id=58792, stack(0x0000000032800000,0x0000000032900000)]
123 | 0x000000003b5db800 JavaThread "Execution worker for ':' Thread 7" [_thread_blocked, id=52368, stack(0x0000000032700000,0x0000000032800000)]
124 | 0x000000003b5ce000 JavaThread "Execution worker for ':' Thread 6" [_thread_blocked, id=58312, stack(0x0000000032600000,0x0000000032700000)]
125 | 0x000000003b5d3000 JavaThread "Execution worker for ':' Thread 5" [_thread_blocked, id=62712, stack(0x0000000032500000,0x0000000032600000)]
126 | 0x000000003b5ce800 JavaThread "Execution worker for ':' Thread 4" [_thread_blocked, id=67920, stack(0x0000000032400000,0x0000000032500000)]
127 | 0x000000003b5d2800 JavaThread "Execution worker for ':' Thread 3" [_thread_blocked, id=42284, stack(0x0000000032300000,0x0000000032400000)]
128 | 0x000000003b5cf800 JavaThread "Execution worker for ':' Thread 2" [_thread_blocked, id=59776, stack(0x0000000032000000,0x0000000032100000)]
129 | 0x000000003b5d1800 JavaThread "Execution worker for ':'" [_thread_blocked, id=74224, stack(0x000000002bde0000,0x000000002bee0000)]
130 | 0x000000003b5d1000 JavaThread "jar transforms Thread 784" [_thread_blocked, id=43204, stack(0x000000002bce0000,0x000000002bde0000)]
131 | 0x000000003b5c6800 JavaThread "jar transforms Thread 783" [_thread_blocked, id=43724, stack(0x000000002bbe0000,0x000000002bce0000)]
132 | 0x000000003b5cd000 JavaThread "jar transforms Thread 782" [_thread_blocked, id=62860, stack(0x000000002bae0000,0x000000002bbe0000)]
133 | 0x000000003b5cb800 JavaThread "jar transforms Thread 781" [_thread_blocked, id=71140, stack(0x000000002b9e0000,0x000000002bae0000)]
134 | 0x000000003b5cb000 JavaThread "jar transforms Thread 780" [_thread_blocked, id=57740, stack(0x000000002b8e0000,0x000000002b9e0000)]
135 | 0x000000003b5ca000 JavaThread "jar transforms Thread 779" [_thread_blocked, id=61664, stack(0x000000002b7e0000,0x000000002b8e0000)]
136 | 0x000000003b5c5800 JavaThread "jar transforms Thread 778" [_thread_blocked, id=54888, stack(0x000000002b6e0000,0x000000002b7e0000)]
137 | 0x000000003b5c9800 JavaThread "jar transforms Thread 777" [_thread_blocked, id=74444, stack(0x000000002b5e0000,0x000000002b6e0000)]
138 | 0x000000003b5cc800 JavaThread "jar transforms Thread 776" [_thread_blocked, id=68472, stack(0x000000002b4e0000,0x000000002b5e0000)]
139 | 0x000000003b5c5000 JavaThread "jar transforms Thread 775" [_thread_blocked, id=59984, stack(0x000000002b3e0000,0x000000002b4e0000)]
140 | 0x000000003b5c4000 JavaThread "jar transforms Thread 774" [_thread_blocked, id=73852, stack(0x000000002b2e0000,0x000000002b3e0000)]
141 | 0x000000003b5c8000 JavaThread "jar transforms Thread 773" [_thread_blocked, id=57788, stack(0x000000002b1e0000,0x000000002b2e0000)]
142 | 0x000000003b5c7000 JavaThread "jar transforms Thread 772" [_thread_blocked, id=69516, stack(0x000000002b0e0000,0x000000002b1e0000)]
143 | 0x000000002e4ff000 JavaThread "jar transforms Thread 771" [_thread_blocked, id=60520, stack(0x000000002afe0000,0x000000002b0e0000)]
144 | 0x000000002e504800 JavaThread "jar transforms Thread 770" [_thread_blocked, id=54368, stack(0x000000002aee0000,0x000000002afe0000)]
145 | 0x000000002e503800 JavaThread "jar transforms Thread 769" [_thread_blocked, id=1232, stack(0x000000002ade0000,0x000000002aee0000)]
146 | 0x000000002e502000 JavaThread "jar transforms Thread 768" [_thread_blocked, id=74576, stack(0x000000002ace0000,0x000000002ade0000)]
147 | 0x000000002e503000 JavaThread "jar transforms Thread 767" [_thread_blocked, id=65992, stack(0x000000002abe0000,0x000000002ace0000)]
148 | 0x000000002e501800 JavaThread "jar transforms Thread 766" [_thread_blocked, id=74704, stack(0x000000002aae0000,0x000000002abe0000)]
149 | 0x000000002e500800 JavaThread "jar transforms Thread 765" [_thread_blocked, id=59856, stack(0x000000002a9e0000,0x000000002aae0000)]
150 | 0x000000002e505000 JavaThread "jar transforms Thread 764" [_thread_blocked, id=76560, stack(0x000000002a8e0000,0x000000002a9e0000)]
151 | 0x000000002e4fe800 JavaThread "jar transforms Thread 763" [_thread_blocked, id=48988, stack(0x000000002a7e0000,0x000000002a8e0000)]
152 | 0x000000002e500000 JavaThread "jar transforms Thread 762" [_thread_blocked, id=75316, stack(0x000000002a6e0000,0x000000002a7e0000)]
153 | 0x000000002e4fd800 JavaThread "jar transforms Thread 761" [_thread_blocked, id=75584, stack(0x000000002a5e0000,0x000000002a6e0000)]
154 | 0x000000002e4fd000 JavaThread "jar transforms Thread 760" [_thread_blocked, id=74696, stack(0x000000002a4e0000,0x000000002a5e0000)]
155 | 0x000000002e4f5800 JavaThread "jar transforms Thread 759" [_thread_blocked, id=75704, stack(0x000000002a3e0000,0x000000002a4e0000)]
156 | 0x000000002e4fc000 JavaThread "jar transforms Thread 758" [_thread_blocked, id=40420, stack(0x000000002a2e0000,0x000000002a3e0000)]
157 | 0x000000002e4fb800 JavaThread "jar transforms Thread 757" [_thread_blocked, id=28560, stack(0x000000002a1e0000,0x000000002a2e0000)]
158 | 0x000000002e4f4000 JavaThread "jar transforms Thread 756" [_thread_blocked, id=72036, stack(0x000000002a0e0000,0x000000002a1e0000)]
159 | 0x000000002e4f4800 JavaThread "jar transforms Thread 755" [_thread_blocked, id=56280, stack(0x0000000029fe0000,0x000000002a0e0000)]
160 | 0x000000002e4fa800 JavaThread "jar transforms Thread 754" [_thread_blocked, id=33968, stack(0x0000000029ee0000,0x0000000029fe0000)]
161 | 0x000000002e4f9000 JavaThread "jar transforms Thread 753" [_thread_blocked, id=76140, stack(0x0000000029de0000,0x0000000029ee0000)]
162 | 0x000000002e4f6000 JavaThread "jar transforms Thread 752" [_thread_blocked, id=38364, stack(0x0000000029ce0000,0x0000000029de0000)]
163 | 0x000000002e4f7000 JavaThread "jar transforms Thread 751" [_thread_blocked, id=24704, stack(0x0000000029be0000,0x0000000029ce0000)]
164 | 0x000000002e4fa000 JavaThread "jar transforms Thread 750" [_thread_blocked, id=64000, stack(0x0000000029ae0000,0x0000000029be0000)]
165 | 0x000000002e4f3000 JavaThread "jar transforms Thread 749" [_thread_blocked, id=63752, stack(0x00000000299e0000,0x0000000029ae0000)]
166 | 0x000000002e4f1800 JavaThread "jar transforms Thread 748" [_thread_blocked, id=58172, stack(0x00000000298e0000,0x00000000299e0000)]
167 | 0x000000002e4f8800 JavaThread "jar transforms Thread 747" [_thread_blocked, id=70728, stack(0x00000000297e0000,0x00000000298e0000)]
168 | 0x000000002e4f2800 JavaThread "jar transforms Thread 746" [_thread_blocked, id=12964, stack(0x00000000296e0000,0x00000000297e0000)]
169 | 0x000000002e4f7800 JavaThread "jar transforms Thread 745" [_thread_blocked, id=70772, stack(0x00000000295e0000,0x00000000296e0000)]
170 | 0x000000002e4ea000 JavaThread "jar transforms Thread 744" [_thread_blocked, id=36916, stack(0x00000000294e0000,0x00000000295e0000)]
171 | 0x000000002e4f0000 JavaThread "jar transforms Thread 743" [_thread_blocked, id=24652, stack(0x00000000293e0000,0x00000000294e0000)]
172 | 0x000000002e4e8800 JavaThread "jar transforms Thread 742" [_thread_blocked, id=61848, stack(0x00000000292e0000,0x00000000293e0000)]
173 | 0x000000002e4ee800 JavaThread "jar transforms Thread 741" [_thread_blocked, id=42244, stack(0x00000000291e0000,0x00000000292e0000)]
174 | 0x000000002e4e7000 JavaThread "jar transforms Thread 740" [_thread_blocked, id=61692, stack(0x00000000290e0000,0x00000000291e0000)]
175 | 0x000000002e4ee000 JavaThread "jar transforms Thread 739" [_thread_blocked, id=63576, stack(0x0000000028fe0000,0x00000000290e0000)]
176 | 0x000000002e4eb000 JavaThread "jar transforms Thread 738" [_thread_blocked, id=12948, stack(0x0000000028ee0000,0x0000000028fe0000)]
177 | 0x000000002e4e6800 JavaThread "jar transforms Thread 737" [_thread_blocked, id=62572, stack(0x0000000028de0000,0x0000000028ee0000)]
178 | 0x000000002e4ec800 JavaThread "jar transforms Thread 736" [_thread_blocked, id=59508, stack(0x0000000028ce0000,0x0000000028de0000)]
179 | 0x000000002e4ed000 JavaThread "jar transforms Thread 735" [_thread_blocked, id=49804, stack(0x0000000028be0000,0x0000000028ce0000)]
180 | 0x000000002f2c6800 JavaThread "jar transforms Thread 734" [_thread_blocked, id=34704, stack(0x0000000028ae0000,0x0000000028be0000)]
181 | 0x000000002f2bf000 JavaThread "jar transforms Thread 733" [_thread_blocked, id=20496, stack(0x00000000289e0000,0x0000000028ae0000)]
182 | 0x000000002f2c4000 JavaThread "jar transforms Thread 732" [_thread_blocked, id=61216, stack(0x00000000288e0000,0x00000000289e0000)]
183 | 0x000000002f2c2000 JavaThread "jar transforms Thread 731" [_thread_blocked, id=67552, stack(0x00000000287e0000,0x00000000288e0000)]
184 | 0x000000002f2c5000 JavaThread "jar transforms Thread 730" [_thread_blocked, id=74604, stack(0x00000000286e0000,0x00000000287e0000)]
185 | 0x000000002f2c1000 JavaThread "jar transforms Thread 729" [_thread_blocked, id=58552, stack(0x00000000285e0000,0x00000000286e0000)]
186 | 0x000000002f2c0800 JavaThread "jar transforms Thread 728" [_thread_blocked, id=19740, stack(0x00000000284e0000,0x00000000285e0000)]
187 | 0x000000002f2c3800 JavaThread "jar transforms Thread 727" [_thread_blocked, id=37516, stack(0x00000000283e0000,0x00000000284e0000)]
188 | 0x000000002f2c5800 JavaThread "jar transforms Thread 726" [_thread_blocked, id=64468, stack(0x00000000282e0000,0x00000000283e0000)]
189 | 0x000000002f2bf800 JavaThread "jar transforms Thread 725" [_thread_blocked, id=73528, stack(0x00000000281e0000,0x00000000282e0000)]
190 | 0x000000002f2c2800 JavaThread "jar transforms Thread 724" [_thread_blocked, id=34864, stack(0x00000000280e0000,0x00000000281e0000)]
191 | 0x000000002f2b7800 JavaThread "jar transforms Thread 723" [_thread_blocked, id=37104, stack(0x0000000027fe0000,0x00000000280e0000)]
192 | 0x000000002f2be000 JavaThread "jar transforms Thread 722" [_thread_blocked, id=14832, stack(0x0000000027ee0000,0x0000000027fe0000)]
193 | 0x000000002f2bd800 JavaThread "jar transforms Thread 721" [_thread_blocked, id=59800, stack(0x0000000027de0000,0x0000000027ee0000)]
194 | 0x000000002f2bc800 JavaThread "jar transforms Thread 720" [_thread_blocked, id=73696, stack(0x0000000027ce0000,0x0000000027de0000)]
195 | 0x000000002f2b5000 JavaThread "jar transforms Thread 719" [_thread_blocked, id=67472, stack(0x0000000027ae0000,0x0000000027be0000)]
196 | 0x000000002f2b9000 JavaThread "jar transforms Thread 718" [_thread_blocked, id=63364, stack(0x00000000279e0000,0x0000000027ae0000)]
197 | 0x000000002f2b8000 JavaThread "jar transforms Thread 717" [_thread_blocked, id=43612, stack(0x00000000278e0000,0x00000000279e0000)]
198 | 0x000000002f2bc000 JavaThread "jar transforms Thread 716" [_thread_blocked, id=73200, stack(0x00000000277e0000,0x00000000278e0000)]
199 | 0x000000002f2bb000 JavaThread "jar transforms Thread 715" [_thread_blocked, id=51868, stack(0x00000000276e0000,0x00000000277e0000)]
200 | 0x000000002f2b6000 JavaThread "jar transforms Thread 714" [_thread_blocked, id=73648, stack(0x00000000275e0000,0x00000000276e0000)]
201 | 0x000000002f2ba800 JavaThread "jar transforms Thread 713" [_thread_blocked, id=74420, stack(0x00000000274e0000,0x00000000275e0000)]
202 | 0x000000002f2b6800 JavaThread "jar transforms Thread 712" [_thread_blocked, id=69932, stack(0x00000000273e0000,0x00000000274e0000)]
203 | 0x000000002f2b4800 JavaThread "jar transforms Thread 711" [_thread_blocked, id=63004, stack(0x00000000272e0000,0x00000000273e0000)]
204 | 0x000000002f2b3800 JavaThread "jar transforms Thread 710" [_thread_blocked, id=21496, stack(0x00000000271e0000,0x00000000272e0000)]
205 | 0x000000002f2b9800 JavaThread "jar transforms Thread 709" [_thread_blocked, id=51876, stack(0x00000000270e0000,0x00000000271e0000)]
206 | 0x000000002f2b3000 JavaThread "jar transforms Thread 708" [_thread_blocked, id=38056, stack(0x0000000026fe0000,0x00000000270e0000)]
207 | 0x000000002f2ad000 JavaThread "jar transforms Thread 707" [_thread_blocked, id=69640, stack(0x0000000026ee0000,0x0000000026fe0000)]
208 | 0x000000002f2b2000 JavaThread "jar transforms Thread 706" [_thread_blocked, id=63548, stack(0x0000000026de0000,0x0000000026ee0000)]
209 | 0x000000002f2ac000 JavaThread "jar transforms Thread 705" [_thread_blocked, id=72368, stack(0x0000000026ce0000,0x0000000026de0000)]
210 | 0x000000002f2b1800 JavaThread "jar transforms Thread 704" [_thread_blocked, id=41288, stack(0x0000000026be0000,0x0000000026ce0000)]
211 | 0x000000002f2b0800 JavaThread "jar transforms Thread 703" [_thread_blocked, id=54004, stack(0x0000000026ae0000,0x0000000026be0000)]
212 | 0x000000002f2a9000 JavaThread "jar transforms Thread 702" [_thread_blocked, id=40248, stack(0x00000000269e0000,0x0000000026ae0000)]
213 | 0x000000002f2af000 JavaThread "jar transforms Thread 701" [_thread_blocked, id=74072, stack(0x00000000268e0000,0x00000000269e0000)]
214 | 0x000000002f2b0000 JavaThread "jar transforms Thread 700" [_thread_blocked, id=5604, stack(0x00000000267e0000,0x00000000268e0000)]
215 | 0x000000002f2a7800 JavaThread "jar transforms Thread 699" [_thread_blocked, id=72484, stack(0x00000000266e0000,0x00000000267e0000)]
216 | 0x000000002f2aa800 JavaThread "jar transforms Thread 698" [_thread_blocked, id=37272, stack(0x00000000265e0000,0x00000000266e0000)]
217 | 0x000000002f2a8800 JavaThread "jar transforms Thread 697" [_thread_blocked, id=56124, stack(0x00000000264e0000,0x00000000265e0000)]
218 | 0x000000002f2ab800 JavaThread "jar transforms Thread 696" [_thread_blocked, id=75552, stack(0x00000000263e0000,0x00000000264e0000)]
219 | 0x0000000030d25800 JavaThread "jar transforms Thread 695" [_thread_blocked, id=75656, stack(0x00000000262e0000,0x00000000263e0000)]
220 | 0x0000000030d25000 JavaThread "jar transforms Thread 694" [_thread_blocked, id=58420, stack(0x00000000261e0000,0x00000000262e0000)]
221 | 0x0000000030d24000 JavaThread "jar transforms Thread 693" [_thread_blocked, id=4968, stack(0x00000000260e0000,0x00000000261e0000)]
222 | 0x0000000030d1c800 JavaThread "jar transforms Thread 692" [_thread_blocked, id=67424, stack(0x0000000025fe0000,0x00000000260e0000)]
223 | 0x0000000030d23800 JavaThread "jar transforms Thread 691" [_thread_blocked, id=59312, stack(0x0000000025ee0000,0x0000000025fe0000)]
224 | 0x0000000030d22000 JavaThread "jar transforms Thread 690" [_thread_blocked, id=35284, stack(0x0000000025de0000,0x0000000025ee0000)]
225 | 0x0000000030d21000 JavaThread "jar transforms Thread 689" [_thread_blocked, id=47476, stack(0x0000000025ce0000,0x0000000025de0000)]
226 | 0x0000000030d22800 JavaThread "jar transforms Thread 688" [_thread_blocked, id=62416, stack(0x0000000025be0000,0x0000000025ce0000)]
227 | 0x0000000030d1c000 JavaThread "jar transforms Thread 687" [_thread_blocked, id=64760, stack(0x0000000025ae0000,0x0000000025be0000)]
228 | 0x0000000030d20800 JavaThread "jar transforms Thread 686" [_thread_blocked, id=66208, stack(0x00000000259e0000,0x0000000025ae0000)]
229 | 0x0000000030d1f000 JavaThread "jar transforms Thread 685" [_thread_blocked, id=74588, stack(0x00000000258e0000,0x00000000259e0000)]
230 | 0x0000000030d1d800 JavaThread "jar transforms Thread 684" [_thread_blocked, id=76136, stack(0x00000000257e0000,0x00000000258e0000)]
231 | 0x0000000030d1e000 JavaThread "jar transforms Thread 683" [_thread_blocked, id=47836, stack(0x00000000256e0000,0x00000000257e0000)]
232 | 0x0000000030d1f800 JavaThread "jar transforms Thread 682" [_thread_blocked, id=67380, stack(0x00000000255e0000,0x00000000256e0000)]
233 | 0x0000000030d1b000 JavaThread "jar transforms Thread 681" [_thread_blocked, id=59892, stack(0x00000000254e0000,0x00000000255e0000)]
234 | 0x0000000030d13800 JavaThread "jar transforms Thread 680" [_thread_blocked, id=72168, stack(0x00000000253e0000,0x00000000254e0000)]
235 | 0x0000000030d1a800 JavaThread "jar transforms Thread 679" [_thread_blocked, id=58868, stack(0x00000000252e0000,0x00000000253e0000)]
236 | 0x0000000030d13000 JavaThread "jar transforms Thread 678" [_thread_blocked, id=68264, stack(0x00000000251e0000,0x00000000252e0000)]
237 | 0x0000000030d19800 JavaThread "jar transforms Thread 677" [_thread_blocked, id=53572, stack(0x00000000250e0000,0x00000000251e0000)]
238 | 0x0000000030d12000 JavaThread "jar transforms Thread 676" [_thread_blocked, id=57332, stack(0x0000000024fe0000,0x00000000250e0000)]
239 | 0x0000000030d11800 JavaThread "jar transforms Thread 675" [_thread_blocked, id=42860, stack(0x0000000024ee0000,0x0000000024fe0000)]
240 | 0x0000000030d16800 JavaThread "jar transforms Thread 674" [_thread_blocked, id=42268, stack(0x0000000024de0000,0x0000000024ee0000)]
241 | 0x0000000030d18000 JavaThread "jar transforms Thread 673" [_thread_blocked, id=16804, stack(0x0000000024ce0000,0x0000000024de0000)]
242 | 0x0000000030d17800 JavaThread "Build operations Thread 16" [_thread_blocked, id=74236, stack(0x0000000024be0000,0x0000000024ce0000)]
243 | 0x0000000030d0f000 JavaThread "Build operations Thread 15" [_thread_blocked, id=69256, stack(0x0000000024ae0000,0x0000000024be0000)]
244 | 0x0000000030d16000 JavaThread "Build operations Thread 14" [_thread_blocked, id=26008, stack(0x00000000249e0000,0x0000000024ae0000)]
245 | 0x0000000030d10800 JavaThread "Build operations Thread 13" [_thread_blocked, id=46616, stack(0x00000000248e0000,0x00000000249e0000)]
246 | 0x0000000030d15000 JavaThread "Build operations Thread 12" [_thread_blocked, id=68440, stack(0x00000000247e0000,0x00000000248e0000)]
247 | 0x0000000030d14800 JavaThread "Build operations Thread 11" [_thread_blocked, id=47816, stack(0x00000000246e0000,0x00000000247e0000)]
248 | 0x0000000030d10000 JavaThread "Build operations Thread 10" [_thread_blocked, id=76116, stack(0x00000000245e0000,0x00000000246e0000)]
249 | 0x0000000030d07800 JavaThread "Build operations Thread 9" [_thread_blocked, id=67856, stack(0x00000000244e0000,0x00000000245e0000)]
250 | 0x0000000030d0d000 JavaThread "Build operations Thread 8" [_thread_blocked, id=38380, stack(0x00000000243e0000,0x00000000244e0000)]
251 | 0x0000000030d0e800 JavaThread "Build operations Thread 7" [_thread_blocked, id=70536, stack(0x00000000242e0000,0x00000000243e0000)]
252 | 0x0000000030d07000 JavaThread "Build operations Thread 6" [_thread_blocked, id=74316, stack(0x00000000241e0000,0x00000000242e0000)]
253 | 0x0000000030d0c000 JavaThread "Build operations Thread 5" [_thread_blocked, id=23764, stack(0x00000000240e0000,0x00000000241e0000)]
254 | 0x0000000030d0a000 JavaThread "Build operations Thread 4" [_thread_blocked, id=62944, stack(0x0000000023de0000,0x0000000023ee0000)]
255 | 0x0000000030d0b800 JavaThread "Build operations Thread 3" [_thread_blocked, id=5072, stack(0x00000000235e0000,0x00000000236e0000)]
256 | 0x0000000030d0a800 JavaThread "Build operations Thread 2" [_thread_blocked, id=69908, stack(0x0000000022de0000,0x0000000022ee0000)]
257 | 0x0000000030d09000 JavaThread "Build operations" [_thread_blocked, id=67084, stack(0x0000000022ce0000,0x0000000022de0000)]
258 | 0x0000000030d08800 JavaThread "Cache worker for Build Output Cleanup Cache (S:\Projects\PhantomsXR\UnityProjects\ARMODs\Apps\Flutter\android\.gradle\buildOutputCleanup)" [_thread_blocked, id=65540, stack(0x0000000021740000,0x0000000021840000)]
259 | 0x0000000030d0d800 JavaThread "Cache worker for cache directory md-rule (C:\Users\Administrator\.gradle\caches\6.7\md-rule)" [_thread_blocked, id=44188, stack(0x0000000021640000,0x0000000021740000)]
260 | 0x000000001dc90000 JavaThread "Cache worker for cache directory md-supplier (C:\Users\Administrator\.gradle\caches\6.7\md-supplier)" [_thread_blocked, id=47776, stack(0x000000001eea0000,0x000000001efa0000)]
261 | 0x000000001dc8d800 JavaThread "Cache worker for checksums cache (S:\Projects\PhantomsXR\UnityProjects\ARMODs\Apps\Flutter\android\.gradle\checksums)" [_thread_blocked, id=47184, stack(0x000000001eda0000,0x000000001eea0000)]
262 | 0x000000001dc8d000 JavaThread "Cache worker for file hash cache (S:\Projects\PhantomsXR\UnityProjects\ARMODs\Apps\Flutter\android\.gradle\6.7\fileHashes)" [_thread_blocked, id=24068, stack(0x000000001eca0000,0x000000001eda0000)]
263 | 0x000000001dc83000 JavaThread "Thread-1301" [_thread_blocked, id=74260, stack(0x000000001eba0000,0x000000001eca0000)]
264 | 0x000000001dc8a000 JavaThread "Stdin handler" [_thread_blocked, id=43988, stack(0x000000001e9a0000,0x000000001eaa0000)]
265 | 0x000000001dc82800 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:61043 to /127.0.0.1:55649" [_thread_blocked, id=60040, stack(0x000000001e8a0000,0x000000001e9a0000)]
266 | 0x000000001dc87000 JavaThread "Cancel handler" [_thread_blocked, id=52760, stack(0x000000001e2f0000,0x000000001e3f0000)]
267 | 0x000000001dc84000 JavaThread "Handler for socket connection from /127.0.0.1:61043 to /127.0.0.1:55649" [_thread_in_native, id=27808, stack(0x000000001e1f0000,0x000000001e2f0000)]
268 | 0x000000001dc89000 JavaThread "ForkJoinPool.commonPool-worker-8" daemon [_thread_blocked, id=76216, stack(0x00000000465c0000,0x00000000466c0000)]
269 | 0x000000001dc88800 JavaThread "ForkJoinPool.commonPool-worker-6" daemon [_thread_blocked, id=76096, stack(0x0000000045810000,0x0000000045910000)]
270 | 0x000000001dc87800 JavaThread "ForkJoinPool.commonPool-worker-13" daemon [_thread_blocked, id=41684, stack(0x0000000045400000,0x0000000045500000)]
271 | 0x000000001dc85800 JavaThread "ForkJoinPool.commonPool-worker-4" daemon [_thread_blocked, id=68388, stack(0x0000000045300000,0x0000000045400000)]
272 | 0x000000002e823000 JavaThread "ForkJoinPool.commonPool-worker-7" daemon [_thread_blocked, id=69624, stack(0x0000000040380000,0x0000000040480000)]
273 | 0x000000002dc30800 JavaThread "ForkJoinPool.commonPool-worker-2" daemon [_thread_in_native, id=47364, stack(0x0000000045200000,0x0000000045300000)]
274 | 0x000000002dc21000 JavaThread "RMI TCP Connection(31)-127.0.0.1" daemon [_thread_in_native, id=67072, stack(0x000000003f900000,0x000000003fa00000)]
275 | 0x000000002e814800 JavaThread "Exec process Thread 15" [_thread_blocked, id=69484, stack(0x0000000033700000,0x0000000033800000)]
276 | 0x000000002e814000 JavaThread "Exec process Thread 14" [_thread_blocked, id=43604, stack(0x0000000033600000,0x0000000033700000)]
277 | 0x000000002e813000 JavaThread "Exec process Thread 13" [_thread_blocked, id=364, stack(0x0000000033500000,0x0000000033600000)]
278 | 0x000000002e4e9800 JavaThread "Daemon worker Thread 6" [_thread_blocked, id=41764, stack(0x000000001eaa0000,0x000000001eba0000)]
279 | 0x000000002e4eb800 JavaThread "Daemon Thread 6" [_thread_blocked, id=7012, stack(0x0000000000d10000,0x0000000000e10000)]
280 | 0x000000002dc29800 JavaThread "ForkJoinPool.commonPool-worker-14" daemon [_thread_blocked, id=74872, stack(0x0000000034c40000,0x0000000034d40000)]
281 | 0x000000001d442800 JavaThread "ForkJoinPool.commonPool-worker-5" daemon [_thread_blocked, id=70132, stack(0x0000000047900000,0x0000000047a00000)]
282 | =>0x000000002e81d000 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_in_Java, id=74820, stack(0x0000000057c20000,0x0000000057d20000)]
283 | 0x000000002e80b000 JavaThread "RMI Reaper" [_thread_blocked, id=63612, stack(0x0000000034b40000,0x0000000034c40000)]
284 | 0x000000002e80a000 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=61764, stack(0x0000000034820000,0x0000000034920000)]
285 | 0x000000002e80e800 JavaThread "GC Daemon" daemon [_thread_blocked, id=40608, stack(0x0000000034720000,0x0000000034820000)]
286 | 0x000000002e806800 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=75772, stack(0x0000000034300000,0x0000000034400000)]
287 | 0x000000001dc84800 JavaThread "Memory manager" [_thread_blocked, id=4372, stack(0x000000002c6e0000,0x000000002c7e0000)]
288 | 0x000000001d444000 JavaThread "Cache worker for file content cache (C:\Users\Administrator\.gradle\caches\6.7\fileContent)" [_thread_blocked, id=69644, stack(0x00000000236e0000,0x00000000237e0000)]
289 | 0x000000001d43c800 JavaThread "Cache worker for execution history cache (C:\Users\Administrator\.gradle\caches\6.7\executionHistory)" [_thread_blocked, id=40900, stack(0x0000000022ee0000,0x0000000022fe0000)]
290 | 0x000000001d43e800 JavaThread "Cache worker for journal cache (C:\Users\Administrator\.gradle\caches\journal-1)" [_thread_blocked, id=58880, stack(0x000000001f3a0000,0x000000001f4a0000)]
291 | 0x0000000018d0c800 JavaThread "File lock request listener" [_thread_in_native, id=72516, stack(0x000000001f2a0000,0x000000001f3a0000)]
292 | 0x000000001d3e4000 JavaThread "Cache worker for file hash cache (C:\Users\Administrator\.gradle\caches\6.7\fileHashes)" [_thread_blocked, id=65948, stack(0x000000001f1a0000,0x000000001f2a0000)]
293 | 0x000000001d1cf800 JavaThread "Daemon periodic checks" [_thread_blocked, id=50104, stack(0x000000001e5a0000,0x000000001e6a0000)]
294 | 0x000000001d1ba000 JavaThread "Incoming local TCP Connector on port 61043" [_thread_in_native, id=65332, stack(0x000000001e3f0000,0x000000001e4f0000)]
295 | 0x000000001d0d2800 JavaThread "Daemon health stats" [_thread_blocked, id=58348, stack(0x000000001e0f0000,0x000000001e1f0000)]
296 | 0x0000000018dec000 JavaThread "Service Thread" daemon [_thread_blocked, id=72888, stack(0x000000001b550000,0x000000001b650000)]
297 | 0x0000000018d08800 JavaThread "C1 CompilerThread11" daemon [_thread_blocked, id=74376, stack(0x000000001b450000,0x000000001b550000)]
298 | 0x0000000018d0b800 JavaThread "C1 CompilerThread10" daemon [_thread_blocked, id=74244, stack(0x000000001b350000,0x000000001b450000)]
299 | 0x0000000018d0d000 JavaThread "C1 CompilerThread9" daemon [_thread_blocked, id=48748, stack(0x000000001b250000,0x000000001b350000)]
300 | 0x0000000018d0b000 JavaThread "C1 CompilerThread8" daemon [_thread_blocked, id=70500, stack(0x000000001b050000,0x000000001b150000)]
301 | 0x0000000018d0f800 JavaThread "C2 CompilerThread7" daemon [_thread_in_native, id=73144, stack(0x000000001af50000,0x000000001b050000)]
302 | 0x0000000018d0e800 JavaThread "C2 CompilerThread6" daemon [_thread_in_native, id=44804, stack(0x000000001ae50000,0x000000001af50000)]
303 | 0x0000000018d0e000 JavaThread "C2 CompilerThread5" daemon [_thread_in_native, id=56488, stack(0x000000001ad50000,0x000000001ae50000)]
304 | 0x0000000018d09800 JavaThread "C2 CompilerThread4" daemon [_thread_in_native, id=43492, stack(0x000000001ac50000,0x000000001ad50000)]
305 | 0x0000000018d0a000 JavaThread "C2 CompilerThread3" daemon [_thread_in_native, id=73092, stack(0x000000001ab50000,0x000000001ac50000)]
306 | 0x0000000018d06000 JavaThread "C2 CompilerThread2" daemon [_thread_in_native, id=61840, stack(0x000000001aa50000,0x000000001ab50000)]
307 | 0x0000000018d01000 JavaThread "C2 CompilerThread1" daemon [_thread_in_vm, id=75440, stack(0x000000001a950000,0x000000001aa50000)]
308 | 0x0000000018cfe800 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=44688, stack(0x000000001a850000,0x000000001a950000)]
309 | 0x0000000018ca9800 JavaThread "Attach Listener" daemon [_thread_blocked, id=64904, stack(0x000000001a750000,0x000000001a850000)]
310 | 0x0000000018ca6800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=72824, stack(0x000000001a650000,0x000000001a750000)]
311 | 0x0000000018c86800 JavaThread "Finalizer" daemon [_thread_blocked, id=70024, stack(0x000000001a4e0000,0x000000001a5e0000)]
312 | 0x0000000017209800 JavaThread "Reference Handler" daemon [_thread_blocked, id=68784, stack(0x000000001a3e0000,0x000000001a4e0000)]
313 | 0x0000000002e52800 JavaThread "main" [_thread_blocked, id=67960, stack(0x0000000002d50000,0x0000000002e50000)]
314 |
315 | Other Threads:
316 | 0x0000000018c64000 VMThread [stack: 0x000000001a2e0000,0x000000001a3e0000] [id=60700]
317 | 0x0000000018df1800 WatcherThread [stack: 0x000000001b650000,0x000000001b750000] [id=72212]
318 |
319 | VM state:not at safepoint (normal execution)
320 |
321 | VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
322 | [0x0000000002e50bd0] CompiledIC_lock - owner thread: 0x0000000018d01000
323 |
324 | Heap:
325 | PSYoungGen total 258560K, used 85391K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
326 | eden space 175104K, 1% used [0x00000000e0000000,0x00000000e01e55e0,0x00000000eab00000)
327 | from space 83456K, 99% used [0x00000000fa380000,0x00000000ff4fe980,0x00000000ff500000)
328 | to space 174592K, 0% used [0x00000000eab00000,0x00000000eab00000,0x00000000f5580000)
329 | ParOldGen total 1048576K, used 640299K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
330 | object space 1048576K, 61% used [0x00000000a0000000,0x00000000c714acd0,0x00000000e0000000)
331 | Metaspace used 168249K, capacity 181307K, committed 181440K, reserved 1208320K
332 | class space used 21243K, capacity 23516K, committed 23528K, reserved 1048576K
333 |
334 | Card table byte_map: [0x0000000012310000,0x0000000012620000] byte_map_base: 0x0000000011e10000
335 |
336 | Marking Bits: (ParMarkBitMap*) 0x000000005bd5be50
337 | Begin Bits: [0x0000000013520000, 0x0000000014d20000)
338 | End Bits: [0x0000000014d20000, 0x0000000016520000)
339 |
340 | Polling page: 0x00000000010a0000
341 |
342 | CodeCache: size=245760Kb used=126387Kb max_used=127231Kb free=119372Kb
343 | bounds [0x0000000002f50000, 0x000000000ac60000, 0x0000000011f50000]
344 | total_blobs=35690 nmethods=34693 adapters=901
345 | compilation: enabled
346 |
347 | Compilation events (10 events):
348 | Event: 1051.121 Thread 0x0000000018d0b800 45737 3 com.android.build.gradle.tasks.PackageAndroidArtifact$SplitterParams_Decorated::$gradleFactory (13 bytes)
349 | Event: 1051.121 Thread 0x0000000018d08800 nmethod 45735 0x000000000971dc10 code [0x000000000971dd60, 0x000000000971de70]
350 | Event: 1051.121 Thread 0x0000000018d0d000 nmethod 45736 0x000000000972cb90 code [0x000000000972cce0, 0x000000000972cdf0]
351 | Event: 1051.122 Thread 0x0000000018d0b800 nmethod 45737 0x0000000009cfbcd0 code [0x0000000009cfbe60, 0x0000000009cfc368]
352 | Event: 1051.129 Thread 0x0000000018d01000 nmethod 45678 0x0000000009ced690 code [0x0000000009cedb40, 0x0000000009cf0ad8]
353 | Event: 1051.129 Thread 0x0000000018d01000 45713 4 com.android.tools.r8.ir.conversion.o:: (236 bytes)
354 | Event: 1051.145 Thread 0x0000000018d01000 nmethod 45713 0x0000000009cf9b10 code [0x0000000009cf9d60, 0x0000000009cfac50]
355 | Event: 1051.145 Thread 0x0000000018d01000 45708 ! 4 com.android.tools.r8.utils.J::a (116 bytes)
356 | Event: 1051.222 Thread 0x0000000018d01000 nmethod 45708 0x0000000009c7a2d0 code [0x0000000009c7a500, 0x0000000009c7b8c0]
357 | Event: 1051.226 Thread 0x0000000018d01000 45727 4 com.android.tools.r8.graph.d0::a (52 bytes)
358 |
359 | GC Heap History (10 events):
360 | Event: 995.943 GC heap before
361 | {Heap before GC invocations=101 (full 8):
362 | PSYoungGen total 410624K, used 290148K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
363 | eden space 306176K, 92% used [0x00000000e0000000,0x00000000f15ec8e8,0x00000000f2b00000)
364 | from space 104448K, 5% used [0x00000000f8c80000,0x00000000f91ec8d0,0x00000000ff280000)
365 | to space 99840K, 0% used [0x00000000f2b00000,0x00000000f2b00000,0x00000000f8c80000)
366 | ParOldGen total 1048576K, used 975926K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
367 | object space 1048576K, 93% used [0x00000000a0000000,0x00000000db90dbc8,0x00000000e0000000)
368 | Metaspace used 168068K, capacity 181073K, committed 181184K, reserved 1206272K
369 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
370 | Event: 996.092 GC heap after
371 | Heap after GC invocations=101 (full 8):
372 | PSYoungGen total 410624K, used 0K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
373 | eden space 306176K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f2b00000)
374 | from space 104448K, 0% used [0x00000000f8c80000,0x00000000f8c80000,0x00000000ff280000)
375 | to space 99840K, 0% used [0x00000000f2b00000,0x00000000f2b00000,0x00000000f8c80000)
376 | ParOldGen total 1048576K, used 315479K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
377 | object space 1048576K, 30% used [0x00000000a0000000,0x00000000b3415c90,0x00000000e0000000)
378 | Metaspace used 168068K, capacity 181073K, committed 181184K, reserved 1206272K
379 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
380 | }
381 | Event: 996.402 GC heap before
382 | {Heap before GC invocations=102 (full 8):
383 | PSYoungGen total 410624K, used 306176K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
384 | eden space 306176K, 100% used [0x00000000e0000000,0x00000000f2b00000,0x00000000f2b00000)
385 | from space 104448K, 0% used [0x00000000f8c80000,0x00000000f8c80000,0x00000000ff280000)
386 | to space 99840K, 0% used [0x00000000f2b00000,0x00000000f2b00000,0x00000000f8c80000)
387 | ParOldGen total 1048576K, used 354108K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
388 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59cf088,0x00000000e0000000)
389 | Metaspace used 168072K, capacity 181073K, committed 181184K, reserved 1206272K
390 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
391 | Event: 996.407 GC heap after
392 | Heap after GC invocations=102 (full 8):
393 | PSYoungGen total 406016K, used 12733K [0x00000000e0000000, 0x00000000fef80000, 0x0000000100000000)
394 | eden space 306176K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f2b00000)
395 | from space 99840K, 12% used [0x00000000f2b00000,0x00000000f376f7b8,0x00000000f8c80000)
396 | to space 93696K, 0% used [0x00000000f9400000,0x00000000f9400000,0x00000000fef80000)
397 | ParOldGen total 1048576K, used 354116K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
398 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59d1088,0x00000000e0000000)
399 | Metaspace used 168072K, capacity 181073K, committed 181184K, reserved 1206272K
400 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
401 | }
402 | Event: 1048.161 GC heap before
403 | {Heap before GC invocations=103 (full 8):
404 | PSYoungGen total 406016K, used 311487K [0x00000000e0000000, 0x00000000fef80000, 0x0000000100000000)
405 | eden space 306176K, 97% used [0x00000000e0000000,0x00000000f23c0758,0x00000000f2b00000)
406 | from space 99840K, 12% used [0x00000000f2b00000,0x00000000f376f7b8,0x00000000f8c80000)
407 | to space 93696K, 0% used [0x00000000f9400000,0x00000000f9400000,0x00000000fef80000)
408 | ParOldGen total 1048576K, used 354116K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
409 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59d1088,0x00000000e0000000)
410 | Metaspace used 168108K, capacity 181137K, committed 181184K, reserved 1206272K
411 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
412 | Event: 1048.168 GC heap after
413 | Heap after GC invocations=103 (full 8):
414 | PSYoungGen total 417792K, used 18323K [0x00000000e0000000, 0x00000000fed00000, 0x0000000100000000)
415 | eden space 326656K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f3f00000)
416 | from space 91136K, 20% used [0x00000000f9400000,0x00000000fa5e4e60,0x00000000fed00000)
417 | to space 87040K, 0% used [0x00000000f3f00000,0x00000000f3f00000,0x00000000f9400000)
418 | ParOldGen total 1048576K, used 354124K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
419 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59d3088,0x00000000e0000000)
420 | Metaspace used 168108K, capacity 181137K, committed 181184K, reserved 1206272K
421 | class space used 21239K, capacity 23511K, committed 23528K, reserved 1048576K
422 | }
423 | Event: 1048.732 GC heap before
424 | {Heap before GC invocations=104 (full 8):
425 | PSYoungGen total 417792K, used 344977K [0x00000000e0000000, 0x00000000fed00000, 0x0000000100000000)
426 | eden space 326656K, 99% used [0x00000000e0000000,0x00000000f3eff8c0,0x00000000f3f00000)
427 | from space 91136K, 20% used [0x00000000f9400000,0x00000000fa5e4e60,0x00000000fed00000)
428 | to space 87040K, 0% used [0x00000000f3f00000,0x00000000f3f00000,0x00000000f9400000)
429 | ParOldGen total 1048576K, used 354124K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
430 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59d3088,0x00000000e0000000)
431 | Metaspace used 168156K, capacity 181143K, committed 181184K, reserved 1206272K
432 | class space used 21240K, capacity 23512K, committed 23528K, reserved 1048576K
433 | Event: 1048.739 GC heap after
434 | Heap after GC invocations=104 (full 8):
435 | PSYoungGen total 413696K, used 29192K [0x00000000e0000000, 0x00000000ff500000, 0x0000000100000000)
436 | eden space 326656K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f3f00000)
437 | from space 87040K, 33% used [0x00000000f3f00000,0x00000000f5b82130,0x00000000f9400000)
438 | to space 83456K, 0% used [0x00000000fa380000,0x00000000fa380000,0x00000000ff500000)
439 | ParOldGen total 1048576K, used 354132K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
440 | object space 1048576K, 33% used [0x00000000a0000000,0x00000000b59d5088,0x00000000e0000000)
441 | Metaspace used 168156K, capacity 181143K, committed 181184K, reserved 1206272K
442 | class space used 21240K, capacity 23512K, committed 23528K, reserved 1048576K
443 | }
444 | Event: 1051.187 GC heap before
445 | {Heap before GC invocations=105 (full 8):
446 | PSYoungGen total 413696K, used 333347K [0x00000000e0000000, 0x00000000ff500000, 0x0000000100000000)
447 | eden space 326656K, 93% used [0x00000000e0000000,0x00000000f2906e08,0x00000000f3f00000)
448 | from space 87040K, 33% used [0x00000000f3f00000,0x00000000f5b82130,0x00000000f9400000)
449 | to space 83456K, 0% used [0x00000000fa380000,0x00000000fa380000,0x00000000ff500000)
450 | ParOldGen total 1048576K, used 411179K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
451 | object space 1048576K, 39% used [0x00000000a0000000,0x00000000b918ac28,0x00000000e0000000)
452 | Metaspace used 168249K, capacity 181307K, committed 181440K, reserved 1208320K
453 | class space used 21243K, capacity 23516K, committed 23528K, reserved 1048576K
454 | Event: 1051.214 GC heap after
455 | Heap after GC invocations=105 (full 8):
456 | PSYoungGen total 258560K, used 83450K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
457 | eden space 175104K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000eab00000)
458 | from space 83456K, 99% used [0x00000000fa380000,0x00000000ff4fe980,0x00000000ff500000)
459 | to space 174592K, 0% used [0x00000000eab00000,0x00000000eab00000,0x00000000f5580000)
460 | ParOldGen total 1048576K, used 640299K [0x00000000a0000000, 0x00000000e0000000, 0x00000000e0000000)
461 | object space 1048576K, 61% used [0x00000000a0000000,0x00000000c714acd0,0x00000000e0000000)
462 | Metaspace used 168249K, capacity 181307K, committed 181440K, reserved 1208320K
463 | class space used 21243K, capacity 23516K, committed 23528K, reserved 1048576K
464 | }
465 |
466 | Deoptimization events (10 events):
467 | Event: 995.275 Thread 0x000000002e4f6000 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000005e82aec method=java.util.LinkedList.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 55
468 | Event: 995.275 Thread 0x000000002e4f6000 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000005e82aec method=java.util.LinkedList.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 55
469 | Event: 995.275 Thread 0x000000002e4f6000 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000005e82aec method=java.util.LinkedList.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 55
470 | Event: 995.278 Thread 0x000000002e4f6000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000009526184 method=java.io.ExpiringCache$1.removeEldestEntry(Ljava/util/Map$Entry;)Z @ 11
471 | Event: 995.279 Thread 0x000000002e4f6000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000009592678 method=java.io.ExpiringCache$1.removeEldestEntry(Ljava/util/Map$Entry;)Z @ 11
472 | Event: 996.918 Thread 0x000000002e4e9800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000009af015c method=java.io.ObjectOutputStream$BlockDataOutputStream.writeInt(I)V @ 9
473 | Event: 1048.623 Thread 0x000000002e4e9800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000042a9c6c method=java.lang.Class.isEnum()Z @ 1
474 | Event: 1048.868 Thread 0x0000000030d09000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000004b98b94 method=com.google.common.collect.MapMakerInternalMap$Segment.put(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object; @ 92
475 | Event: 1049.391 Thread 0x000000003b5ce000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000099ae2d4 method=org.gradle.internal.execution.history.changes.CachingChangeContainer.accept(Lorg/gradle/internal/execution/history/changes/ChangeVisitor;)Z @ 108
476 | Event: 1051.102 Thread 0x000000003b5d7800 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000051946b4 method=org.gradle.internal.snapshot.SnapshotUtil.handleChildren(Ljava/util/List;Lorg/gradle/internal/snapshot/VfsRelativePath;Lorg/gradle/internal/snapshot/CaseSensitivity;Lorg/g
477 |
478 | Classes redefined (0 events):
479 | No events
480 |
481 | Internal exceptions (10 events):
482 | Event: 1050.975 Thread 0x000000003b5d6000 Exception (0x00000000e74b04f8) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
483 | Event: 1050.975 Thread 0x000000003b5d6000 Exception (0x00000000e74b1638) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
484 | Event: 1050.989 Thread 0x000000003b5d6000 Exception (0x00000000e788f858) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
485 | Event: 1050.989 Thread 0x000000003b5d6000 Exception (0x00000000e7890948) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
486 | Event: 1050.993 Thread 0x000000003b5d5800 Exception (0x00000000e78ea418) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
487 | Event: 1050.993 Thread 0x000000003b5d5800 Exception (0x00000000e78eb548) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
488 | Event: 1051.006 Thread 0x000000003b5d7800 Exception (0x00000000e7c2f6d8) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
489 | Event: 1051.067 Thread 0x000000003b5d7800 Exception (0x00000000e9a4b638) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
490 | Event: 1051.126 Thread 0x000000003b5e1800 Exception (0x00000000e9bd97f8) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
491 | Event: 1051.126 Thread 0x000000003b5e1800 Exception (0x00000000e9bda0d8) thrown at [C:\Users\jenkins\workspace\openjdk8_build_x86-64_windows\openjdk\hotspot\src\share\vm\prims\jni.cpp, line 709]
492 |
493 | Events (10 events):
494 | Event: 1051.217 Executing VM operation: RevokeBias done
495 | Event: 1051.218 Executing VM operation: RevokeBias
496 | Event: 1051.218 Executing VM operation: RevokeBias done
497 | Event: 1051.219 Executing VM operation: RevokeBias
498 | Event: 1051.220 Executing VM operation: RevokeBias done
499 | Event: 1051.221 Executing VM operation: RevokeBias
500 | Event: 1051.222 Executing VM operation: RevokeBias done
501 | Event: 1051.223 Thread 0x000000002e81e800 Thread exited: 0x000000002e81e800
502 | Event: 1051.223 Thread 0x000000002e817000 Thread exited: 0x000000002e817000
503 | Event: 1051.225 Thread 0x0000000018d01000 flushing nmethod 0x000000000367e6d0
504 |
505 |
506 | Dynamic libraries:
507 | 0x00007ff6fecb0000 - 0x00007ff6fece5000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe
508 | 0x00007ffa2f000000 - 0x00007ffa2f207000 C:\Windows\SYSTEM32\ntdll.dll
509 | 0x00007ffa2ddf0000 - 0x00007ffa2dead000 C:\Windows\System32\KERNEL32.DLL
510 | 0x00007ffa2c7c0000 - 0x00007ffa2cb34000 C:\Windows\System32\KERNELBASE.dll
511 | 0x00007ffa2da80000 - 0x00007ffa2db2c000 C:\Windows\System32\ADVAPI32.dll
512 | 0x00007ffa2d050000 - 0x00007ffa2d0f3000 C:\Windows\System32\msvcrt.dll
513 | 0x00007ffa2e190000 - 0x00007ffa2e22d000 C:\Windows\System32\sechost.dll
514 | 0x00007ffa2cea0000 - 0x00007ffa2cfc1000 C:\Windows\System32\RPCRT4.dll
515 | 0x00007ffa2d8d0000 - 0x00007ffa2da7c000 C:\Windows\System32\USER32.dll
516 | 0x00007ffa2cc80000 - 0x00007ffa2cca6000 C:\Windows\System32\win32u.dll
517 | 0x00007ffa2e030000 - 0x00007ffa2e059000 C:\Windows\System32\GDI32.dll
518 | 0x00007ffa2c4e0000 - 0x00007ffa2c5f2000 C:\Windows\System32\gdi32full.dll
519 | 0x00007ffa2c720000 - 0x00007ffa2c7bd000 C:\Windows\System32\msvcp_win.dll
520 | 0x00007ffa2c600000 - 0x00007ffa2c711000 C:\Windows\System32\ucrtbase.dll
521 | 0x00007ffa1ec40000 - 0x00007ffa1eee5000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22000.120_none_9d947278b86cc467\COMCTL32.dll
522 | 0x00007ffa2d2c0000 - 0x00007ffa2d2f1000 C:\Windows\System32\IMM32.DLL
523 | 0x000000005bde0000 - 0x000000005beb2000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\msvcr100.dll
524 | 0x000000005b590000 - 0x000000005bdd9000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\server\jvm.dll
525 | 0x00007ffa2deb0000 - 0x00007ffa2deb8000 C:\Windows\System32\PSAPI.DLL
526 | 0x00007ffa24ba0000 - 0x00007ffa24baa000 C:\Windows\SYSTEM32\VERSION.dll
527 | 0x00007ffa21f50000 - 0x00007ffa21f59000 C:\Windows\SYSTEM32\WSOCK32.dll
528 | 0x00007ffa2d860000 - 0x00007ffa2d8cf000 C:\Windows\System32\WS2_32.dll
529 | 0x00007ffa1e2f0000 - 0x00007ffa1e323000 C:\Windows\SYSTEM32\WINMM.dll
530 | 0x00007ffa21ab0000 - 0x00007ffa21abf000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\verify.dll
531 | 0x00007ffa217a0000 - 0x00007ffa217c9000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\java.dll
532 | 0x00007ffa21640000 - 0x00007ffa21656000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\zip.dll
533 | 0x00007ffa2e720000 - 0x00007ffa2eece000 C:\Windows\System32\SHELL32.dll
534 | 0x00007ffa2a680000 - 0x00007ffa2aee7000 C:\Windows\SYSTEM32\windows.storage.dll
535 | 0x00007ffa2e2c0000 - 0x00007ffa2e638000 C:\Windows\System32\combase.dll
536 | 0x00007ffa2a510000 - 0x00007ffa2a676000 C:\Windows\SYSTEM32\wintypes.dll
537 | 0x00007ffa2d770000 - 0x00007ffa2d85a000 C:\Windows\System32\SHCORE.dll
538 | 0x00007ffa2e130000 - 0x00007ffa2e18d000 C:\Windows\System32\shlwapi.dll
539 | 0x00007ffa2c410000 - 0x00007ffa2c431000 C:\Windows\SYSTEM32\profapi.dll
540 | 0x00007ffa21620000 - 0x00007ffa2163a000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\net.dll
541 | 0x00007ffa2bb00000 - 0x00007ffa2bb67000 C:\Windows\system32\mswsock.dll
542 | 0x00007ffa21230000 - 0x00007ffa21241000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\nio.dll
543 | 0x00007ffa20640000 - 0x00007ffa20667000 C:\Users\Administrator\.gradle\native\fdc75f09e3144964f2cf3f50f0aa648679c211496f362492102eb8c894070792\windows-amd64\native-platform.dll
544 | 0x00007ff9e3910000 - 0x00007ff9e3aa6000 C:\Users\Administrator\.gradle\native\12488b8bf47d2d4c9fbf2f6322a914ad602e24e48041cd04a747c6da556b65c4\windows-amd64\native-platform-file-events.dll
545 | 0x00007ffa21aa0000 - 0x00007ffa21aad000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\management.dll
546 | 0x00007ffa2bd40000 - 0x00007ffa2bd58000 C:\Windows\SYSTEM32\CRYPTSP.dll
547 | 0x00007ffa2b560000 - 0x00007ffa2b595000 C:\Windows\system32\rsaenh.dll
548 | 0x00007ffa2bbf0000 - 0x00007ffa2bc19000 C:\Windows\SYSTEM32\USERENV.dll
549 | 0x00007ffa2bec0000 - 0x00007ffa2bee7000 C:\Windows\SYSTEM32\bcrypt.dll
550 | 0x00007ffa2cc00000 - 0x00007ffa2cc7f000 C:\Windows\System32\bcryptprimitives.dll
551 | 0x00007ffa2bd60000 - 0x00007ffa2bd6c000 C:\Windows\SYSTEM32\CRYPTBASE.dll
552 | 0x00007ffa2b140000 - 0x00007ffa2b16d000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
553 | 0x00007ffa2ce90000 - 0x00007ffa2ce99000 C:\Windows\System32\NSI.dll
554 | 0x00007ffa27760000 - 0x00007ffa27779000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
555 | 0x00007ffa27c80000 - 0x00007ffa27c9e000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
556 | 0x00007ffa2b1b0000 - 0x00007ffa2b297000 C:\Windows\SYSTEM32\DNSAPI.dll
557 | 0x00007ffa27b10000 - 0x00007ffa27b1c000 C:\Windows\SYSTEM32\WINNSI.DLL
558 | 0x00007ffa29eb0000 - 0x00007ffa29ee4000 C:\Windows\SYSTEM32\ntmarta.dll
559 | 0x00007ffa21f80000 - 0x00007ffa21f9e000 C:\Users\Administrator\AppData\Local\Temp\native-platform3795795878951037499dir\native-platform.dll
560 | 0x00007ffa205c0000 - 0x00007ffa205e4000 S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin\sunec.dll
561 | 0x00007ffa1a280000 - 0x00007ffa1a4a1000 C:\Windows\SYSTEM32\dbghelp.dll
562 |
563 | VM Arguments:
564 | jvm_args: -Xmx1536M -Dfile.encoding=GBK -Duser.country=CN -Duser.language=zh -Duser.variant
565 | java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.7
566 | java_class_path (initial): C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.7-all\cuy9mc7upwgwgeb72wkcrupxe\gradle-6.7\lib\gradle-launcher-6.7.jar
567 | Launcher Type: SUN_STANDARD
568 |
569 | Environment Variables:
570 | JAVA_HOME=S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK
571 | CLASSPATH=S:\Projects\PhantomsXR\UnityProjects\ARMODs\Apps\Flutter\android\\gradle\wrapper\gradle-wrapper.jar
572 | PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;S:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;S:\Program Files\nodejs\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;S:\Program Files\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Roaming\npm;F:\flutter\bin;S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK;S:\Program Files\UnityEditors\2021.2.7f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin;F:\flutter\bin\mingit\cmd
573 | USERNAME=Administrator
574 | OS=Windows_NT
575 | PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
576 |
577 |
578 |
579 | --------------- S Y S T E M ---------------
580 |
581 | OS: Windows 10.0 , 64 bit Build 22000 (10.0.22000.318)
582 |
583 | CPU:total 16 (initial active 16) (16 cores per cpu, 1 threads per core) family 23 model 113 stepping 0, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, mmxext, 3dnowpref, lzcnt, sse4a, tsc, tscinvbit, tscinv, bmi1
584 |
585 | Memory: 4k page, physical 33474240k(18915904k free), swap 38454976k(19771968k free)
586 |
587 | vm_info: OpenJDK 64-Bit Server VM (25.71-b00) for windows-amd64 JRE (1.8.0-adoptopenjdk-_2018_05_19_00_59-b00), built on May 19 2018 01:02:12 by "jenkins" with MS VC++ 10.0 (VS2010)
588 |
589 | time: Sat Jan 08 15:49:55 2022
590 | elapsed time: 1051 seconds (0d 0h 17m 31s)
591 |
592 |
--------------------------------------------------------------------------------
/android/multidex-config.pro:
--------------------------------------------------------------------------------
1 | -keep class com.phantomsxr.armodplugin.** {*;}
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/android/settings_aar.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/assets/icon/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/assets/icon/logo.jpg
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/ephemeral/
22 | Flutter/app.flx
23 | Flutter/app.zip
24 | Flutter/flutter_assets/
25 | Flutter/flutter_export_environment.sh
26 | ServiceDefinitions.json
27 | Runner/GeneratedPluginRegistrant.*
28 |
29 | # Exceptions to above rules.
30 | !default.mode1v3
31 | !default.mode2v3
32 | !default.pbxuser
33 | !default.perspectivev3
34 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | platform :ios, '11.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Flutter (1.0.0)
3 | - flutter_armod_widget (2.0.0):
4 | - Flutter
5 | - path_provider_ios (0.0.1):
6 | - Flutter
7 |
8 | DEPENDENCIES:
9 | - Flutter (from `Flutter`)
10 | - flutter_armod_widget (from `.symlinks/plugins/flutter_armod_widget/ios`)
11 | - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
12 |
13 | EXTERNAL SOURCES:
14 | Flutter:
15 | :path: Flutter
16 | flutter_armod_widget:
17 | :path: ".symlinks/plugins/flutter_armod_widget/ios"
18 | path_provider_ios:
19 | :path: ".symlinks/plugins/path_provider_ios/ios"
20 |
21 | SPEC CHECKSUMS:
22 | Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
23 | flutter_armod_widget: 73ea38a5c0479a3d9c34c20558d9f93561938904
24 | path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
25 |
26 | PODFILE CHECKSUM: 7368163408c647b7eb699d0d788ba6718e18fb8d
27 |
28 | COCOAPODS: 1.11.2
29 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 51;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 | B332665D26E621630044EA7B /* ThirdParties in Resources */ = {isa = PBXBuildFile; fileRef = B332665C26E621630044EA7B /* ThirdParties */; };
17 | B332665E26E6217A0044EA7B /* UnityFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3642A8A26E0CAD00036BFF8 /* UnityFramework.framework */; };
18 | B332665F26E6217A0044EA7B /* UnityFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B3642A8A26E0CAD00036BFF8 /* UnityFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
19 | B332666226E621E70044EA7B /* ARMODCallbackAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = B332666126E621E70044EA7B /* ARMODCallbackAPI.swift */; };
20 | B37C082628912CB200A5ECAF /* NatCorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B37C082528912CB200A5ECAF /* NatCorder.framework */; };
21 | B37C082728912CB200A5ECAF /* NatCorder.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B37C082528912CB200A5ECAF /* NatCorder.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
22 | CE13F701513330C2DF85FB61 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54568BD673B8F53F89DDA2DB /* Pods_Runner.framework */; };
23 | /* End PBXBuildFile section */
24 |
25 | /* Begin PBXCopyFilesBuildPhase section */
26 | B332666026E6217A0044EA7B /* Embed Frameworks */ = {
27 | isa = PBXCopyFilesBuildPhase;
28 | buildActionMask = 2147483647;
29 | dstPath = "";
30 | dstSubfolderSpec = 10;
31 | files = (
32 | B332665F26E6217A0044EA7B /* UnityFramework.framework in Embed Frameworks */,
33 | B37C082728912CB200A5ECAF /* NatCorder.framework in Embed Frameworks */,
34 | );
35 | name = "Embed Frameworks";
36 | runOnlyForDeploymentPostprocessing = 0;
37 | };
38 | /* End PBXCopyFilesBuildPhase section */
39 |
40 | /* Begin PBXFileReference section */
41 | 00D8CFD8C49B56D96C745C60 /* 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 = ""; };
42 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
43 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
44 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
45 | 4C57CC6932587493E26D74F7 /* 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 = ""; };
46 | 54568BD673B8F53F89DDA2DB /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
47 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
48 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
49 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
50 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
51 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
52 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
53 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
54 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
55 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
56 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
57 | B332665826E61DB30044EA7B /* UnityFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnityFramework.framework; path = Pods/ThirdParties/UnityFramework.framework; sourceTree = ""; };
58 | B332665C26E621630044EA7B /* ThirdParties */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ThirdParties; sourceTree = ""; };
59 | B332666126E621E70044EA7B /* ARMODCallbackAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARMODCallbackAPI.swift; sourceTree = ""; };
60 | B3642A8A26E0CAD00036BFF8 /* UnityFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnityFramework.framework; path = ThirdParties/UnityFramework.framework; sourceTree = ""; };
61 | B37C082528912CB200A5ECAF /* NatCorder.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NatCorder.framework; path = ThirdParties/NatCorder.framework; sourceTree = ""; };
62 | C2E6F909FD3F72F1059917C5 /* 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 = ""; };
63 | /* End PBXFileReference section */
64 |
65 | /* Begin PBXFrameworksBuildPhase section */
66 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
67 | isa = PBXFrameworksBuildPhase;
68 | buildActionMask = 2147483647;
69 | files = (
70 | B37C082628912CB200A5ECAF /* NatCorder.framework in Frameworks */,
71 | CE13F701513330C2DF85FB61 /* Pods_Runner.framework in Frameworks */,
72 | B332665E26E6217A0044EA7B /* UnityFramework.framework in Frameworks */,
73 | );
74 | runOnlyForDeploymentPostprocessing = 0;
75 | };
76 | /* End PBXFrameworksBuildPhase section */
77 |
78 | /* Begin PBXGroup section */
79 | 8192A224E9E2F548A0C52BCF /* Frameworks */ = {
80 | isa = PBXGroup;
81 | children = (
82 | 54568BD673B8F53F89DDA2DB /* Pods_Runner.framework */,
83 | B332665826E61DB30044EA7B /* UnityFramework.framework */,
84 | B37C082528912CB200A5ECAF /* NatCorder.framework */,
85 | B3642A8A26E0CAD00036BFF8 /* UnityFramework.framework */,
86 | );
87 | name = Frameworks;
88 | sourceTree = "";
89 | };
90 | 9740EEB11CF90186004384FC /* Flutter */ = {
91 | isa = PBXGroup;
92 | children = (
93 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
94 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
95 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
96 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
97 | );
98 | name = Flutter;
99 | sourceTree = "";
100 | };
101 | 97C146E51CF9000F007C117D = {
102 | isa = PBXGroup;
103 | children = (
104 | B332665C26E621630044EA7B /* ThirdParties */,
105 | 9740EEB11CF90186004384FC /* Flutter */,
106 | 97C146F01CF9000F007C117D /* Runner */,
107 | 97C146EF1CF9000F007C117D /* Products */,
108 | A62249401BF9A3036AB81DAA /* Pods */,
109 | 8192A224E9E2F548A0C52BCF /* Frameworks */,
110 | );
111 | sourceTree = "";
112 | };
113 | 97C146EF1CF9000F007C117D /* Products */ = {
114 | isa = PBXGroup;
115 | children = (
116 | 97C146EE1CF9000F007C117D /* Runner.app */,
117 | );
118 | name = Products;
119 | sourceTree = "";
120 | };
121 | 97C146F01CF9000F007C117D /* Runner */ = {
122 | isa = PBXGroup;
123 | children = (
124 | B332666126E621E70044EA7B /* ARMODCallbackAPI.swift */,
125 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
126 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
127 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
128 | 97C147021CF9000F007C117D /* Info.plist */,
129 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
130 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
131 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
132 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
133 | );
134 | path = Runner;
135 | sourceTree = "";
136 | };
137 | A62249401BF9A3036AB81DAA /* Pods */ = {
138 | isa = PBXGroup;
139 | children = (
140 | C2E6F909FD3F72F1059917C5 /* Pods-Runner.debug.xcconfig */,
141 | 4C57CC6932587493E26D74F7 /* Pods-Runner.release.xcconfig */,
142 | 00D8CFD8C49B56D96C745C60 /* Pods-Runner.profile.xcconfig */,
143 | );
144 | path = Pods;
145 | sourceTree = "";
146 | };
147 | /* End PBXGroup section */
148 |
149 | /* Begin PBXNativeTarget section */
150 | 97C146ED1CF9000F007C117D /* Runner */ = {
151 | isa = PBXNativeTarget;
152 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
153 | buildPhases = (
154 | E6615A0E19AA47A55FEC9137 /* [CP] Check Pods Manifest.lock */,
155 | 9740EEB61CF901F6004384FC /* Run Script */,
156 | 97C146EA1CF9000F007C117D /* Sources */,
157 | 97C146EB1CF9000F007C117D /* Frameworks */,
158 | 97C146EC1CF9000F007C117D /* Resources */,
159 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
160 | F729C80D2FB5B32A6EF60B75 /* [CP] Embed Pods Frameworks */,
161 | B332666026E6217A0044EA7B /* Embed Frameworks */,
162 | );
163 | buildRules = (
164 | );
165 | dependencies = (
166 | );
167 | name = Runner;
168 | productName = Runner;
169 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
170 | productType = "com.apple.product-type.application";
171 | };
172 | /* End PBXNativeTarget section */
173 |
174 | /* Begin PBXProject section */
175 | 97C146E61CF9000F007C117D /* Project object */ = {
176 | isa = PBXProject;
177 | attributes = {
178 | LastUpgradeCheck = 1020;
179 | ORGANIZATIONNAME = "";
180 | TargetAttributes = {
181 | 97C146ED1CF9000F007C117D = {
182 | CreatedOnToolsVersion = 7.3.1;
183 | LastSwiftMigration = 1100;
184 | };
185 | };
186 | };
187 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
188 | compatibilityVersion = "Xcode 9.3";
189 | developmentRegion = en;
190 | hasScannedForEncodings = 0;
191 | knownRegions = (
192 | en,
193 | Base,
194 | );
195 | mainGroup = 97C146E51CF9000F007C117D;
196 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
197 | projectDirPath = "";
198 | projectRoot = "";
199 | targets = (
200 | 97C146ED1CF9000F007C117D /* Runner */,
201 | );
202 | };
203 | /* End PBXProject section */
204 |
205 | /* Begin PBXResourcesBuildPhase section */
206 | 97C146EC1CF9000F007C117D /* Resources */ = {
207 | isa = PBXResourcesBuildPhase;
208 | buildActionMask = 2147483647;
209 | files = (
210 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
211 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
212 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
213 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
214 | B332665D26E621630044EA7B /* ThirdParties in Resources */,
215 | );
216 | runOnlyForDeploymentPostprocessing = 0;
217 | };
218 | /* End PBXResourcesBuildPhase section */
219 |
220 | /* Begin PBXShellScriptBuildPhase section */
221 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
222 | isa = PBXShellScriptBuildPhase;
223 | buildActionMask = 2147483647;
224 | files = (
225 | );
226 | inputPaths = (
227 | );
228 | name = "Thin Binary";
229 | outputPaths = (
230 | );
231 | runOnlyForDeploymentPostprocessing = 0;
232 | shellPath = /bin/sh;
233 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
234 | };
235 | 9740EEB61CF901F6004384FC /* Run Script */ = {
236 | isa = PBXShellScriptBuildPhase;
237 | buildActionMask = 2147483647;
238 | files = (
239 | );
240 | inputPaths = (
241 | );
242 | name = "Run Script";
243 | outputPaths = (
244 | );
245 | runOnlyForDeploymentPostprocessing = 0;
246 | shellPath = /bin/sh;
247 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
248 | };
249 | E6615A0E19AA47A55FEC9137 /* [CP] Check Pods Manifest.lock */ = {
250 | isa = PBXShellScriptBuildPhase;
251 | buildActionMask = 2147483647;
252 | files = (
253 | );
254 | inputFileListPaths = (
255 | );
256 | inputPaths = (
257 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
258 | "${PODS_ROOT}/Manifest.lock",
259 | );
260 | name = "[CP] Check Pods Manifest.lock";
261 | outputFileListPaths = (
262 | );
263 | outputPaths = (
264 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
265 | );
266 | runOnlyForDeploymentPostprocessing = 0;
267 | shellPath = /bin/sh;
268 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
269 | showEnvVarsInLog = 0;
270 | };
271 | F729C80D2FB5B32A6EF60B75 /* [CP] Embed Pods Frameworks */ = {
272 | isa = PBXShellScriptBuildPhase;
273 | buildActionMask = 2147483647;
274 | files = (
275 | );
276 | inputFileListPaths = (
277 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
278 | );
279 | name = "[CP] Embed Pods Frameworks";
280 | outputFileListPaths = (
281 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
282 | );
283 | runOnlyForDeploymentPostprocessing = 0;
284 | shellPath = /bin/sh;
285 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
286 | showEnvVarsInLog = 0;
287 | };
288 | /* End PBXShellScriptBuildPhase section */
289 |
290 | /* Begin PBXSourcesBuildPhase section */
291 | 97C146EA1CF9000F007C117D /* Sources */ = {
292 | isa = PBXSourcesBuildPhase;
293 | buildActionMask = 2147483647;
294 | files = (
295 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
296 | B332666226E621E70044EA7B /* ARMODCallbackAPI.swift in Sources */,
297 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
298 | );
299 | runOnlyForDeploymentPostprocessing = 0;
300 | };
301 | /* End PBXSourcesBuildPhase section */
302 |
303 | /* Begin PBXVariantGroup section */
304 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
305 | isa = PBXVariantGroup;
306 | children = (
307 | 97C146FB1CF9000F007C117D /* Base */,
308 | );
309 | name = Main.storyboard;
310 | sourceTree = "";
311 | };
312 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
313 | isa = PBXVariantGroup;
314 | children = (
315 | 97C147001CF9000F007C117D /* Base */,
316 | );
317 | name = LaunchScreen.storyboard;
318 | sourceTree = "";
319 | };
320 | /* End PBXVariantGroup section */
321 |
322 | /* Begin XCBuildConfiguration section */
323 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
324 | isa = XCBuildConfiguration;
325 | buildSettings = {
326 | ALWAYS_SEARCH_USER_PATHS = NO;
327 | ARCHS = arm64;
328 | CLANG_ANALYZER_NONNULL = YES;
329 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
330 | CLANG_CXX_LIBRARY = "libc++";
331 | CLANG_ENABLE_MODULES = YES;
332 | CLANG_ENABLE_OBJC_ARC = YES;
333 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
334 | CLANG_WARN_BOOL_CONVERSION = YES;
335 | CLANG_WARN_COMMA = YES;
336 | CLANG_WARN_CONSTANT_CONVERSION = YES;
337 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
338 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
339 | CLANG_WARN_EMPTY_BODY = YES;
340 | CLANG_WARN_ENUM_CONVERSION = YES;
341 | CLANG_WARN_INFINITE_RECURSION = YES;
342 | CLANG_WARN_INT_CONVERSION = YES;
343 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
344 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
345 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
346 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
347 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
348 | CLANG_WARN_STRICT_PROTOTYPES = YES;
349 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
350 | CLANG_WARN_UNREACHABLE_CODE = YES;
351 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
352 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
353 | COPY_PHASE_STRIP = NO;
354 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
355 | ENABLE_BITCODE = NO;
356 | ENABLE_NS_ASSERTIONS = NO;
357 | ENABLE_STRICT_OBJC_MSGSEND = YES;
358 | GCC_C_LANGUAGE_STANDARD = gnu99;
359 | GCC_NO_COMMON_BLOCKS = YES;
360 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
361 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
362 | GCC_WARN_UNDECLARED_SELECTOR = YES;
363 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
364 | GCC_WARN_UNUSED_FUNCTION = YES;
365 | GCC_WARN_UNUSED_VARIABLE = YES;
366 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
367 | MTL_ENABLE_DEBUG_INFO = NO;
368 | SDKROOT = iphoneos;
369 | SUPPORTED_PLATFORMS = iphoneos;
370 | TARGETED_DEVICE_FAMILY = "1,2";
371 | VALIDATE_PRODUCT = YES;
372 | };
373 | name = Profile;
374 | };
375 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
376 | isa = XCBuildConfiguration;
377 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
378 | buildSettings = {
379 | ARCHS = arm64;
380 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
381 | CLANG_ENABLE_MODULES = YES;
382 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
383 | DEVELOPMENT_TEAM = ZE624U53Z6;
384 | ENABLE_BITCODE = NO;
385 | FRAMEWORK_SEARCH_PATHS = (
386 | "$(inherited)",
387 | "$(PROJECT_DIR)/ThirdParties",
388 | "$(PROJECT_DIR)/Pods/ThirdParties",
389 | );
390 | INFOPLIST_FILE = Runner/Info.plist;
391 | LD_RUNPATH_SEARCH_PATHS = (
392 | "$(inherited)",
393 | "@executable_path/Frameworks",
394 | );
395 | PRODUCT_BUNDLE_IDENTIFIER = com.example.armodFlutterStore;
396 | PRODUCT_NAME = "$(TARGET_NAME)";
397 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
398 | SWIFT_VERSION = 5.0;
399 | VERSIONING_SYSTEM = "apple-generic";
400 | };
401 | name = Profile;
402 | };
403 | 97C147031CF9000F007C117D /* Debug */ = {
404 | isa = XCBuildConfiguration;
405 | buildSettings = {
406 | ALWAYS_SEARCH_USER_PATHS = NO;
407 | ARCHS = arm64;
408 | CLANG_ANALYZER_NONNULL = YES;
409 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
410 | CLANG_CXX_LIBRARY = "libc++";
411 | CLANG_ENABLE_MODULES = YES;
412 | CLANG_ENABLE_OBJC_ARC = YES;
413 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
414 | CLANG_WARN_BOOL_CONVERSION = YES;
415 | CLANG_WARN_COMMA = YES;
416 | CLANG_WARN_CONSTANT_CONVERSION = YES;
417 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
418 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
419 | CLANG_WARN_EMPTY_BODY = YES;
420 | CLANG_WARN_ENUM_CONVERSION = YES;
421 | CLANG_WARN_INFINITE_RECURSION = YES;
422 | CLANG_WARN_INT_CONVERSION = YES;
423 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
424 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
425 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
426 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
427 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
428 | CLANG_WARN_STRICT_PROTOTYPES = YES;
429 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
430 | CLANG_WARN_UNREACHABLE_CODE = YES;
431 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
432 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
433 | COPY_PHASE_STRIP = NO;
434 | DEBUG_INFORMATION_FORMAT = dwarf;
435 | ENABLE_BITCODE = NO;
436 | ENABLE_STRICT_OBJC_MSGSEND = YES;
437 | ENABLE_TESTABILITY = YES;
438 | GCC_C_LANGUAGE_STANDARD = gnu99;
439 | GCC_DYNAMIC_NO_PIC = NO;
440 | GCC_NO_COMMON_BLOCKS = YES;
441 | GCC_OPTIMIZATION_LEVEL = 0;
442 | GCC_PREPROCESSOR_DEFINITIONS = (
443 | "DEBUG=1",
444 | "$(inherited)",
445 | );
446 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
447 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
448 | GCC_WARN_UNDECLARED_SELECTOR = YES;
449 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
450 | GCC_WARN_UNUSED_FUNCTION = YES;
451 | GCC_WARN_UNUSED_VARIABLE = YES;
452 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
453 | MTL_ENABLE_DEBUG_INFO = YES;
454 | ONLY_ACTIVE_ARCH = YES;
455 | SDKROOT = iphoneos;
456 | TARGETED_DEVICE_FAMILY = "1,2";
457 | };
458 | name = Debug;
459 | };
460 | 97C147041CF9000F007C117D /* Release */ = {
461 | isa = XCBuildConfiguration;
462 | buildSettings = {
463 | ALWAYS_SEARCH_USER_PATHS = NO;
464 | ARCHS = arm64;
465 | CLANG_ANALYZER_NONNULL = YES;
466 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
467 | CLANG_CXX_LIBRARY = "libc++";
468 | CLANG_ENABLE_MODULES = YES;
469 | CLANG_ENABLE_OBJC_ARC = YES;
470 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
471 | CLANG_WARN_BOOL_CONVERSION = YES;
472 | CLANG_WARN_COMMA = YES;
473 | CLANG_WARN_CONSTANT_CONVERSION = YES;
474 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
475 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
476 | CLANG_WARN_EMPTY_BODY = YES;
477 | CLANG_WARN_ENUM_CONVERSION = YES;
478 | CLANG_WARN_INFINITE_RECURSION = YES;
479 | CLANG_WARN_INT_CONVERSION = YES;
480 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
481 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
482 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
483 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
484 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
485 | CLANG_WARN_STRICT_PROTOTYPES = YES;
486 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
487 | CLANG_WARN_UNREACHABLE_CODE = YES;
488 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
489 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
490 | COPY_PHASE_STRIP = NO;
491 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
492 | ENABLE_BITCODE = NO;
493 | ENABLE_NS_ASSERTIONS = NO;
494 | ENABLE_STRICT_OBJC_MSGSEND = YES;
495 | GCC_C_LANGUAGE_STANDARD = gnu99;
496 | GCC_NO_COMMON_BLOCKS = YES;
497 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
498 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
499 | GCC_WARN_UNDECLARED_SELECTOR = YES;
500 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
501 | GCC_WARN_UNUSED_FUNCTION = YES;
502 | GCC_WARN_UNUSED_VARIABLE = YES;
503 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
504 | MTL_ENABLE_DEBUG_INFO = NO;
505 | SDKROOT = iphoneos;
506 | SUPPORTED_PLATFORMS = iphoneos;
507 | SWIFT_COMPILATION_MODE = wholemodule;
508 | SWIFT_OPTIMIZATION_LEVEL = "-O";
509 | TARGETED_DEVICE_FAMILY = "1,2";
510 | VALIDATE_PRODUCT = YES;
511 | };
512 | name = Release;
513 | };
514 | 97C147061CF9000F007C117D /* Debug */ = {
515 | isa = XCBuildConfiguration;
516 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
517 | buildSettings = {
518 | ARCHS = arm64;
519 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
520 | CLANG_ENABLE_MODULES = YES;
521 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
522 | DEVELOPMENT_TEAM = ZE624U53Z6;
523 | ENABLE_BITCODE = NO;
524 | FRAMEWORK_SEARCH_PATHS = (
525 | "$(inherited)",
526 | "$(PROJECT_DIR)/ThirdParties",
527 | "$(PROJECT_DIR)/Pods/ThirdParties",
528 | );
529 | INFOPLIST_FILE = Runner/Info.plist;
530 | LD_RUNPATH_SEARCH_PATHS = (
531 | "$(inherited)",
532 | "@executable_path/Frameworks",
533 | );
534 | PRODUCT_BUNDLE_IDENTIFIER = com.example.armodFlutterStore;
535 | PRODUCT_NAME = "$(TARGET_NAME)";
536 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
537 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
538 | SWIFT_VERSION = 5.0;
539 | VERSIONING_SYSTEM = "apple-generic";
540 | };
541 | name = Debug;
542 | };
543 | 97C147071CF9000F007C117D /* Release */ = {
544 | isa = XCBuildConfiguration;
545 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
546 | buildSettings = {
547 | ARCHS = arm64;
548 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
549 | CLANG_ENABLE_MODULES = YES;
550 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
551 | DEVELOPMENT_TEAM = ZE624U53Z6;
552 | ENABLE_BITCODE = NO;
553 | FRAMEWORK_SEARCH_PATHS = (
554 | "$(inherited)",
555 | "$(PROJECT_DIR)/ThirdParties",
556 | "$(PROJECT_DIR)/Pods/ThirdParties",
557 | );
558 | INFOPLIST_FILE = Runner/Info.plist;
559 | LD_RUNPATH_SEARCH_PATHS = (
560 | "$(inherited)",
561 | "@executable_path/Frameworks",
562 | );
563 | PRODUCT_BUNDLE_IDENTIFIER = com.example.armodFlutterStore;
564 | PRODUCT_NAME = "$(TARGET_NAME)";
565 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
566 | SWIFT_VERSION = 5.0;
567 | VERSIONING_SYSTEM = "apple-generic";
568 | };
569 | name = Release;
570 | };
571 | /* End XCBuildConfiguration section */
572 |
573 | /* Begin XCConfigurationList section */
574 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
575 | isa = XCConfigurationList;
576 | buildConfigurations = (
577 | 97C147031CF9000F007C117D /* Debug */,
578 | 97C147041CF9000F007C117D /* Release */,
579 | 249021D3217E4FDB00AE95B9 /* Profile */,
580 | );
581 | defaultConfigurationIsVisible = 0;
582 | defaultConfigurationName = Release;
583 | };
584 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
585 | isa = XCConfigurationList;
586 | buildConfigurations = (
587 | 97C147061CF9000F007C117D /* Debug */,
588 | 97C147071CF9000F007C117D /* Release */,
589 | 249021D4217E4FDB00AE95B9 /* Profile */,
590 | );
591 | defaultConfigurationIsVisible = 0;
592 | defaultConfigurationName = Release;
593 | };
594 | /* End XCConfigurationList section */
595 | };
596 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
597 | }
598 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
52 |
54 |
60 |
61 |
62 |
63 |
69 |
71 |
77 |
78 |
79 |
80 |
82 |
83 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/ARMODCallbackAPI.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ARMODCallbackAPI.swift
3 | // ARMOD
4 | //
5 | // Created by phantomsxr on 2021/9/2.
6 | // Copyright © 2020 phantomsxr.com. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import flutter_armod_widget
11 |
12 | @objc public class ARMODCallbackAPI: UIResponder,NativeCallsProtocol {
13 | public func tryAcquireInformation(_ opTag: String!, callBackFuncP callback: TryAcquireInformationCallBackFuncP!) {
14 | let playload: Dictionary = [
15 | "opTag": opTag!
16 | ]
17 |
18 | globalChannel?.invokeMethod("events#onTryAcquireInformation", arguments: playload, result: {result in
19 | callback((result as? String ?? "").cString(using: .utf8))
20 | })
21 | }
22 |
23 |
24 | public func throwException(_ message: String!, errorCode code: Int32) {
25 | let playload: Dictionary = [
26 | "message": message ?? "Unknow",
27 | "errorCode":code,
28 | ]
29 |
30 | globalChannel?.invokeMethod("events#throwException", arguments: playload)
31 | }
32 |
33 | public func onARMODExit() {
34 | globalChannel?.invokeMethod("events#onARMODExit", arguments: "")
35 | }
36 |
37 | public func onARMODLaunch() {
38 | //Secondary load
39 | if((GetARMODPlayerUtils()?.isARMODReady()) != nil){
40 | DispatchQueue.main.asyncAfter(deadline: .now()+0.125, execute:
41 | {
42 | globalChannel?.invokeMethod("events#onARMODLaunch", arguments: "")
43 | })
44 | }else{
45 | globalChannel?.invokeMethod("events#onARMODLaunch", arguments: "")
46 | }
47 | }
48 |
49 | public func addLoadingOverlay() {
50 | globalChannel?.invokeMethod("events#onAddLoadingOverlay", arguments: "")
51 | }
52 |
53 | public func updateLoadingProgress(_ progress: Float) {
54 | let playload: Dictionary = [
55 | "progress": progress
56 | ]
57 | globalChannel?.invokeMethod("events#onUpdateLoadingProgress", arguments: playload)
58 | }
59 |
60 | public func removeLoadingOverlay() {
61 | globalChannel?.invokeMethod("events#onRemoveLoadingOverlay", arguments: "")
62 | }
63 |
64 | public func deviceNotSupport() {
65 | globalChannel?.invokeMethod("events#onDeviceNotSupport", arguments: "")
66 | }
67 |
68 | public func sdkInitialized() {
69 | globalChannel?.invokeMethod("events#onSdkInitialized", arguments: "")
70 | }
71 |
72 | public func openBuilt(inBrowser url: String!) {
73 | let playload: Dictionary = [
74 | "url": url ?? ""
75 | ]
76 | globalChannel?.invokeMethod("events#onOpenBuiltinBrowser", arguments: playload)
77 | }
78 |
79 | public func recognitionStart() {
80 | globalChannel?.invokeMethod("events#onRecognitionStart", arguments: "")
81 | }
82 |
83 | public func recognitionComplete() {
84 | globalChannel?.invokeMethod("events#onRecognitionComplete", arguments: "")
85 | }
86 |
87 | public func packageSizeMoreThanPresetSize(_ currentSize: Float, preset presetSize: Float) {
88 | let playload: Dictionary = [
89 | "currentSize": currentSize,
90 | "presetSize":presetSize
91 | ]
92 | globalChannel?.invokeMethod("events#onPackageSizeMoreThanPresetSize", arguments: playload)
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 | import flutter_armod_widget
4 |
5 | @UIApplicationMain
6 | @objc class AppDelegate: FlutterAppDelegate {
7 | override func application(
8 | _ application: UIApplication,
9 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
10 | ) -> Bool {
11 | InitARMODIntegrationWithOptions(argc: CommandLine.argc, argv: CommandLine.unsafeArgv, launchOptions)
12 |
13 | let nativeCalls: AnyClass? = NSClassFromString("FrameworkLibAPI")
14 | nativeCalls?.registerAPIforNativeCalls(ARMODCallbackAPI())
15 | GeneratedPluginRegistrant.register(with: self)
16 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Phantomxm2021/ARMOD-FlutterAppDemo/1ec39fc14a696f7e888356c0a132a0180da00325/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | armod_flutter_store
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | NSMicrophoneUsageDescription
30 | Recording the audio for video.
31 | NSPhotoLibraryAddUsageDescription
32 | Save image to photo gallery.
33 | io.flutter.embedded_views_preview
34 | YES
35 | NSCameraUsageDescription
36 | $(PRODUCT_NAME) uses Cameras
37 | NSBonjourServices
38 |
39 | _dartobservatory._tcp
40 |
41 | UISupportedInterfaceOrientations
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationLandscapeLeft
45 | UIInterfaceOrientationLandscapeRight
46 |
47 | UISupportedInterfaceOrientations~ipad
48 |
49 | UIInterfaceOrientationPortrait
50 | UIInterfaceOrientationPortraitUpsideDown
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 | UIViewControllerBasedStatusBarAppearance
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 | #import
3 |
--------------------------------------------------------------------------------
/ios/ThirdParties/README.md:
--------------------------------------------------------------------------------
1 | # Download UnityFramework.framework to this folder
2 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/config/route.dart';
2 | import 'package:armod_flutter_store/src/pages/mainPage.dart';
3 | import 'package:armod_flutter_store/src/pages/ar_experience_detail.dart';
4 | import 'package:armod_flutter_store/src/themes/theme.dart';
5 | import 'package:armod_flutter_store/src/widgets/customRoute.dart';
6 | import 'package:armod_flutter_store/src/widgets/without_scroll_glow.dart';
7 | import 'package:flutter/material.dart';
8 | import 'package:flutter_easyloading/flutter_easyloading.dart';
9 |
10 | void main() {
11 | runApp(MyApp());
12 | }
13 |
14 | class MyApp extends StatelessWidget {
15 | @override
16 | Widget build(BuildContext context) {
17 | return MaterialApp(
18 | title: 'AR-MOD Store Flutter',
19 | theme: AppTheme.lightTheme,
20 | debugShowCheckedModeBanner: false,
21 | scrollBehavior: without_scroll_glow(),
22 | builder: EasyLoading.init(),
23 | routes: Routes.getRoute(),
24 | onGenerateRoute: (RouteSettings settings) {
25 | if (settings.name!.contains('detail')) {
26 | return CustomRoute(
27 | builder: (BuildContext context) => ARExperienceDetailPage());
28 | } else {
29 | return CustomRoute(
30 | builder: (BuildContext context) => MainPage());
31 | }
32 | },
33 | initialRoute: "MainPage",
34 | );
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/lib/src/config/phantomsxrConfig.dart:
--------------------------------------------------------------------------------
1 | class PhantomsXRConfig {
2 | // static String AppToken = "eyJhbGciOiJIUzUxMiIsImlhdCI6MTYxODc2OTkzMSwiZXhwIjoxMDI1ODc2OTkzMX0.eyJwYWNrYWdlaWQiOiJjb20ucGhhbnRvbXMuYXJtb2QiLCJ1c2VyX3VpZCI6MTAxMjQ1MTU0M30.TZv-LKoNvQqnvpXKVDGhY7YNu1OFnazLBODbgdZydRsmyHD4z7Nd7kmi7Hbt4bLQndRcgGE_9IRvVjE64foCkQ";
3 | static String AppToken = "eyJhbGciOiJIUzUxMiIsImlhdCI6MTY0NjQwNzkxNSwiZXhwIjoxMDI4NjQwNzkxNX0.eyJwYWNrYWdlaWQiOiJjb20ucGhhbnRvbXMuYXJtb2QiLCJ1c2VyX3VpZCI6MTAxMjQ1MTU0M30.JS0QsLI6ebMVN_HA9v9U1CT4YMP3BU-IheBojNrBxi282HUWS0LK8w9mG7XPSSsOy-hBopHlw7sP-fa-6wroAA";
4 | }
5 |
--------------------------------------------------------------------------------
/lib/src/config/route.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/pages/ar_view.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:armod_flutter_store/src/pages/mainPage.dart';
4 |
5 | class Routes {
6 | static Map getRoute() {
7 | return {
8 | '/': (_) => MainPage(),
9 | '/ar_view': (_) => ARView()
10 | };
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/lib/src/model/data.dart:
--------------------------------------------------------------------------------
1 |
2 |
3 | class AppData {
4 | static int seleted_project_id = 0;
5 | static String ar_experience_uid = "";
6 | }
7 |
--------------------------------------------------------------------------------
/lib/src/model/general_experience.dart:
--------------------------------------------------------------------------------
1 | class GeneralExperence {
2 | int? app_uid;
3 | int? user_uid;
4 | int? project_id;
5 | String? project_name;
6 | String? project_brief;
7 | String? project_icon;
8 |
9 |
10 | GeneralExperence(
11 | {this.app_uid,
12 | this.user_uid,
13 | this.project_id,
14 | this.project_name,
15 | this.project_brief,
16 | this.project_icon});
17 |
18 | GeneralExperence.fromJson(Map json) {
19 | app_uid = json['app_uid'];
20 | user_uid = json['user_uid'];
21 | project_id = json['project_id'];
22 | project_name = json['project_name'];
23 | project_icon = json['project_icon'];
24 | project_brief = json['project_brief'];
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/lib/src/model/general_experience_detail.dart:
--------------------------------------------------------------------------------
1 | class GeneralExperenceDetail {
2 | int? app_uid;
3 | int? user_uid;
4 | int? project_id;
5 | String? project_name;
6 | String? project_brief;
7 | String? project_icon;
8 | String? project_header;
9 | String? project_description;
10 |
11 | List? showcase_not_index_tags;
12 |
13 | GeneralExperenceDetail(
14 | {this.app_uid,
15 | this.user_uid,
16 | this.project_id,
17 | this.project_name,
18 | this.project_brief,
19 | this.project_icon,
20 | this.project_description,
21 | });
22 |
23 | GeneralExperenceDetail.fromJson(Map json) {
24 | app_uid = json['app_uid'];
25 | user_uid = json['user_uid'];
26 | project_id = json['project_id'];
27 | project_name = json['project_name'];
28 | project_brief = json['project_brief'];
29 | project_header = json['project_header'];
30 | project_icon=json['project_icon'];
31 | project_description=json['project_description'];
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/lib/src/model/recommand_experience.dart:
--------------------------------------------------------------------------------
1 | class RecommandARExperience {
2 | int? app_uid;
3 | int? user_uid;
4 | int? arexperience_uid;
5 | int? project_id;
6 | String? project_name;
7 | String? project_brief;
8 | String? showcase_icon;
9 | String? project_header;
10 | List? showcase_not_index_tags;
11 | RecommandARExperience(
12 | {this.app_uid,
13 | this.user_uid,
14 | this.arexperience_uid,
15 | this.project_id,
16 | this.project_brief,
17 | this.project_header,
18 | this.showcase_icon,
19 | this.project_name,
20 | this.showcase_not_index_tags});
21 |
22 | factory RecommandARExperience.fromJson(Map json) {
23 | return RecommandARExperience(
24 | app_uid: json['app_uid'],
25 | user_uid: json['user_uid'],
26 | arexperience_uid: json['arexperience_uid'],
27 | project_header: json['project_header'],
28 | project_id: json['project_id'],
29 | project_name: json['project_name'],
30 | project_brief: json['project_brief'],
31 | showcase_icon: json['showcase_icon'],
32 | showcase_not_index_tags: json['showcase_not_index_tags'],
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/lib/src/pages/ar_experience_detail.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/model/general_experience_detail.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:armod_flutter_store/src/model/data.dart';
4 | import 'package:armod_flutter_store/src/themes/light_color.dart';
5 | import 'package:armod_flutter_store/src/themes/theme.dart';
6 | import 'package:armod_flutter_store/src/widgets/title_text.dart';
7 | import 'package:flutter/services.dart';
8 |
9 | import '../utils.dart';
10 |
11 | class ARExperienceDetailPage extends StatefulWidget {
12 | ARExperienceDetailPage({Key? key}) : super(key: key);
13 | @override
14 | _ARExperienceDetailPageState createState() => _ARExperienceDetailPageState();
15 | }
16 |
17 | class _ARExperienceDetailPageState extends State
18 | with TickerProviderStateMixin {
19 | late AnimationController controller;
20 | late Animation animation;
21 | late GeneralExperenceDetail generalExperience;
22 | bool hasData = false;
23 | bool luanched_ar = false;
24 | @override
25 | void initState() {
26 | super.initState();
27 | controller =
28 | AnimationController(vsync: this, duration: Duration(milliseconds: 300));
29 | animation = Tween(begin: 0, end: 1).animate(
30 | CurvedAnimation(parent: controller, curve: Curves.easeInToLinear));
31 | controller.forward();
32 | startToPullRecommand();
33 | }
34 |
35 | @override
36 | void dispose() {
37 | controller.dispose();
38 | super.dispose();
39 | hasData = false;
40 | }
41 |
42 | bool isLiked = true;
43 | Widget _appBar() {
44 | return SafeArea(
45 | top: true,
46 | child: GestureDetector(
47 | child: Container(
48 | padding: AppTheme.padding,
49 | child: Row(
50 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
51 | children: [
52 | Container(
53 | width: 25,
54 | height: 25,
55 | alignment: Alignment.center,
56 | decoration: BoxDecoration(
57 | color: Colors.white,
58 | borderRadius: BorderRadius.all(Radius.circular(15)),
59 | ),
60 | child:
61 | Icon(Icons.arrow_back, color: Colors.black54, size: 20),
62 | )
63 | ],
64 | ),
65 | ),
66 | onTap: () {
67 | Navigator.of(context).pop(true);
68 | },
69 | ));
70 | }
71 |
72 | void startToPullRecommand() async {
73 | generalExperience = await queryGeneralExperenceDetail();
74 | setState(() {
75 | hasData = true;
76 | });
77 | }
78 |
79 | ///Get all showcases
80 | Future queryGeneralExperenceDetail() async {
81 | var result = await Utils.queryPhantomCloud('getarexperience',"POST",
82 | {"project_id": AppData.seleted_project_id.toString()});
83 | return GeneralExperenceDetail.fromJson(result['data']);
84 | }
85 |
86 | Widget _arExperienceImage() {
87 | return AnimatedBuilder(
88 | builder: (context, child) {
89 | return AnimatedOpacity(
90 | duration: Duration(milliseconds: 500),
91 | opacity: animation.value,
92 | child: child,
93 | );
94 | },
95 | animation: animation,
96 | child: Container(
97 | width: AppTheme.fullWidth(context),
98 | height: AppTheme.fullHeight(context) * 0.5,
99 | decoration: BoxDecoration(
100 | image: DecorationImage(
101 | image: NetworkImage(generalExperience.project_header ?? ""),
102 | fit: BoxFit.cover)),
103 | ));
104 | }
105 |
106 | Widget _detailWidget() {
107 | return DraggableScrollableSheet(
108 | maxChildSize: .8,
109 | initialChildSize: .6,
110 | minChildSize: .6,
111 | builder: (context, scrollController) {
112 | return Container(
113 | padding: AppTheme.padding.copyWith(bottom: 0),
114 | decoration: BoxDecoration(
115 | borderRadius: BorderRadius.only(
116 | topLeft: Radius.circular(40),
117 | topRight: Radius.circular(40),
118 | ),
119 | color: Colors.white),
120 | child: NotificationListener(
121 | onNotification: (OverscrollIndicatorNotification overscroll) {
122 | overscroll.disallowGlow();
123 | return false;
124 | },
125 | child: SingleChildScrollView(
126 | controller: scrollController,
127 | child: Column(
128 | crossAxisAlignment: CrossAxisAlignment.start,
129 | mainAxisSize: MainAxisSize.max,
130 | children: [
131 | SizedBox(height: 5),
132 | Container(
133 | alignment: Alignment.center,
134 | child: Container(
135 | width: 50,
136 | height: 5,
137 | decoration: BoxDecoration(
138 | color: LightColor.iconColor,
139 | borderRadius:
140 | BorderRadius.all(Radius.circular(10))),
141 | ),
142 | ),
143 | SizedBox(height: 10),
144 | Container(
145 | child: Row(
146 | crossAxisAlignment: CrossAxisAlignment.start,
147 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
148 | children: [
149 | TitleText(
150 | text: generalExperience.project_name ?? "",
151 | fontSize: 25),
152 | ],
153 | ),
154 | ),
155 | SizedBox(
156 | height: 20,
157 | ),
158 | _description(),
159 | ],
160 | ),
161 | ),
162 | ));
163 | },
164 | );
165 | }
166 |
167 | Widget _description() {
168 | return Column(
169 | crossAxisAlignment: CrossAxisAlignment.start,
170 | children: [
171 | TitleText(
172 | text: "描述",
173 | fontSize: 14,
174 | ),
175 | SizedBox(height: 20),
176 | Text(generalExperience.project_description ?? ""),
177 | ],
178 | );
179 | }
180 |
181 | FloatingActionButton _flotingButton() {
182 | return FloatingActionButton(
183 | onPressed: () {
184 | if (luanched_ar) return;
185 | luanched_ar = true;
186 | AppData.ar_experience_uid =
187 | generalExperience.project_id.toString();
188 | Navigator.of(context).pushNamed("/ar_view");
189 | luanched_ar = false;
190 | },
191 | child: Container(
192 | width: 60,
193 | height: 60,
194 | child: Icon(Icons.view_in_ar,
195 | color: Theme.of(context).floatingActionButtonTheme.backgroundColor),
196 | decoration: BoxDecoration(
197 | shape: BoxShape.circle,
198 | gradient:
199 | LinearGradient(colors: [Color(0xFFCE9FFC), Color(0xFF7367F0)])),
200 | ),
201 | );
202 | }
203 |
204 | @override
205 | Widget build(BuildContext context) {
206 | //Fix status bar not display
207 | SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
208 |
209 | return Scaffold(
210 | floatingActionButton: _flotingButton(),
211 | body: SafeArea(
212 | top: false,
213 | child: hasData
214 | ? Stack(
215 | children: [
216 | _arExperienceImage(),
217 | _detailWidget(),
218 | _appBar(),
219 | ],
220 | )
221 | : Stack(children: [
222 | Column(children: [_appBar()])
223 | ]),
224 | ));
225 | }
226 | }
227 |
--------------------------------------------------------------------------------
/lib/src/pages/ar_view.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 |
3 | import 'package:armod_flutter_store/src/model/data.dart';
4 | import 'package:armod_flutter_store/src/themes/theme.dart';
5 | import 'package:flutter/cupertino.dart';
6 | import 'package:flutter/material.dart';
7 | import 'package:flutter_armod_widget/flutter_armod_widget.dart';
8 | import 'package:flutter_easyloading/flutter_easyloading.dart';
9 | import 'package:flutter/services.dart';
10 |
11 | import '../config/phantomsxrConfig.dart';
12 |
13 | class ARView extends StatefulWidget {
14 | ARView({Key? key}) : super(key: key);
15 |
16 | @override
17 | ARViewState createState() => ARViewState();
18 | }
19 |
20 | class ARViewState extends State {
21 | late ARMODWidgetController _armodWidgetController;
22 | bool _onWillPop = false;
23 | bool _isClosedByBack = false;
24 | @override
25 | void initState() {
26 | super.initState();
27 | }
28 |
29 | @override
30 | void dispose() {
31 | super.dispose();
32 | EasyLoading.dismiss();
33 | }
34 |
35 | Widget _appBar() {
36 | return SafeArea(
37 | top: true,
38 | child: GestureDetector(
39 | child: Container(
40 | padding: AppTheme.padding,
41 | child: Row(
42 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
43 | children: [
44 | Container(
45 | width: 25,
46 | height: 25,
47 | alignment: Alignment.center,
48 | decoration: BoxDecoration(
49 | color: Colors.white,
50 | borderRadius: BorderRadius.all(Radius.circular(15)),
51 | ),
52 | child: Icon(Icons.close, color: Colors.black54, size: 20),
53 | )
54 | ],
55 | ),
56 | ),
57 | onTap: () async {
58 | await _onBackPressed();
59 | },
60 | ));
61 | }
62 |
63 | @override
64 | Widget build(BuildContext context) {
65 | return new WillPopScope(
66 | onWillPop: _onBackPressed,
67 | child: new Scaffold(
68 | body: Card(
69 | margin: const EdgeInsets.all(0),
70 | clipBehavior: Clip.antiAlias,
71 | shape: RoundedRectangleBorder(
72 | borderRadius: BorderRadius.circular(20.0),
73 | ),
74 | child: Stack(
75 | children: [
76 | ARMODWidget(
77 | onARMODCreated: onARMODCreate,
78 | onARMODExit: onARMODExit,
79 | onARMODLaunch: onARMODLaunch,
80 | onAddLoadingOverlay: onAddLoadingOverlay,
81 | onDeviceNotSupport: onDeviceNotSupport,
82 | onNeedInstallARCoreService: onNeedInstallARCoreService,
83 | onOpenBuiltInBrowser: onOpenBuiltInBrowser,
84 | onPackageSizeMoreThanPresetSize: onPackageSizeMoreThanPresetSize,
85 | onRecognitionComplete: onRecognitionComplete,
86 | onRecognitionStart: onRecognitionStart,
87 | onRemoveLoadingOverlay: onRemoveLoadingOverlay,
88 | onSdkInitialized: onSdkInitialized,
89 | onThrowException: onThrowException,
90 | onTryAcquireInformation: onTryAcquireInformation,
91 | onUpdateLoadingProgress: onUpdateLoadingProgress,
92 | useAndroidViewSurface: false,
93 | ),
94 | _appBar()
95 | ],
96 | ),
97 | )
98 | ),
99 | );
100 | }
101 |
102 | ///Handling the back event
103 | Future _onBackPressed() async {
104 | //Close AR-MOD SDK
105 | _armodWidgetController.unloadAndHideARMOD();
106 |
107 | while (!_onWillPop) {
108 | //We need to delayed executed because release AR-MOD operation is async.
109 | //May need to wait one more frame
110 | await Future.delayed(Duration(milliseconds: 1));
111 | }
112 | _isClosedByBack = true;
113 | return _onWillPop;
114 | }
115 |
116 | showAlertDialog(BuildContext context, String title, String msg, bool close) {
117 | // set up the button
118 | Widget okButton = TextButton(
119 | child: Text("OK"),
120 | onPressed: () async {
121 | if (close) {
122 | //Dismiss loading ui
123 | EasyLoading.dismiss();
124 |
125 | //Dismiss alert
126 | Navigator.of(context, rootNavigator: true).pop();
127 |
128 | //Dismiss view
129 | await _onBackPressed();
130 | }
131 | },
132 | );
133 |
134 | // set up the AlertDialog
135 | AlertDialog alert = AlertDialog(
136 | title: Text(title),
137 | content: Text(msg),
138 | actions: [
139 | okButton,
140 | ],
141 | );
142 |
143 | // show the dialog
144 | showDialog(
145 | barrierDismissible: false,
146 | context: context,
147 | builder: (BuildContext context) {
148 | return alert;
149 | },
150 | );
151 | }
152 |
153 | Future onARMODCreate(controller) async {
154 | this._armodWidgetController = controller;
155 | if (await _armodWidgetController.isLoaded() != false)
156 | _armodWidgetController.create();
157 | }
158 |
159 | void onARMODLaunch() {
160 | //Set the app orientation
161 | var orientationId =
162 | MediaQuery.of(context).orientation == Orientation.portrait ? '1' : '2';
163 | _armodWidgetController.setDeivcesOrientation(orientationId);
164 |
165 | //Init XRMOD Engine
166 | _armodWidgetController.initARMOD(
167 | '{"EngineType":"Native","dashboardConfig":{"dashboardGateway":"https://phantomsxr.cn/api/v2/getarresources","token":"${PhantomsXRConfig.AppToken}","timeout":30,"maximumDownloadSize":30},"imageCloudRecognizerConfig":{"gateway":"","maximumOfRetries":5,"frequencyOfScan":5}}');
168 |
169 | //Fetch the data from XRMOD Cloud
170 | _armodWidgetController.fetchProject(AppData.ar_experience_uid);
171 | }
172 |
173 | void onThrowException(String errorMsg, int erorCode) {
174 | EasyLoading.dismiss();
175 | showAlertDialog(context, "(Error:$erorCode)", errorMsg, true);
176 | }
177 |
178 | void onARMODExit() {
179 | //Wait to release all asset
180 | _onWillPop = true;
181 | //Close by AR-Experiences
182 | if (!_isClosedByBack) Navigator.of(context).pop(true);
183 | }
184 |
185 | void onUpdateLoadingProgress(progress) {
186 | print("Load progress:$progress");
187 | EasyLoading.showProgress(progress,
188 | status: '${(progress * 100).toStringAsFixed(0)}%');
189 | }
190 |
191 | Future onTryAcquireInformation(String opTag) async {
192 | await Future.delayed(Duration(seconds: 3));
193 | return "onTryAcquireInformation_$opTag";
194 | }
195 |
196 | void onAddLoadingOverlay() {
197 | EasyLoading.instance
198 | ..indicatorType = EasyLoadingIndicatorType.fadingCircle
199 | ..maskColor = Colors.red.withOpacity(0.5)
200 | ..dismissOnTap = false;
201 | }
202 |
203 | void onRemoveLoadingOverlay() {
204 | print("onRemoveLoadingOverlay");
205 | EasyLoading.dismiss();
206 | }
207 |
208 | void onDeviceNotSupport() {
209 | showAlertDialog(
210 | context,
211 | "Device Not Supported",
212 | "Your device is not supoorted! \n Will downgrade to normal version",
213 | false);
214 | }
215 |
216 | void onRecognitionStart() {}
217 |
218 | void onNeedInstallARCoreService() {
219 | showAlertDialog(context, "ARCore Service Need",
220 | "You need to install the ARCore service!", false);
221 | }
222 |
223 | void onSdkInitialized() {
224 | print("\nSdkInitialized\n");
225 | }
226 |
227 | void onOpenBuiltInBrowser(url) {}
228 |
229 | void onPackageSizeMoreThanPresetSize(currentSize, presetSize) {}
230 |
231 | void onRecognitionComplete() {}
232 | }
233 |
--------------------------------------------------------------------------------
/lib/src/pages/home_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/model/general_experience.dart';
2 | import 'package:armod_flutter_store/src/widgets/column_builder.dart';
3 |
4 | import 'package:armod_flutter_store/src/model/recommand_experience.dart';
5 | import 'package:armod_flutter_store/src/widgets/experience_card.dart';
6 | import 'package:armod_flutter_store/src/widgets/recommend_card.dart';
7 | import 'package:flutter/gestures.dart';
8 | import 'package:flutter/material.dart';
9 | import 'package:armod_flutter_store/src/themes/theme.dart';
10 | import 'package:scroll_snap_list/scroll_snap_list.dart';
11 |
12 | import '../utils.dart';
13 |
14 | class MyHomePage extends StatefulWidget {
15 | MyHomePage({Key? key, this.title}) : super(key: key);
16 |
17 | final String? title;
18 |
19 | @override
20 | _MyHomePageState createState() => _MyHomePageState();
21 | }
22 |
23 | class _MyHomePageState extends State {
24 | GlobalKey sslKey = GlobalKey();
25 | late List recommandARExperience = [];
26 | late List generalExperience = [];
27 |
28 | @override
29 | void initState() {
30 | super.initState();
31 | startToPullRecommand();
32 | }
33 |
34 | void startToPullRecommand() async {
35 | recommandARExperience = await queryRecommand();
36 | generalExperience = await queryGeneralExperence();
37 | setState(() {});
38 | }
39 |
40 | void _onItemFocus(int index) {}
41 |
42 | Widget _buildListItem(BuildContext context, int index) {
43 | return Container(
44 | child: RecommandCard(
45 | recommandItem: recommandARExperience[index],
46 | ));
47 | }
48 |
49 | final PageController controller = PageController(initialPage: 0);
50 | Widget _recommandWidget() {
51 | return Column(
52 | children: [
53 | Container(
54 | margin: EdgeInsets.only(top: 10),
55 | width: AppTheme.fullWidth(context),
56 | height: AppTheme.fullHeight(context) * 0.34,
57 | child: NotificationListener(
58 | onNotification: (OverscrollIndicatorNotification overscroll) {
59 | overscroll.disallowGlow();
60 | return false;
61 | },
62 | child: ScrollSnapList(
63 | onItemFocus: _onItemFocus,
64 | itemSize: 340,
65 | itemBuilder: _buildListItem,
66 | itemCount: recommandARExperience.length,
67 | key: sslKey,
68 | ),
69 | )),
70 | Padding(
71 | padding: EdgeInsets.symmetric(horizontal: 20),
72 | child: Divider(),
73 | ),
74 | ],
75 | );
76 | }
77 |
78 | Widget _buildGeneralExperience(BuildContext context, int index) {
79 | return ExperienceCard(generalExperienceItem: generalExperience[index]);
80 | }
81 |
82 | void _onGeneralARExperienceFocus(int index) {
83 | setState(() {});
84 | }
85 |
86 | Widget _allARexperiences() {
87 | return NotificationListener(
88 | onNotification: (OverscrollIndicatorNotification overscroll) {
89 | overscroll.disallowGlow();
90 | return false;
91 | },
92 | child: SingleChildScrollView(
93 | child: ColumnBuilder(
94 | focusToItem: _onGeneralARExperienceFocus,
95 | itemBuilder: _buildGeneralExperience,
96 | itemCount: generalExperience.length)));
97 | }
98 |
99 | @override
100 | Widget build(BuildContext context) {
101 | return NotificationListener(
102 | onNotification: (OverscrollIndicatorNotification overscroll) {
103 | overscroll.disallowGlow();
104 | return true;
105 | },
106 | child: Container(
107 | color: Colors.transparent.withOpacity(0),
108 | child: SingleChildScrollView(
109 | // physics: BouncingScrollPhysics(),
110 | // dragStartBehavior: DragStartBehavior.down,
111 | child: Column(
112 | crossAxisAlignment: CrossAxisAlignment.start,
113 | mainAxisAlignment: MainAxisAlignment.start,
114 | children: [
115 | _recommandWidget(),
116 | _allARexperiences(),
117 | ],
118 | ),
119 | ),
120 | ));
121 | }
122 |
123 | ///Used to get all recommended showcases of the current APP
124 | Future> queryRecommand() async {
125 | var result = await Utils.queryPhantomCloud("getrecommendslist","POST", null);
126 | List recommandItems = result['data'];
127 | List recommandARExperiences = [];
128 | for (var idx = 0; idx < recommandItems.length; idx++) {
129 | recommandARExperiences
130 | .add(RecommandARExperience.fromJson(recommandItems[idx]));
131 | }
132 | return recommandARExperiences;
133 | }
134 |
135 | ///Get all showcases
136 | Future> queryGeneralExperence() async {
137 | var result = await Utils.queryPhantomCloud('getarexperiencelist',"GET", null);
138 | List generalItems = result['data'];
139 | List generalExperences = [];
140 | for (var idx = 0; idx < generalItems.length; idx++) {
141 | generalExperences.add(GeneralExperence.fromJson(generalItems[idx]));
142 | }
143 | return generalExperences;
144 | }
145 | }
146 |
--------------------------------------------------------------------------------
/lib/src/pages/mainPage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:armod_flutter_store/src/pages/home_page.dart';
3 | import 'package:armod_flutter_store/src/themes/light_color.dart';
4 | import 'package:armod_flutter_store/src/themes/theme.dart';
5 | import 'package:armod_flutter_store/src/widgets/extentions.dart';
6 |
7 | class MainPage extends StatefulWidget {
8 | MainPage({Key? key, this.title}) : super(key: key);
9 |
10 | final String? title;
11 |
12 | @override
13 | _MainPageState createState() => _MainPageState();
14 | }
15 |
16 | class _MainPageState extends State {
17 | bool isHomePageSelected = true;
18 | Widget _appBar() {
19 | return Container(
20 | padding: AppTheme.padding,
21 | child: Row(
22 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
23 | children: [
24 | Spacer(),
25 | ClipRRect(
26 | borderRadius: BorderRadius.all(Radius.circular(13)),
27 | child: Container(
28 | decoration: BoxDecoration(
29 | color: Theme.of(context).backgroundColor,
30 | boxShadow: [
31 | BoxShadow(
32 | color: Color(0xfff8f8f8),
33 | blurRadius: 10,
34 | spreadRadius: 10),
35 | ],
36 | ),
37 | child:
38 | _icon(Icons.document_scanner_outlined, color: Colors.black54),
39 | ),
40 | )
41 | ],
42 | ),
43 | );
44 | }
45 |
46 | Widget _icon(IconData icon, {Color color = LightColor.iconColor}) {
47 | return Container(
48 | padding: EdgeInsets.all(10),
49 | decoration: BoxDecoration(
50 | borderRadius: BorderRadius.all(Radius.circular(13)),
51 | color: Theme.of(context).backgroundColor,
52 | boxShadow: AppTheme.shadow),
53 | child: Icon(
54 | icon,
55 | color: color,
56 | ),
57 | ).ripple(() {}, borderRadius: BorderRadius.all(Radius.circular(13)));
58 | }
59 |
60 | void onBottomIconPressed(int index) {
61 | if (index == 0 || index == 1) {
62 | setState(() {
63 | isHomePageSelected = true;
64 | });
65 | } else {
66 | setState(() {
67 | isHomePageSelected = false;
68 | });
69 | }
70 | }
71 |
72 | @override
73 | Widget build(BuildContext context) {
74 | return Scaffold(
75 | body: SafeArea(
76 | bottom: false,
77 | top: true,
78 | child: Stack(
79 | fit: StackFit.expand,
80 | children: [
81 | SingleChildScrollView(
82 | child: Container(
83 | decoration: BoxDecoration(
84 | gradient: LinearGradient(
85 | colors: [
86 | Color(0xfffbfbfb),
87 | Color(0xfff7f7f7),
88 | ],
89 | begin: Alignment.topCenter,
90 | end: Alignment.bottomCenter,
91 | ),
92 | ),
93 | child: Column(
94 | crossAxisAlignment: CrossAxisAlignment.start,
95 | children: [
96 | // _appBar(),
97 | MyHomePage(),
98 | ],
99 | ),
100 | ),
101 | ),
102 | ],
103 | ),
104 | ),
105 | );
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/lib/src/themes/light_color.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class LightColor {
4 | static const Color background = Color(0XFFFFFFFF);
5 |
6 | static const Color titleTextColor = const Color(0xff1d2635);
7 | static const Color subTitleTextColor = const Color(0xff797878);
8 |
9 | static const Color skyBlue = Color(0xff2890c8);
10 | static const Color lightBlue = Color(0xff5c3dff);
11 |
12 |
13 | static const Color orange = Color(0xffE65829);
14 | static const Color red = Color(0xffF72804);
15 |
16 | static const Color lightGrey = Color(0xffE1E2E4);
17 | static const Color grey = Color(0xffA1A3A6);
18 | static const Color darkgrey = Color(0xff747F8F);
19 |
20 | static const Color iconColor = Color(0xffa8a09b);
21 | static const Color yellowColor = Color(0xfffbba01);
22 |
23 | static const Color black = Color(0xff20262C);
24 | static const Color lightblack = Color(0xff5F5F60);
25 | }
--------------------------------------------------------------------------------
/lib/src/themes/theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import 'light_color.dart';
4 |
5 | class AppTheme {
6 | const AppTheme();
7 | static ThemeData lightTheme = ThemeData(
8 | backgroundColor: LightColor.background,
9 | primaryColor: LightColor.background,
10 | cardTheme: CardTheme(color: LightColor.background),
11 | textTheme: TextTheme(bodyText1: TextStyle(color: LightColor.black)),
12 | iconTheme: IconThemeData(color: LightColor.iconColor),
13 | bottomAppBarColor: LightColor.background,
14 | dividerColor: LightColor.lightGrey,
15 | primaryTextTheme:
16 | TextTheme(bodyText1: TextStyle(color: LightColor.titleTextColor)));
17 |
18 | static TextStyle titleStyle =
19 | const TextStyle(color: LightColor.titleTextColor, fontSize: 16);
20 | static TextStyle subTitleStyle =
21 | const TextStyle(color: LightColor.subTitleTextColor, fontSize: 12);
22 |
23 | static TextStyle h1Style =
24 | const TextStyle(fontSize: 24, fontWeight: FontWeight.bold);
25 | static TextStyle h2Style = const TextStyle(fontSize: 22);
26 | static TextStyle h3Style = const TextStyle(fontSize: 20);
27 | static TextStyle h4Style = const TextStyle(fontSize: 18);
28 | static TextStyle h5Style = const TextStyle(fontSize: 16);
29 | static TextStyle h6Style = const TextStyle(fontSize: 14);
30 |
31 | static List shadow = [
32 | BoxShadow(color: Color(0xfff8f8f8), blurRadius: 10, spreadRadius: 15),
33 | ];
34 |
35 | static EdgeInsets padding =
36 | const EdgeInsets.symmetric(horizontal: 20, vertical: 10);
37 | static EdgeInsets hPadding = const EdgeInsets.symmetric(
38 | horizontal: 10,
39 | );
40 |
41 | static double fullWidth(BuildContext context) {
42 | return MediaQuery.of(context).size.width;
43 | }
44 |
45 | static double fullHeight(BuildContext context) {
46 | return MediaQuery.of(context).size.height;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/lib/src/utils.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'package:http/http.dart' as http;
3 |
4 | import 'config/phantomsxrConfig.dart';
5 |
6 | class Utils {
7 | static final String baseAPIGatewayUrl = "https://phantomsxr.cn/api/v2/";
8 | static Future queryPhantomCloud(String apiAction,String method ,Map? queryBody) async {
9 | Map body = {};
10 | final packageid="com.phantoms.armod";
11 | body['packageid'] = packageid;
12 | if (queryBody != null) body.addAll(queryBody);
13 | dynamic response = null;
14 | if(method=="POST"){
15 | response = await http.post(Uri.parse('$baseAPIGatewayUrl$apiAction'),
16 | headers: {
17 | 'Content-Type': 'application/x-www-form-urlencoded',
18 | 'authorization':'Token ${PhantomsXRConfig.AppToken}',
19 | },
20 | body: body);
21 | }else{
22 | response = await http.get(Uri.parse('$baseAPIGatewayUrl$apiAction?packageid=$packageid'),
23 | headers: {
24 | 'Content-Type': 'application/x-www-form-urlencoded',
25 | 'authorization':'Token ${PhantomsXRConfig.AppToken}',
26 | });
27 | }
28 |
29 | if (response.statusCode == 200) {
30 | dynamic responseData = json.decode(response.body);
31 | return responseData;
32 | } else {
33 | throw Exception('Request Failed');
34 | }
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/lib/src/widgets/column_builder.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 |
3 | class ColumnBuilder extends StatelessWidget {
4 | final IndexedWidgetBuilder itemBuilder;
5 | final MainAxisAlignment mainAxisAlignment;
6 | final MainAxisSize mainAxisSize;
7 | final CrossAxisAlignment crossAxisAlignment;
8 | final TextDirection? textDirection;
9 | final VerticalDirection verticalDirection;
10 | final int itemCount;
11 |
12 | ///Method to manually trigger focus to an item. Call with help of `GlobalKey`.
13 | final void Function(int)? focusToItem;
14 | static BuildContext? buildContext;
15 |
16 | const ColumnBuilder({
17 | Key? key,
18 | required this.itemBuilder,
19 | required this.itemCount,
20 | required this.focusToItem,
21 | this.mainAxisAlignment: MainAxisAlignment.start,
22 | this.mainAxisSize: MainAxisSize.max,
23 | this.crossAxisAlignment: CrossAxisAlignment.center,
24 | this.textDirection,
25 | this.verticalDirection: VerticalDirection.down,
26 | }) : super(key: key);
27 | @override
28 | Widget build(BuildContext context) {
29 | buildContext = context;
30 | return new Column(
31 | children: new List.generate(this.itemCount, _buildListItem).toList(),
32 | );
33 | }
34 |
35 | Widget _buildListItem(int index) {
36 | Widget child;
37 | child = this.itemBuilder(buildContext!, index);
38 |
39 | return GestureDetector(
40 | onTap: () => focusToItem!(index),
41 | child: child,
42 | );
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/lib/src/widgets/customRoute.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class CustomRoute extends MaterialPageRoute {
4 | CustomRoute({required WidgetBuilder builder, RouteSettings? settings})
5 | : super(builder: builder, settings: settings);
6 | @override
7 | Widget buildTransitions(BuildContext context, Animation animation,
8 | Animation secondaryAnimation, Widget child) {
9 | if (settings.name == "MainPage") {
10 | return child;
11 | }
12 | return FadeTransition(
13 | opacity: animation,
14 | child: child,
15 | );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lib/src/widgets/experience_card.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/model/data.dart';
2 | import 'package:armod_flutter_store/src/model/general_experience.dart';
3 | import 'package:armod_flutter_store/src/widgets/subtitle_text.dart';
4 | import 'package:flutter/material.dart';
5 |
6 | import 'package:armod_flutter_store/src/themes/light_color.dart';
7 | import 'package:armod_flutter_store/src/widgets/title_text.dart';
8 |
9 | class ExperienceCard extends StatelessWidget {
10 | final GeneralExperence? generalExperienceItem;
11 | final ValueChanged? onSelected;
12 | ExperienceCard({Key? key, this.generalExperienceItem, this.onSelected})
13 | : super(key: key);
14 | @override
15 | Widget build(BuildContext context) {
16 | return GestureDetector(
17 | onTap: () {
18 | AppData.seleted_project_id = generalExperienceItem!.project_id!;
19 | Navigator.of(context).pushNamed('/detail');
20 | if (onSelected != null) onSelected!(generalExperienceItem!);
21 | },
22 | child: Container(
23 | decoration: BoxDecoration(color: Colors.transparent),
24 | margin: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
25 | child: Row(
26 | crossAxisAlignment: CrossAxisAlignment.start,
27 | children: [
28 | Container(
29 | width: 70,
30 | height: 70,
31 | decoration: BoxDecoration(
32 | image: DecorationImage(
33 | image:
34 | NetworkImage(generalExperienceItem!.project_icon!),
35 | fit: BoxFit.cover),
36 | borderRadius: BorderRadius.all(Radius.circular(15)),
37 | ),
38 | ),
39 | SizedBox(
40 | width: 10,
41 | height: 1,
42 | ),
43 | Container(
44 | width: MediaQuery.of(context).size.width - 120,
45 | child: Column(
46 | crossAxisAlignment: CrossAxisAlignment.start,
47 | children: [
48 | TitleText(
49 | text: generalExperienceItem!.project_name!,
50 | fontSize: 20,
51 | ),
52 | SubTitleText(
53 | text: generalExperienceItem!.project_brief!,
54 | fontSize: 12,
55 | color: LightColor.grey,
56 | ),
57 | Container(
58 | padding: EdgeInsets.only(top: 3),
59 | // width: 250,
60 | child: Divider(),
61 | ),
62 | ],
63 | ),
64 | )
65 | ],
66 | )));
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/lib/src/widgets/extentions.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | extension OnPressed on Widget {
4 | Widget ripple(Function onPressed,
5 | {BorderRadiusGeometry borderRadius =
6 | const BorderRadius.all(Radius.circular(5))}) =>
7 | Stack(
8 | children: [
9 | this,
10 | Positioned(
11 | left: 0,
12 | right: 0,
13 | top: 0,
14 | bottom: 0,
15 | child: TextButton(
16 | style: ButtonStyle(
17 | shape: MaterialStateProperty.all(
18 | RoundedRectangleBorder(borderRadius: borderRadius),
19 | )),
20 | onPressed: () {
21 | onPressed();
22 | },
23 | child: Container()),
24 | )
25 | ],
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/lib/src/widgets/recommend_card.dart:
--------------------------------------------------------------------------------
1 | import 'package:armod_flutter_store/src/model/data.dart';
2 | import 'package:armod_flutter_store/src/model/recommand_experience.dart';
3 | import 'package:armod_flutter_store/src/widgets/subtitle_text.dart';
4 | import 'package:flutter/material.dart';
5 | import 'package:armod_flutter_store/src/themes/light_color.dart';
6 | import 'package:armod_flutter_store/src/widgets/title_text.dart';
7 |
8 | class RecommandCard extends StatelessWidget {
9 | final RecommandARExperience recommandItem;
10 | final ValueChanged? onSelected;
11 | RecommandCard({Key? key, required this.recommandItem, this.onSelected})
12 | : super(key: key);
13 | @override
14 | Widget build(BuildContext context) {
15 | return GestureDetector(
16 | onTap: () {
17 | AppData.seleted_project_id = recommandItem.project_id!;
18 | Navigator.of(context).pushNamed('/detail');
19 | if (onSelected != null) onSelected!(recommandItem);
20 | },
21 | child: Container(
22 | padding: EdgeInsets.only(right: 8),
23 | width: MediaQuery.of(context).size.width * 0.95,
24 | child: Column(
25 | crossAxisAlignment: CrossAxisAlignment.start,
26 | children: [
27 | TitleText(
28 | text: recommandItem.project_name!,
29 | fontSize: 20,
30 | ),
31 | SubTitleText(
32 | text: recommandItem.project_brief!,
33 | fontSize: 12,
34 | color: LightColor.grey,
35 | ),
36 | Container(
37 | height: 200,
38 | decoration: BoxDecoration(
39 | image: DecorationImage(
40 | image: NetworkImage(recommandItem.project_header!),
41 | fit: BoxFit.cover),
42 | color: LightColor.background,
43 | borderRadius: BorderRadius.all(Radius.circular(5)),
44 | boxShadow: [
45 | BoxShadow(
46 | color: Color(0xfff8f8f8),
47 | blurRadius: 5,
48 | spreadRadius: 2),
49 | ],
50 | ),
51 | )
52 | ],
53 | )));
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/lib/src/widgets/subtitle_text.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:armod_flutter_store/src/themes/light_color.dart';
3 | import 'package:google_fonts/google_fonts.dart';
4 |
5 | class SubTitleText extends StatelessWidget {
6 | final String text;
7 | final double fontSize;
8 | final Color color;
9 | final FontWeight fontWeight;
10 | const SubTitleText(
11 | {Key? key,
12 | required this.text,
13 | this.fontSize = 18,
14 | this.color = LightColor.titleTextColor,
15 | this.fontWeight = FontWeight.w500})
16 | : super(key: key);
17 | @override
18 | Widget build(BuildContext context) {
19 | return Container(
20 | height: 32,
21 | child: Text(text,
22 | overflow: TextOverflow.ellipsis,
23 | softWrap: true,
24 | maxLines: 2,
25 | style: GoogleFonts.mulish(
26 | fontSize: fontSize, fontWeight: fontWeight, color: color)));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/lib/src/widgets/title_text.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:armod_flutter_store/src/themes/light_color.dart';
3 | import 'package:google_fonts/google_fonts.dart';
4 |
5 | class TitleText extends StatelessWidget {
6 | final String text;
7 | final double fontSize;
8 | final Color color;
9 | final FontWeight fontWeight;
10 | const TitleText(
11 | {Key? key,
12 | required this.text,
13 | this.fontSize = 18,
14 | this.color = LightColor.titleTextColor,
15 | this.fontWeight = FontWeight.w800
16 | })
17 | : super(key: key);
18 | @override
19 | Widget build(BuildContext context) {
20 | return Text(text,
21 | style: GoogleFonts.mulish(
22 | fontSize: fontSize, fontWeight: fontWeight, color: color));
23 | }
24 | }
--------------------------------------------------------------------------------
/lib/src/widgets/without_scroll_glow.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter/widgets.dart';
3 |
4 | class without_scroll_glow extends MaterialScrollBehavior {
5 | @override
6 | Widget buildOverscrollIndicator(
7 | BuildContext context, Widget child, ScrollableDetails details) {
8 | return child;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: armod_flutter_store
2 | description: A new Flutter project.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 2.0.0-pre.10
19 |
20 | environment:
21 | sdk: ">=2.12.0 <3.0.0"
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 | flutter_armod_widget: ^2.0.0-pre.1
27 | flutter_easyloading: ^3.0.5
28 | flutter_launcher_icons: ^0.9.2
29 | # The following adds the Cupertino Icons font to your application.
30 | # Use with the CupertinoIcons class for iOS style icons.
31 | cupertino_icons: ^1.0.2
32 | google_fonts:
33 | scroll_snap_list: ^0.9.1
34 | http: ^0.13.3
35 | dev_dependencies:
36 | flutter_test:
37 | sdk: flutter
38 |
39 |
40 | # For information on the generic Dart part of this file, see the
41 | # following page: https://dart.dev/tools/pub/pubspec
42 |
43 | # The following section is specific to Flutter.
44 | flutter:
45 |
46 | # The following line ensures that the Material Icons font is
47 | # included with your application, so that you can use the icons in
48 | # the material Icons class.
49 | uses-material-design: true
50 |
51 | # To add assets to your application, add an assets section, like this:
52 | # assets:
53 | # - assets/
54 | # - images/a_dot_burr.jpeg
55 | # - images/a_dot_ham.jpeg
56 |
57 | # An image asset can refer to one or more resolution-specific "variants", see
58 | # https://flutter.dev/assets-and-images/#resolution-aware.
59 |
60 | # For details regarding adding assets from package dependencies, see
61 | # https://flutter.dev/assets-and-images/#from-packages
62 |
63 | # To add custom fonts to your application, add a fonts section here,
64 | # in this "flutter" section. Each entry in this list should have a
65 | # "family" key with the font family name, and a "fonts" key with a
66 | # list giving the asset and other descriptors for the font. For
67 | # example:
68 | # fonts:
69 | # - family: Schyler
70 | # fonts:
71 | # - asset: fonts/Schyler-Regular.ttf
72 | # - asset: fonts/Schyler-Italic.ttf
73 | # style: italic
74 | # - family: Trajan Pro
75 | # fonts:
76 | # - asset: fonts/TrajanPro.ttf
77 | # - asset: fonts/TrajanPro_Bold.ttf
78 | # weight: 700
79 | #
80 | # For details regarding fonts from package dependencies,
81 | # see https://flutter.dev/custom-fonts/#from-packages
82 | flutter_icons:
83 | android: "launcher_icon"
84 | ios: true
85 | image_path: "assets/icon/logo.jpg"
--------------------------------------------------------------------------------
/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:armod_flutter_store/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------