Skip to content

Commit c822405

Browse files
authored
Merge branch 'main' into flutter_3_29_upgrade_fix
2 parents 9105130 + c3a9950 commit c822405

39 files changed

+652
-105
lines changed

CHANGELOG.md

+226
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,232 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## 2025-02-24
7+
8+
### Changes
9+
10+
---
11+
12+
Packages with breaking changes:
13+
14+
- There are no breaking changes in this release.
15+
16+
Packages with other changes:
17+
18+
- [`ensemble` - `v1.1.27`](#ensemble---v1127)
19+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
20+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
21+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
22+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
23+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
24+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
25+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
26+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
27+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
28+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
29+
30+
Packages with dependency updates only:
31+
32+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
33+
34+
- `ensemble_chat` - `v0.0.1+1`
35+
- `ensemble_camera` - `v0.0.1+1`
36+
- `ensemble_auth` - `v1.0.1`
37+
- `ensemble_contacts` - `v0.0.1+1`
38+
- `ensemble_location` - `v0.0.1+1`
39+
- `ensemble_file_manager` - `v0.0.1+1`
40+
- `ensemble_connect` - `v0.0.1+1`
41+
- `ensemble_bluetooth` - `v0.0.1+1`
42+
- `ensemble_deeplink` - `v0.0.1+1`
43+
- `ensemble_network_info` - `v0.0.1+1`
44+
45+
---
46+
47+
#### `ensemble` - `v1.1.27`
48+
49+
- **FIX**: handle exceptions in getLocalAssetFullPath. ([8844d487](https://github.com/ensembleUI/ensemble/commit/8844d4874ddde3e7a3244e663c5cdcf0ee6520b7))
50+
51+
52+
## 2025-02-21
53+
54+
### Changes
55+
56+
---
57+
58+
Packages with breaking changes:
59+
60+
- There are no breaking changes in this release.
61+
62+
Packages with other changes:
63+
64+
- [`ensemble` - `v1.1.26`](#ensemble---v1126)
65+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
66+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
67+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
68+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
69+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
70+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
71+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
72+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
73+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
74+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
75+
76+
Packages with dependency updates only:
77+
78+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
79+
80+
- `ensemble_auth` - `v1.0.1`
81+
- `ensemble_file_manager` - `v0.0.1+1`
82+
- `ensemble_bluetooth` - `v0.0.1+1`
83+
- `ensemble_location` - `v0.0.1+1`
84+
- `ensemble_camera` - `v0.0.1+1`
85+
- `ensemble_connect` - `v0.0.1+1`
86+
- `ensemble_deeplink` - `v0.0.1+1`
87+
- `ensemble_network_info` - `v0.0.1+1`
88+
- `ensemble_chat` - `v0.0.1+1`
89+
- `ensemble_contacts` - `v0.0.1+1`
90+
91+
---
92+
93+
#### `ensemble` - `v1.1.26`
94+
95+
- **FIX**: ensure EnsembleConfigService is initialized before accessing config. ([1f8df899](https://github.com/ensembleUI/ensemble/commit/1f8df8997f7a9ab2dffae88ad96ac898cb49fa0a))
96+
97+
98+
## 2025-02-21
99+
100+
### Changes
101+
102+
---
103+
104+
Packages with breaking changes:
105+
106+
- There are no breaking changes in this release.
107+
108+
Packages with other changes:
109+
110+
- [`ensemble` - `v1.1.25`](#ensemble---v1125)
111+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
112+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
113+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
114+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
115+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
116+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
117+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
118+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
119+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
120+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
121+
122+
Packages with dependency updates only:
123+
124+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
125+
126+
- `ensemble_auth` - `v1.0.1`
127+
- `ensemble_chat` - `v0.0.1+1`
128+
- `ensemble_location` - `v0.0.1+1`
129+
- `ensemble_camera` - `v0.0.1+1`
130+
- `ensemble_bluetooth` - `v0.0.1+1`
131+
- `ensemble_file_manager` - `v0.0.1+1`
132+
- `ensemble_deeplink` - `v0.0.1+1`
133+
- `ensemble_contacts` - `v0.0.1+1`
134+
- `ensemble_connect` - `v0.0.1+1`
135+
- `ensemble_network_info` - `v0.0.1+1`
136+
137+
---
138+
139+
#### `ensemble` - `v1.1.25`
140+
141+
142+
## 2025-02-20
143+
144+
### Changes
145+
146+
---
147+
148+
Packages with breaking changes:
149+
150+
- There are no breaking changes in this release.
151+
152+
Packages with other changes:
153+
154+
- [`ensemble` - `v1.1.24`](#ensemble---v1124)
155+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
156+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
157+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
158+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
159+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
160+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
161+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
162+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
163+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
164+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
165+
166+
Packages with dependency updates only:
167+
168+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
169+
170+
- `ensemble_contacts` - `v0.0.1+1`
171+
- `ensemble_location` - `v0.0.1+1`
172+
- `ensemble_chat` - `v0.0.1+1`
173+
- `ensemble_file_manager` - `v0.0.1+1`
174+
- `ensemble_auth` - `v1.0.1`
175+
- `ensemble_connect` - `v0.0.1+1`
176+
- `ensemble_deeplink` - `v0.0.1+1`
177+
- `ensemble_network_info` - `v0.0.1+1`
178+
- `ensemble_camera` - `v0.0.1+1`
179+
- `ensemble_bluetooth` - `v0.0.1+1`
180+
181+
---
182+
183+
#### `ensemble` - `v1.1.24`
184+
185+
- Bump "ensemble" to `1.1.24`.
186+
187+
188+
## 2025-02-19
189+
190+
### Changes
191+
192+
---
193+
194+
Packages with breaking changes:
195+
196+
- There are no breaking changes in this release.
197+
198+
Packages with other changes:
199+
200+
- [`ensemble` - `v1.1.23`](#ensemble---v1123)
201+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
202+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
203+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
204+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
205+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
206+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
207+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
208+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
209+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
210+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
211+
212+
Packages with dependency updates only:
213+
214+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
215+
216+
- `ensemble_file_manager` - `v0.0.1+1`
217+
- `ensemble_bluetooth` - `v0.0.1+1`
218+
- `ensemble_auth` - `v1.0.1`
219+
- `ensemble_chat` - `v0.0.1+1`
220+
- `ensemble_contacts` - `v0.0.1+1`
221+
- `ensemble_location` - `v0.0.1+1`
222+
- `ensemble_camera` - `v0.0.1+1`
223+
- `ensemble_connect` - `v0.0.1+1`
224+
- `ensemble_deeplink` - `v0.0.1+1`
225+
- `ensemble_network_info` - `v0.0.1+1`
226+
227+
---
228+
229+
#### `ensemble` - `v1.1.23`
230+
231+
6232
## 2025-02-13
7233

8234
### Changes

modules/auth/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies:
2828
ensemble:
2929
git:
3030
url: https://github.com/EnsembleUI/ensemble.git
31-
ref: ensemble-v1.1.22
31+
ref: ensemble-v1.1.27
3232
path: modules/ensemble
3333

3434
ensemble_ts_interpreter:

modules/bracket/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies:
1414
ensemble:
1515
git:
1616
url: https://github.com/EnsembleUI/ensemble.git
17-
ref: ensemble-v1.1.22
17+
ref: ensemble-v1.1.27
1818
path: modules/ensemble
1919

2020
dev_dependencies:

modules/camera/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies:
1515
ensemble:
1616
git:
1717
url: https://github.com/EnsembleUI/ensemble.git
18-
ref: ensemble-v1.1.22
18+
ref: ensemble-v1.1.27
1919
path: modules/ensemble
2020
ensemble_ts_interpreter:
2121
git:

modules/chat/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.22
16+
ref: ensemble-v1.1.27
1717
path: modules/ensemble
1818

1919
ensemble_ts_interpreter:

modules/connect/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.22
16+
ref: ensemble-v1.1.27
1717
path: modules/ensemble
1818

1919
plaid_flutter: ^3.1.2

modules/contacts/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.22
16+
ref: ensemble-v1.1.27
1717
path: modules/ensemble
1818

1919
flutter_contacts: ^1.1.7+1

modules/deeplink/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.22
16+
ref: ensemble-v1.1.27
1717
path: modules/ensemble
1818

1919
flutter_branch_sdk: ^7.0.1

modules/ensemble/CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
## 1.1.27
2+
3+
- **FIX**: handle exceptions in getLocalAssetFullPath. ([8844d487](https://github.com/ensembleUI/ensemble/commit/8844d4874ddde3e7a3244e663c5cdcf0ee6520b7))
4+
5+
## 1.1.26
6+
7+
- **FIX**: ensure EnsembleConfigService is initialized before accessing config. ([1f8df899](https://github.com/ensembleUI/ensemble/commit/1f8df8997f7a9ab2dffae88ad96ac898cb49fa0a))
8+
9+
## 1.1.25
10+
11+
## 1.1.24
12+
13+
- Bump "ensemble" to `1.1.24`.
14+
15+
## 1.1.23
16+
117
## 1.1.22
218

319
- **REFACTOR**: remove no internet widget. ([e03359b2](https://github.com/ensembleUI/ensemble/commit/e03359b2dd6b1290bea39c71c69e2a3d5ad27c13))

modules/ensemble/lib/ensemble.dart

+5-3
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class Ensemble extends WithEnsemble with EnsembleRouteObserver {
106106
try {
107107
// this code block is guaranteed to run at most once
108108
await StorageManager().init();
109+
await SecretsStore().initialize();
109110
Device().initDeviceInfo();
110111
AppInfo().initPackageInfo(_config);
111112
_completer!.complete();
@@ -139,9 +140,10 @@ class Ensemble extends WithEnsemble with EnsembleRouteObserver {
139140
if (_config != null) {
140141
return Future<EnsembleConfig>.value(_config);
141142
}
142-
// Intialize the config service to get `ensemble-config.yaml` file to access the configuration using static property as `EnsembleConfigService.config`
143-
await EnsembleConfigService.initialize();
144-
await SecretsStore().initialize();
143+
// Initialize the config service to get `ensemble-config.yaml` file to access the configuration using static property as `EnsembleConfigService.config`
144+
if (!EnsembleConfigService.isInitialized) {
145+
await EnsembleConfigService.initialize();
146+
}
145147

146148
// get the config YAML
147149
final YamlMap yamlMap = EnsembleConfigService.config;

modules/ensemble/lib/framework/bindings.dart

+29
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,18 @@ abstract class BindingSource {
4444
String binding, DataContext dataContext) {
4545
RegExp variableNameRegex = RegExp('^[0-9a-z_]+', caseSensitive: false);
4646

47+
// Check for device bindings (both patterns)
48+
String deviceExpr = 'ensemble.device.';
49+
if (binding.startsWith(deviceExpr)) {
50+
// For ensemble.device.property pattern
51+
String property = binding.substring(deviceExpr.length);
52+
return DeviceBindingSource(property);
53+
} else if (binding.startsWith('device.')) {
54+
// For device.property pattern
55+
String property = binding.substring('device.'.length);
56+
return DeviceBindingSource(property);
57+
}
58+
4759
// bindable storage
4860
String storageExpr = 'ensemble.storage.';
4961
String userExpr = 'ensemble.user.';
@@ -121,6 +133,18 @@ abstract class BindingSource {
121133
String variable = expression.substring(2, expression.length - 1).trim();
122134
RegExp variableNameRegex = RegExp('^[0-9a-z_]+', caseSensitive: false);
123135

136+
// Check for device bindings (both patterns)
137+
String deviceExpr = 'ensemble.device.';
138+
if (variable.startsWith(deviceExpr)) {
139+
// For ensemble.device.property pattern
140+
String property = variable.substring(deviceExpr.length);
141+
return DeviceBindingSource(property);
142+
} else if (variable.startsWith('device.')) {
143+
// For device.property pattern
144+
String property = variable.substring('device.'.length);
145+
return DeviceBindingSource(property);
146+
}
147+
124148
// storage bindable
125149
String storageExpr = 'ensemble.storage.';
126150
String userExpr = 'ensemble.user.';
@@ -202,6 +226,11 @@ class StorageBindingSource extends BindingSource {
202226
StorageBindingSource(super.modelId);
203227
}
204228

229+
/// bindable source backed by device
230+
class DeviceBindingSource extends BindingSource {
231+
DeviceBindingSource(super.modelId);
232+
}
233+
205234
/// TODO: consolidate this with StorageBindingSource
206235
class SystemStorageBindingSource extends BindingSource {
207236
SystemStorageBindingSource(super.modelId, {required this.storagePrefix});

0 commit comments

Comments
 (0)