Merge branch 'main' into stack-overlays

pull/1384/head
ggurdin 1 year ago
commit 83b6fb929e

@ -220,11 +220,7 @@ abstract class AppRoutes {
pageBuilder: (context, state) => defaultPageBuilder( pageBuilder: (context, state) => defaultPageBuilder(
context, context,
state, state,
ClassAnalyticsPage( const ClassAnalyticsPage(
// when going to sub-space from within a parent space's analytics, the
// analytics list tiles do not properly update. Adding a unique key to this page is the best fix
// I can find at the moment
key: UniqueKey(),
selectedView: BarChartViewSelection.messages, selectedView: BarChartViewSelection.messages,
), ),
), ),
@ -234,11 +230,7 @@ abstract class AppRoutes {
pageBuilder: (context, state) => defaultPageBuilder( pageBuilder: (context, state) => defaultPageBuilder(
context, context,
state, state,
ClassAnalyticsPage( const ClassAnalyticsPage(
// when going to sub-space from within a parent space's analytics, the
// analytics list tiles do not properly update. Adding a unique key to this page is the best fix
// I can find at the moment
key: UniqueKey(),
selectedView: BarChartViewSelection.grammar, selectedView: BarChartViewSelection.grammar,
), ),
), ),

@ -45,6 +45,7 @@ class ChatEventList extends StatelessWidget {
// after the chat event list mounts, if the user hasn't yet seen this instruction // after the chat event list mounts, if the user hasn't yet seen this instruction
// card, attach it on top of the first shown message // card, attach it on top of the first shown message
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (events.isEmpty) return;
controller.pangeaController.instructions.show( controller.pangeaController.instructions.show(
context, context,
InstructionsEnum.clickMessage, InstructionsEnum.clickMessage,

@ -34,12 +34,11 @@ class ClassController extends BaseController {
Future<void> fixClassPowerLevels() async { Future<void> fixClassPowerLevels() async {
try { try {
final List<Future<void>> classFixes = [];
final teacherSpaces = await _pangeaController final teacherSpaces = await _pangeaController
.matrixState.client.classesAndExchangesImTeaching; .matrixState.client.classesAndExchangesImTeaching;
for (final room in teacherSpaces) { final List<Future<void>> classFixes = List<Room>.from(teacherSpaces)
classFixes.add(room.setClassPowerLevels()); .map((adminSpace) => adminSpace.setClassPowerLevels())
} .toList();
await Future.wait(classFixes); await Future.wait(classFixes);
} catch (err, stack) { } catch (err, stack) {
debugger(when: kDebugMode); debugger(when: kDebugMode);

@ -3,11 +3,13 @@ import 'package:flutter/scheduler.dart';
class MeasurableWidget extends StatefulWidget { class MeasurableWidget extends StatefulWidget {
final Widget child; final Widget child;
Function? triggerMeasure;
final Function(Size? size, Offset? position) onChange; final Function(Size? size, Offset? position) onChange;
MeasurableWidget({super.key, required this.onChange, required this.child}); const MeasurableWidget({
super.key,
required this.onChange,
required this.child,
});
@override @override
_WidgetSizeState createState() => _WidgetSizeState(); _WidgetSizeState createState() => _WidgetSizeState();
@ -26,20 +28,22 @@ class _WidgetSizeState extends State<MeasurableWidget> {
final context = widgetKey.currentContext; final context = widgetKey.currentContext;
if (context == null) return; if (context == null) return;
final newSize = context.size;
final RenderBox? box = final RenderBox? box =
widgetKey.currentContext?.findRenderObject() as RenderBox?; widgetKey.currentContext?.findRenderObject() as RenderBox?;
final Offset? position = box?.localToGlobal(Offset.zero);
if (oldPosition != null) { if (box != null && box.hasSize) {
if (oldPosition!.dx == position!.dx && oldPosition!.dy == position.dy) { final Offset position = box.localToGlobal(Offset.zero);
return;
if (oldPosition != null) {
if (oldPosition!.dx == position.dx && oldPosition!.dy == position.dy) {
return;
}
} }
} oldPosition = position;
oldPosition = position;
widget.onChange(newSize, position); final newSize = context.size;
widget.onChange(newSize, position);
}
} }
@override @override

@ -81,10 +81,14 @@ class OverlayUtil {
try { try {
final LayerLinkAndKey layerLinkAndKey = final LayerLinkAndKey layerLinkAndKey =
MatrixState.pAnyState.layerLinkAndKey(transformTargetId); MatrixState.pAnyState.layerLinkAndKey(transformTargetId);
if (layerLinkAndKey.key.currentContext == null) {
debugPrint("layerLinkAndKey.key.currentContext is null");
return;
}
final Offset cardOffset = _calculateCardOffset( final Offset cardOffset = _calculateCardOffset(
cardSize: cardSize, cardSize: cardSize,
transformTargetKey: layerLinkAndKey.key, transformTargetContext: layerLinkAndKey.key.currentContext!,
); );
final Widget child = Material( final Widget child = Material(
@ -118,16 +122,16 @@ class OverlayUtil {
/// identified by [transformTargetKey] /// identified by [transformTargetKey]
static Offset _calculateCardOffset({ static Offset _calculateCardOffset({
required Size cardSize, required Size cardSize,
required LabeledGlobalKey transformTargetKey, required BuildContext transformTargetContext,
final double minPadding = 10.0, final double minPadding = 10.0,
}) { }) {
// debugger(when: kDebugMode); // debugger(when: kDebugMode);
//Note: assumes overlay in chatview //Note: assumes overlay in chatview
final OverlayConstraints constraints = final OverlayConstraints constraints =
ChatViewConstraints(transformTargetKey.currentContext!); ChatViewConstraints(transformTargetContext);
final RenderObject? targetRenderBox = final RenderObject? targetRenderBox =
transformTargetKey.currentContext!.findRenderObject(); transformTargetContext.findRenderObject();
if (targetRenderBox == null) return Offset.zero; if (targetRenderBox == null) return Offset.zero;
final Offset transformTargetOffset = final Offset transformTargetOffset =
(targetRenderBox as RenderBox).localToGlobal(Offset.zero); (targetRenderBox as RenderBox).localToGlobal(Offset.zero);

@ -5,10 +5,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: "3ff770dfff04a67b0863dff205a0936784de1b87a5e99b11c693fc10e66a9ce3" sha256: "0816f12bbbd9e21f72ea8592b11bce4a628d4e5cb7a81ff9f1eee4f3dc23206e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.12" version: "1.3.37"
async: async:
dependency: transitive dependency: transitive
description: description:
@ -61,50 +61,50 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
sha256: c129209ba55f3d4272c89fb4a4994c15bea77fb6de63a82d45fb6bc5c94e4355 sha256: fae4ab4317c2a7afb13d44ef1e3f9f28a630e10016bc5cfe761e8e6a0ed7816a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.1" version: "3.1.0"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
sha256: "5fab93f5b354648efa62e7cc829c90efb68c8796eecf87e0888cae2d5f3accd4" sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.5.2" version: "5.1.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: "18b35ce111b0a4266abf723c825bcf9d4e2519d13638cc7f06f2a8dd960c75bc" sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.17.2"
firebase_messaging: firebase_messaging:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_messaging name: firebase_messaging
sha256: dc010a6436333029fba858415fe65887c3fe44d8f6e6ea162bb8d3dd764fbcb6 sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.2.1" version: "15.0.1"
firebase_messaging_platform_interface: firebase_messaging_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_platform_interface name: firebase_messaging_platform_interface
sha256: abda2d766486096eb1c568c7b20aef46180596c8b0708190b929133ff03e0a8d sha256: c38c27f58cb6a88b8c145018d0567802376549c32a60098a13f3bdf3ddea326f
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.10" version: "4.5.39"
firebase_messaging_web: firebase_messaging_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_web name: firebase_messaging_web
sha256: "7a0ce957bd2210e8636325152234728874dad039f1c7271ba1be5c752fdc5888" sha256: "8502849c2f232f7db338c052e045442207a0db82bd03ff14be3c80897dd8c26c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.11" version: "3.8.9"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -120,46 +120,62 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
js: leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
url: "https://pub.dev"
source: hosted
version: "10.0.4"
leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: js name: leak_tracker_flutter_testing
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.7" version: "3.0.3"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16" version: "0.12.16+1"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.0" version: "0.8.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.12.0"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.3" version: "1.9.0"
pedantic: pedantic:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -225,10 +241,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.1" version: "0.7.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -237,14 +253,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
url: "https://pub.dev"
source: hosted
version: "14.2.1"
web: web:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.5.1"
sdks: sdks:
dart: ">=3.2.0-194.0.dev <4.0.0" dart: ">=3.3.0 <4.0.0"
flutter: ">=1.20.0" flutter: ">=3.18.0-18.0.pre.54"

@ -10,8 +10,8 @@ environment:
flutter: ">=1.20.0" flutter: ">=1.20.0"
dependencies: dependencies:
firebase_core: ^2.4.1 firebase_core: ^3.1.0
firebase_messaging: ^14.2.1 firebase_messaging: ^15.0.1
flutter: flutter:
sdk: flutter sdk: flutter

@ -13,10 +13,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: "3dee3db3468c5f4640a4e8aa9c1e22561c298976d8c39ed2fdd456a9a3db26e1" sha256: "0816f12bbbd9e21f72ea8592b11bce4a628d4e5cb7a81ff9f1eee4f3dc23206e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.32" version: "1.3.37"
adaptive_dialog: adaptive_dialog:
dependency: "direct main" dependency: "direct main"
description: description:
@ -460,74 +460,74 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_analytics name: firebase_analytics
sha256: c56bcc7abc6caacc33e8495bc604a5861d25ce371f1b06476ae226e7cbb21d4c sha256: "3363045ecc3141673262493eea4bd888c2c627c5e986b8766fa5f4bfafdbcdd8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.10.4" version: "11.0.1"
firebase_analytics_platform_interface: firebase_analytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_analytics_platform_interface name: firebase_analytics_platform_interface
sha256: e8cdb845820eaa5f1d29de31a72aab8addbbffc6483f1e5123a9d0b611735285 sha256: "5a2c14e18bf6c4423a6462113d85d3dee534a8bdd620391729e9570632d2aec4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.10.5" version: "4.0.1"
firebase_analytics_web: firebase_analytics_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_analytics_web name: firebase_analytics_web
sha256: e2fabebdf16bb99506a1e7e84f5effd6313c90678e6ea1876d301f057483a198 sha256: db4bdb166aae9e5a0ce7791672401db139cd342369a92f7eaf020dbff9df2998
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.7+4" version: "0.5.7+9"
firebase_core: firebase_core:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
sha256: "4aef2a23d0f3265545807d68fbc2f76a6b994ca3c778d88453b99325abd63284" sha256: fae4ab4317c2a7afb13d44ef1e3f9f28a630e10016bc5cfe761e8e6a0ed7816a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.30.1" version: "3.1.0"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.1.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: "67f2fcc600fc78c2f731c370a3a5e6c87ee862e3a2fba6f951eca6d5dafe5c29" sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.16.0" version: "2.17.2"
firebase_messaging: firebase_messaging:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_messaging name: firebase_messaging
sha256: "73a43445a7f8c6e6327f0ec3922b1c99a9f4a0e4896197bfe10a88259f775aad" sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.9.1" version: "15.0.1"
firebase_messaging_platform_interface: firebase_messaging_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_platform_interface name: firebase_messaging_platform_interface
sha256: "675527aadccb679c9dfd43a4558690427123ac1e99f03eef5bbce9dc216edc91" sha256: c38c27f58cb6a88b8c145018d0567802376549c32a60098a13f3bdf3ddea326f
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.5.34" version: "4.5.39"
firebase_messaging_web: firebase_messaging_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_web name: firebase_messaging_web
sha256: "66deff69307f54fc7a20732b4278af327ae378b86607d5ac877d8f2201fe881e" sha256: "8502849c2f232f7db338c052e045442207a0db82bd03ff14be3c80897dd8c26c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.8.4" version: "3.8.9"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@ -975,6 +975,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
globbing:
dependency: transitive
description:
name: globbing
sha256: "4f89cfaf6fa74c9c1740a96259da06bd45411ede56744e28017cc534a12b6e2d"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
go_router: go_router:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1167,6 +1175,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.8+1" version: "0.3.8+1"
injector:
dependency: transitive
description:
name: injector
sha256: ed389bed5b48a699d5b9561c985023d0d5cc88dd5ff2237aadcce5a5ab433e4e
url: "https://pub.dev"
source: hosted
version: "3.0.0"
integration_test: integration_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -1749,6 +1765,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
properties:
dependency: transitive
description:
name: properties
sha256: "333f427dd4ed07bdbe8c75b9ff864a1e70b5d7a8426a2e8bdd457b65ae5ac598"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1949,6 +1973,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.2.0" version: "8.2.0"
sentry_dart_plugin:
dependency: "direct dev"
description:
name: sentry_dart_plugin
sha256: e81fa3e0ffabd04fdcfbfecd6468d4a342f02ab33edca09708c61bcd2be42b7d
url: "https://pub.dev"
source: hosted
version: "1.7.1"
sentry_flutter: sentry_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
@ -2234,6 +2266,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0+1" version: "3.1.0+1"
system_info2:
dependency: transitive
description:
name: system_info2
sha256: "65206bbef475217008b5827374767550a5420ce70a04d2d7e94d1d2253f3efc9"
url: "https://pub.dev"
source: hosted
version: "4.0.0"
tar: tar:
dependency: transitive dependency: transitive
description: description:

@ -103,9 +103,9 @@ dependencies:
country_picker: ^2.0.25 country_picker: ^2.0.25
csv: ^6.0.0 csv: ^6.0.0
fl_chart: ^0.67.0 fl_chart: ^0.67.0
firebase_analytics: ^10.10.2 firebase_analytics: ^11.0.1
firebase_core: ^2.30.0 firebase_core: ^3.1.0
firebase_messaging: ^14.8.2 firebase_messaging: ^15.0.1
flutter_dotenv: ^5.1.0 flutter_dotenv: ^5.1.0
fcm_shared_isolate: fcm_shared_isolate:
path: pangea_packages/fcm_shared_isolate path: pangea_packages/fcm_shared_isolate

Loading…
Cancel
Save