From acb85a8c7894bae6ac22733da43778233152eb80 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:29:18 +0200 Subject: [PATCH 01/17] android version issue on apk, working on release-on-tag github action --- .github/workflows/create_release_on_tag.yml | 23 ++++++++++++++++----- android/app/build.gradle | 15 ++++---------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.github/workflows/create_release_on_tag.yml b/.github/workflows/create_release_on_tag.yml index 61407422..c1cf0c60 100644 --- a/.github/workflows/create_release_on_tag.yml +++ b/.github/workflows/create_release_on_tag.yml @@ -10,15 +10,18 @@ jobs: name: Create Release and Upload APK runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@master - - - name: Set up JDK 1.8 - uses: actions/setup-java@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: 'adopt' # See 'Supported distributions' for available options java-version: '17' + # - name: Set up JDK 17 + # uses: actions/setup-java@v4 + # with: + # distribution: 'adopt' # See 'Supported distributions' for available options + # java-version: '17' + - name: Cache Flutter id: cache-flutter uses: actions/cache@v3 @@ -28,6 +31,16 @@ jobs: ~/.pub-cache key: flutter-${{ hashFiles('**/pubspec.lock') }} + - name: Cache Gradle + id: cache-gradle + uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper/ + key: gradle-ubuntu-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + + - if: ${{ steps.cache-flutter.outputs.cache-hit != 'true' }} name: Install Flutter run: git clone https://github.com/flutter/flutter.git --depth 1 -b stable $FOLDER diff --git a/android/app/build.gradle b/android/app/build.gradle index e70b25af..e92b3fa4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -5,7 +5,7 @@ plugins { } def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') +def localPropertiesFile = project.rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) @@ -13,7 +13,7 @@ if (localPropertiesFile.exists()) { } def keyProperties = new Properties() -def keyPropertiesFile = rootProject.file('key.properties') +def keyPropertiesFile = project.rootProject.file('key.properties') def signingConfigExists = false if (keyPropertiesFile.exists()) { @@ -23,15 +23,8 @@ if (keyPropertiesFile.exists()) { } } -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') ?: '1' +def flutterVersionName = localProperties.getProperty('flutter.versionName') ?: '1.0' android { namespace "dk.carp.studies_app" From a2a44040519e630b380fc3a453d416ac755c53f9 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Mon, 20 Oct 2025 11:27:28 +0300 Subject: [PATCH 02/17] fixing missing status top bar in ios, minor visual details --- ios/Podfile.lock | 4 +-- ios/Runner/Info.plist | 2 -- lib/ui/cards/steps_card.dart | 2 +- lib/ui/pages/study_details_page.dart | 1 + pubspec.lock | 48 ++++++++++++++-------------- 5 files changed, 28 insertions(+), 29 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 0384b5ed..0e352af5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -97,7 +97,7 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - SwiftProtobuf (1.31.1) + - SwiftProtobuf (1.32.0) - url_launcher_ios (0.0.1): - Flutter - video_player_avfoundation (0.0.1): @@ -279,7 +279,7 @@ SPEC CHECKSUMS: sensors_plus: 6a11ed0c2e1d0bd0b20b4029d3bad27d96e0c65b shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 - SwiftProtobuf: e02f51c8c2df5845657aee2d4de9d61bf50ef788 + SwiftProtobuf: 81e341191afbddd64aa031bd12862dccfab2f639 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 301e663d..9570d6a3 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -115,7 +115,5 @@ UIViewControllerBasedStatusBarAppearance - UIStatusBarHidden - diff --git a/lib/ui/cards/steps_card.dart b/lib/ui/cards/steps_card.dart index f8caef84..d48823b8 100644 --- a/lib/ui/cards/steps_card.dart +++ b/lib/ui/cards/steps_card.dart @@ -37,7 +37,7 @@ class StepsCardWidgetState extends State { Row( children: [ Text( - '$_step', + _step > 0 ? '$_step' : '0', style: dataVizCardTitleNumber.copyWith( color: Theme.of(context).extension()!.grey900!, ), diff --git a/lib/ui/pages/study_details_page.dart b/lib/ui/pages/study_details_page.dart index b4a6102b..3270e39f 100644 --- a/lib/ui/pages/study_details_page.dart +++ b/lib/ui/pages/study_details_page.dart @@ -249,6 +249,7 @@ class StudyDetailsPage extends StatelessWidget { Widget _buildSectionCard(BuildContext context, List children) { return Card( + margin: EdgeInsets.zero, color: Theme.of(context).extension()!.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0), diff --git a/pubspec.lock b/pubspec.lock index 4598dacb..885a040f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -205,10 +205,10 @@ packages: dependency: "direct main" description: name: camera_android_camerax - sha256: d04649fab70a5d586a7b26d5ac26f700656b6aab26a16bfd5a29302589b7a973 + sha256: "92dcc36e8ff2fa1ea3acdbb609ca2976cded55dceb719b4869c124c6d011f110" url: "https://pub.dev" source: hosted - version: "0.6.23" + version: "0.6.23+2" camera_avfoundation: dependency: transitive description: @@ -429,10 +429,10 @@ packages: dependency: "direct main" description: name: country_code_picker - sha256: c9e8c012472c8060f5a705dabef223677801cd9eb49e684aecee705edeceacc8 + sha256: f0411f4833b6f98e8b7215f4fa3813bcc88e50f13925f70a170dbd36e3e447f5 url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.4.1" coverage: dependency: transitive description: @@ -565,10 +565,10 @@ packages: dependency: transitive description: name: exception_templates - sha256: "517f7c770da690073663f867ee2057ae2f4ffb28edae9da9faa624aa29ac76eb" + sha256: "57adef649aa2a99a5b324a921355ee9214472a007ca257cbec2f3abae005c93e" url: "https://pub.dev" source: hosted - version: "0.3.1" + version: "0.3.2" expandable: dependency: "direct main" description: @@ -706,10 +706,10 @@ packages: dependency: transitive description: name: flutter_local_notifications - sha256: "7ed76be64e8a7d01dfdf250b8434618e2a028c9dfa2a3c41dc9b531d4b3fc8a5" + sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875" url: "https://pub.dev" source: hosted - version: "19.4.2" + version: "19.5.0" flutter_local_notifications_linux: dependency: transitive description: @@ -743,10 +743,10 @@ packages: dependency: "direct main" description: name: flutter_plugin_android_lifecycle - sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31 + sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" url: "https://pub.dev" source: hosted - version: "2.0.30" + version: "2.0.32" flutter_secure_storage: dependency: transitive description: @@ -1057,10 +1057,10 @@ packages: dependency: transitive description: name: lazy_memo - sha256: dcb30b4184a6d767e1d779d74ce784d752d38313b8fb4bad6b659ae7af4bb34d + sha256: f3f4afe9c4ccf0f29082213c5319a3711041446fc41cd325a9bf91724d4ea9c8 url: "https://pub.dev" source: hosted - version: "0.2.3" + version: "0.2.5" leak_tracker: dependency: transitive description: @@ -1433,10 +1433,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db" + sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 url: "https://pub.dev" source: hosted - version: "2.2.18" + version: "2.2.20" path_provider_foundation: dependency: transitive description: @@ -1609,10 +1609,10 @@ packages: dependency: "direct main" description: name: qr_code_scanner_plus - sha256: a0f1ac8e13299b3db2646635f252fe2ec67222b848b24ed34d11052faf080bfa + sha256: "41f4a834a48d670d25e3917cb9f1dbb4742298a0b4ab60d82416b295b73931e1" url: "https://pub.dev" source: hosted - version: "2.0.12" + version: "2.0.13" recase: dependency: transitive description: @@ -1697,10 +1697,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "0b0f98d535319cb5cdd4f65783c2a54ee6d417a2f093dbb18be3e36e4c3d181f" + sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" url: "https://pub.dev" source: hosted - version: "2.4.14" + version: "2.4.15" shared_preferences_foundation: dependency: transitive description: @@ -2054,10 +2054,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: c0fb544b9ac7efa10254efaf00a951615c362d1ea1877472f8f6c0fa00fcf15b + sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" url: "https://pub.dev" source: hosted - version: "6.3.23" + version: "6.3.24" url_launcher_ios: dependency: transitive description: @@ -2158,10 +2158,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: "6cfe0b1e102522eda1e139b82bf00602181c5844fd2885340f595fb213d74842" + sha256: cf768d02924b91e333e2bc1ff928528f57d686445874f383bafab12d0bdfc340 url: "https://pub.dev" source: hosted - version: "2.8.14" + version: "2.8.17" video_player_avfoundation: dependency: transitive description: @@ -2174,10 +2174,10 @@ packages: dependency: transitive description: name: video_player_platform_interface - sha256: cf2a1d29a284db648fd66cbd18aacc157f9862d77d2cc790f6f9678a46c1db5a + sha256: "9e372520573311055cb353b9a0da1c9d72b094b7ba01b8ecc66f28473553793b" url: "https://pub.dev" source: hosted - version: "6.4.0" + version: "6.5.0" video_player_web: dependency: transitive description: From a068946b2e193053810db606e09f7133c183dcf8 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:31:35 +0300 Subject: [PATCH 03/17] fixing persistent messages through different studies --- lib/ui/pages/study_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ui/pages/study_page.dart b/lib/ui/pages/study_page.dart index f96e3a42..33f44fc4 100644 --- a/lib/ui/pages/study_page.dart +++ b/lib/ui/pages/study_page.dart @@ -68,9 +68,9 @@ class StudyPageState extends State { if (LocalSettings().isAnonymous) { items.add(AnonymousCard()); } - if (bloc.messages.isNotEmpty) { + if (widget.model.messages.isEmpty) { items.add(_buildAnnouncementsTitle(context)); - items.addAll(bloc.messages.map((message) { + items.addAll(widget.model.messages.map((message) { return _announcementCard(context, message); }).toList()); } From 0b6bc9575f78cb3d0ee056e16c8ca34c84a7dc5d Mon Sep 17 00:00:00 2001 From: bardram Date: Fri, 24 Oct 2025 09:31:31 +0200 Subject: [PATCH 04/17] fix of ! operator --- lib/ui/pages/task_list_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ui/pages/task_list_page.dart b/lib/ui/pages/task_list_page.dart index 1aec37ac..ddef55c6 100644 --- a/lib/ui/pages/task_list_page.dart +++ b/lib/ui/pages/task_list_page.dart @@ -45,7 +45,7 @@ class TaskListPageState extends State with TickerProviderStateMixin { late TabController _tabController; - bool? showParticipantDataCard = false; + bool showParticipantDataCard = false; @override void initState() { @@ -159,7 +159,7 @@ class TaskListPageState extends State ), ), ), - if (showParticipantDataCard!) + if (showParticipantDataCard) SliverToBoxAdapter( child: _buildParticipantDataCard(), ), From c1ea94e6f474f862f60de95431296f2b9aa78813 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Fri, 24 Oct 2025 12:23:19 +0300 Subject: [PATCH 05/17] announcements page fix, message details page ui changes, removing unused code, ui changes to bluetoth device list, status card ui improvements, improvement of notifications not going to task, heart rate tool tip ui fix --- ios/Podfile.lock | 8 +- lib/blocs/app_bloc.dart | 1 + lib/carp_study_app.dart | 18 +-- lib/data/local_settings.dart | 15 +-- lib/ui/cards/heart_rate_card.dart | 2 +- lib/ui/pages/device_list_page.dart | 2 +- ...evices_page.bluetooth_connection_page.dart | 106 +++++++++++++----- lib/ui/pages/home_page.dart | 4 +- lib/ui/pages/message_details_page.dart | 47 ++++---- lib/ui/pages/study_page.dart | 29 +++-- lib/ui/tasks/participant_data_page.dart | 1 - pubspec.lock | 52 ++++----- 12 files changed, 171 insertions(+), 114 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 0e352af5..faec3eff 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -267,7 +267,7 @@ SPEC CHECKSUMS: oidc_ios: 16966cad509ce6850ca4ca1216c5138bef2a8726 open_settings_plus: d19f91e8a04649358a51c19b484ce2e637149d70 package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 pedometer: 1c5eaab0c6bce8eb7651f7095553b5081c9d06ed permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d PhoneNumberKit: ec00ab8cef5342c1dc49fadb99d23fa7e66cf0ef @@ -277,11 +277,11 @@ SPEC CHECKSUMS: RxSwift: 4e28be97cbcfeee614af26d83415febbf2bf6f45 screen_state: 52d6e997d31bddba6417c60d9cdd22effd0320a7 sensors_plus: 6a11ed0c2e1d0bd0b20b4029d3bad27d96e0c65b - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 SwiftProtobuf: 81e341191afbddd64aa031bd12862dccfab2f639 - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b + video_player_avfoundation: dd410b52df6d2466a42d28550e33e4146928280a Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 PODFILE CHECKSUM: 0f233b2493d660073cf18073d2b24e7b319ab4a8 diff --git a/lib/blocs/app_bloc.dart b/lib/blocs/app_bloc.dart index 18eca055..cbde5069 100644 --- a/lib/blocs/app_bloc.dart +++ b/lib/blocs/app_bloc.dart @@ -380,6 +380,7 @@ class StudyAppBLoC extends ChangeNotifier { /// the Study Page of the app. Future refreshMessages() async { try { + _messages.clear(); _messages = await messageManager.getMessages(); _messages.sort((m1, m2) => m2.timestamp.compareTo(m1.timestamp)); info('Message list refreshed - count: ${_messages.length}'); diff --git a/lib/carp_study_app.dart b/lib/carp_study_app.dart index 296c2360..cc59400d 100644 --- a/lib/carp_study_app.dart +++ b/lib/carp_study_app.dart @@ -108,6 +108,15 @@ class CarpStudyAppState extends State { transitionsBuilder: bottomNavigationBarAnimation, ), ), + GoRoute( + path: '/task/:taskId', + parentNavigatorKey: _shellNavigatorKey, + builder: (context, state) { + final taskId = state.pathParameters['taskId'] ?? ''; + final task = AppTaskController().getUserTask(taskId); + return task?.widget ?? const ErrorPage(); + }, + ), ], ), GoRoute( @@ -123,15 +132,6 @@ class CarpStudyAppState extends State { builder: (context, state) => ParticipantDataPage( model: bloc.appViewModel.participantDataPageViewModel), ), - GoRoute( - path: '/task/:taskId', - parentNavigatorKey: _rootNavigatorKey, - builder: (context, state) { - final taskId = state.pathParameters['taskId'] ?? ''; - final task = AppTaskController().getUserTask(taskId); - return task?.widget ?? const ErrorPage(); - }, - ), GoRoute( path: InformedConsentPage.route, parentNavigatorKey: _rootNavigatorKey, diff --git a/lib/data/local_settings.dart b/lib/data/local_settings.dart index 086461d5..a5194c1a 100644 --- a/lib/data/local_settings.dart +++ b/lib/data/local_settings.dart @@ -14,9 +14,6 @@ class LocalSettings { /// See https://developer.android.com/health-and-fitness/guides/health-connect/develop/get-started#get-client static const healthConnectPackageName = 'com.google.android.apps.healthdata'; - bool isExpectedParticipantDataSet = false; - bool hasUserSeenDeviceConnectionInstructions = false; - // Keys for storing in shared preferences static const String userKey = 'user'; static const String participantKey = 'participant'; @@ -26,8 +23,6 @@ class LocalSettings { Participant? _participant; SmartphoneStudy? _study; - bool hasSeenBluetoothConnectionInstructions = false; - static final LocalSettings _instance = LocalSettings._(); factory LocalSettings() => _instance; LocalSettings._() : super(); @@ -109,11 +104,13 @@ class LocalSettings { ); } - bool get hasSeenConnectionInstructions => - hasSeenBluetoothConnectionInstructions; + bool get hasSeenBluetoothConnectionInstructions => + Settings() + .preferences + ?.getBool('hasSeenBluetoothConnectionInstructions') ?? + false; - set hasSeenConnectionInstructions(bool seen) { - hasSeenBluetoothConnectionInstructions = seen; + set hasSeenBluetoothConnectionInstructions(bool seen) { Settings().preferences?.setBool( 'hasSeenBluetoothConnectionInstructions', seen, diff --git a/lib/ui/cards/heart_rate_card.dart b/lib/ui/cards/heart_rate_card.dart index abe6290a..8784ac47 100644 --- a/lib/ui/cards/heart_rate_card.dart +++ b/lib/ui/cards/heart_rate_card.dart @@ -169,7 +169,7 @@ class HeartRateCardWidgetState extends State enabled: true, touchTooltipData: BarTouchTooltipData( fitInsideHorizontally: true, - // tooltipBgColor: Theme.of(context).primaryColorLight, + fitInsideVertically: true, getTooltipItem: (group, groupIndex, rod, rodIndex) { return BarTooltipItem( '', diff --git a/lib/ui/pages/device_list_page.dart b/lib/ui/pages/device_list_page.dart index d392f148..21bf78fc 100644 --- a/lib/ui/pages/device_list_page.dart +++ b/lib/ui/pages/device_list_page.dart @@ -356,7 +356,7 @@ class DeviceListPageState extends State { if (disconnect) await device.disconnectFromDevice(); } else { final hasSeenInstructions = - LocalSettings().hasSeenConnectionInstructions; + LocalSettings().hasSeenBluetoothConnectionInstructions; Navigator.push( context, MaterialPageRoute( diff --git a/lib/ui/pages/devices_page.bluetooth_connection_page.dart b/lib/ui/pages/devices_page.bluetooth_connection_page.dart index 9d952dfc..aa1319c8 100644 --- a/lib/ui/pages/devices_page.bluetooth_connection_page.dart +++ b/lib/ui/pages/devices_page.bluetooth_connection_page.dart @@ -41,16 +41,20 @@ class _BluetoothConnectionPageState extends State { BluetoothDevice? selectedDevice; int selected = 40; + /// Set of normalized UUIDs (no dashes, lower-case) to filter discovered devices by + /// If empty, no UUID filtering is applied. + final Set _filterUuids = {}; + @override Widget build(BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( + backgroundColor: Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Stack( children: [ Container( - color: Theme.of(context).colorScheme.secondary, child: Column( children: [ Padding( @@ -312,34 +316,48 @@ class _BluetoothConnectionPageState extends State { child: StreamBuilder>( stream: FlutterBluePlus.scanResults, initialData: const [], - builder: (context, snapshot) => SingleChildScrollView( - padding: const EdgeInsets.only(top: 16), - child: Column( - children: snapshot.data! - .where( - (element) => element.device.platformName.isNotEmpty) - .toList() - .asMap() - .entries - .map( - (bluetoothDevice) => ListTile( - selected: bluetoothDevice.key == selected, - title: Text( - bluetoothDevice.value.device.platformName, - style: healthServiceConnectMessageStyle, + builder: (context, snapshot) => Scrollbar( + thumbVisibility: true, + child: SingleChildScrollView( + padding: const EdgeInsets.only(top: 16), + child: Column( + children: snapshot.data! + .where((element) => + element.device.platformName.isNotEmpty && + _matchesUuid(element, _filterUuids)) + .toList() + .asMap() + .entries + .map( + (bluetoothDevice) => StudiesMaterial( + // hasBorder: true, + backgroundColor: + Theme.of(context).extension()!.grey50!, + child: InkWell( + child: ListTile( + selected: bluetoothDevice.key == selected, + title: Text( + bluetoothDevice.value.device.platformName, + style: + healthServiceConnectMessageStyle.copyWith( + fontSize: 20, + ), + ), + selectedTileColor: Theme.of(context) + .primaryColor + .withValues(alpha: 0.2), + ), + onTap: () { + selectedDevice = bluetoothDevice.value.device; + setState(() { + selected = bluetoothDevice.key; + }); + }, + ), ), - selectedTileColor: Theme.of(context) - .primaryColor - .withValues(alpha: 0.2), - onTap: () { - selectedDevice = bluetoothDevice.value.device; - setState(() { - selected = bluetoothDevice.key; - }); - }, - ), - ) - .toList(), + ) + .toList(), + ), ), ), ), @@ -383,6 +401,34 @@ class _BluetoothConnectionPageState extends State { ); } + /// Returns true if [scanResult] advertises any UUID present in [filterUuids]. + /// If [filterUuids] is empty, always returns true. + bool _matchesUuid(ScanResult scanResult, Set filterUuids) { + if (filterUuids.isEmpty) return true; + + // Normalize helper: remove dashes and lowercase + String normalize(String u) => u.replaceAll('-', '').toLowerCase(); + + try { + // FlutterBluePlus ScanResult contains advertisementData with serviceUuids + final adv = scanResult.advertisementData; + final serviceUuids = adv.serviceUuids; + for (var u in serviceUuids) { + final us = u.toString(); + if (filterUuids.contains(normalize(us))) return true; + } + + // Also check device id (remoteId) as fallback + final devId = scanResult.device.remoteId.id; + if (filterUuids.contains(normalize(devId))) return true; + } catch (_) { + // If structure differs, fall back to allowing the device + return true; + } + + return false; + } + Widget connectionInstructions(DeviceViewModel device, BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; AssetImage? assetImage; @@ -420,8 +466,8 @@ class _BluetoothConnectionPageState extends State { Image connectionImage = Image( image: assetImage, - width: MediaQuery.of(context).size.height * 0.5, - height: MediaQuery.of(context).size.height * 0.5, + width: MediaQuery.of(context).size.height * 0.3, + height: MediaQuery.of(context).size.height * 0.3, ); return Column( children: [ diff --git a/lib/ui/pages/home_page.dart b/lib/ui/pages/home_page.dart index aa6aacc8..1257b9a2 100644 --- a/lib/ui/pages/home_page.dart +++ b/lib/ui/pages/home_page.dart @@ -96,7 +96,9 @@ class HomePageState extends State { AppTaskController().userTaskEvents.listen((userTask) { if (userTask.state == UserTaskState.notified) { userTask.onStart(); - if (userTask.hasWidget) context.push('/task/${userTask.id}'); + if (userTask.hasWidget) { + _rootNavigatorKey.currentContext?.push('/task/${userTask.id}'); + } } }); diff --git a/lib/ui/pages/message_details_page.dart b/lib/ui/pages/message_details_page.dart index 93817864..09d7ec2e 100644 --- a/lib/ui/pages/message_details_page.dart +++ b/lib/ui/pages/message_details_page.dart @@ -52,19 +52,32 @@ class MessageDetailsPage extends StatelessWidget { } }, ), - Material( - color: CACHET.DEPLOYMENT_DEPLOYING, - borderRadius: BorderRadius.circular(100.0), - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Text( - locale.translate(message.type - .toString() - .split('.') - .last - .toLowerCase()), - style: aboutCardSubtitleStyle.copyWith( - color: Colors.white)), + Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: Text(locale.translate(message.title!), + style: aboutCardTitleStyle.copyWith( + color: Theme.of(context) + .extension()! + .grey900)), + ), + Spacer(), + Padding( + padding: const EdgeInsets.only(right: 24), + child: Material( + color: CACHET.DEPLOYMENT_DEPLOYING, + borderRadius: BorderRadius.circular(100.0), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, vertical: 6.0), + child: Text( + locale.translate(message.type + .toString() + .split('.') + .last + .toLowerCase()), + style: aboutCardSubtitleStyle.copyWith( + color: Colors.white)), + ), ), ), ], @@ -74,14 +87,6 @@ class MessageDetailsPage extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: Text(locale.translate(message.title!), - style: aboutCardTitleStyle.copyWith( - color: Theme.of(context) - .extension()! - .grey900)), - ), message.subTitle != null ? Padding( padding: const EdgeInsets.symmetric( diff --git a/lib/ui/pages/study_page.dart b/lib/ui/pages/study_page.dart index 33f44fc4..5ea3f90f 100644 --- a/lib/ui/pages/study_page.dart +++ b/lib/ui/pages/study_page.dart @@ -68,9 +68,12 @@ class StudyPageState extends State { if (LocalSettings().isAnonymous) { items.add(AnonymousCard()); } - if (widget.model.messages.isEmpty) { + if (widget.model.messages.isNotEmpty) { items.add(_buildAnnouncementsTitle(context)); - items.addAll(widget.model.messages.map((message) { + // Show newest announcements first: sort by timestamp descending + final messages = List.from(widget.model.messages) + ..sort((a, b) => b.timestamp.compareTo(a.timestamp)); + items.addAll(messages.map((message) { return _announcementCard(context, message); }).toList()); } @@ -215,15 +218,27 @@ class StudyPageState extends State { future: bloc.studyDeploymentStatus, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { - return Container(); + return StudiesMaterial( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 28), + child: Center( + child: CircularProgressIndicator(), + ), + ), + ); } else if (snapshot.hasError) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 22), - child: Text('Error: ${snapshot.error}'), + return StudiesMaterial( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 28), + child: Text( + 'Error: ${snapshot.error}', + textAlign: TextAlign.center, + ), + ), ); // Show an error message if the future fails } else if (!snapshot.hasData || snapshot.data == null) { return Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 22), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 28), child: Center( child: CircularProgressIndicator(), ), diff --git a/lib/ui/tasks/participant_data_page.dart b/lib/ui/tasks/participant_data_page.dart index c3397326..adb2ae4f 100644 --- a/lib/ui/tasks/participant_data_page.dart +++ b/lib/ui/tasks/participant_data_page.dart @@ -774,7 +774,6 @@ class ParticipantDataPageState extends State { participantData, bloc.study!.participantRoleName, ); - LocalSettings().hasSeenConnectionInstructions = true; } Future _showCancelConfirmationDialog() { diff --git a/pubspec.lock b/pubspec.lock index 885a040f..441dc359 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "409002f1adeea601018715d613115cfaf0e31f512cb80ae4534c79867ae2363d" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.1.0" build_resolvers: dependency: transitive description: @@ -197,26 +197,26 @@ packages: dependency: "direct main" description: name: camera - sha256: d6ec2cbdbe2fa8f5e0d07d8c06368fe4effa985a4a5ddade9cc58a8cd849557d + sha256: "87a27e0553e3432119c1c2f6e4b9a1bbf7d2c660552b910bfa59185a9facd632" url: "https://pub.dev" source: hosted - version: "0.11.2" + version: "0.11.2+1" camera_android_camerax: dependency: "direct main" description: name: camera_android_camerax - sha256: "92dcc36e8ff2fa1ea3acdbb609ca2976cded55dceb719b4869c124c6d011f110" + sha256: b68b638e5e0ede21155e670493ac568981a8f56c5f636d720935a916a1c5a0ef url: "https://pub.dev" source: hosted - version: "0.6.23+2" + version: "0.6.24" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: "397f44f8a63c8c0a474668d500f9739d4f2bc45ac2b21801194b7d29260f03ee" + sha256: "75bd22c0cf97d89a528d505e0f10bc8a0d08f0e218ca999812af1076c72d5907" url: "https://pub.dev" source: hosted - version: "0.9.22+1" + version: "0.9.22+3" camera_platform_interface: dependency: transitive description: @@ -1105,10 +1105,10 @@ packages: dependency: transitive description: name: list_operators - sha256: "795b1a2b3fe689008907e92ddab0e965434dd1f02e7321cd65858d553c0740bf" + sha256: "480e6726f44c9fc5dd0dbcdec192bfcaad24d4edef366abea572fbbaf6f96575" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.5.1" location: dependency: transitive description: @@ -1441,10 +1441,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" path_provider_linux: dependency: transitive description: @@ -1657,10 +1657,10 @@ packages: dependency: transitive description: name: sample_statistics - sha256: "115b076b61bd680975d620c02b47a3b56fa779d31eaac5d2b8896279d45f25a8" + sha256: ba47e4a81f57fc1968472daf392c22ffc5142c42e93a2e9b899e569c3843168a url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.2.2" screen_state: dependency: transitive description: @@ -1705,10 +1705,10 @@ packages: dependency: transitive description: name: shared_preferences_foundation - sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.5" shared_preferences_linux: dependency: transitive description: @@ -1789,14 +1789,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.0" - simulated_annealing: - dependency: transitive - description: - name: simulated_annealing - sha256: "5fac4326f446780a01fe0703a6be2d98dfca4a93d71e49c782f5574da22755c9" - url: "https://pub.dev" - source: hosted - version: "0.4.0" sky_engine: dependency: transitive description: flutter @@ -2062,10 +2054,10 @@ packages: dependency: transitive description: name: url_launcher_ios - sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" url: "https://pub.dev" source: hosted - version: "6.3.4" + version: "6.3.5" url_launcher_linux: dependency: transitive description: @@ -2078,10 +2070,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.4" url_launcher_platform_interface: dependency: transitive description: @@ -2166,10 +2158,10 @@ packages: dependency: transitive description: name: video_player_avfoundation - sha256: f9a780aac57802b2892f93787e5ea53b5f43cc57dc107bee9436458365be71cd + sha256: "19ed1162a7a5520e7d7791e0b7b73ba03161b6a69428b82e4689e435b325432d" url: "https://pub.dev" source: hosted - version: "2.8.4" + version: "2.8.5" video_player_platform_interface: dependency: transitive description: From 694a6526bc67a820080a429f6dd6be32aac79fe1 Mon Sep 17 00:00:00 2001 From: bardram Date: Fri, 24 Oct 2025 11:31:21 +0200 Subject: [PATCH 06/17] Fix of "day in study" in #523 --- lib/view_models/tasklist_page_model.dart | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/view_models/tasklist_page_model.dart b/lib/view_models/tasklist_page_model.dart index 1a03b570..258d5727 100644 --- a/lib/view_models/tasklist_page_model.dart +++ b/lib/view_models/tasklist_page_model.dart @@ -34,8 +34,14 @@ class TaskListPageViewModel extends ViewModel { Stream get userTaskEvents => AppTaskController().userTaskEvents; /// The number of days the user has been part of this study. - int get daysInStudy => (bloc.studyStartTimestamp != null) - ? DateTime.now().difference(bloc.studyStartTimestamp!).inDays + 1 + /// + /// This is calculated from the study deployment status creation date from the + /// [StudyDeploymentStatus]. + /// Returns 0 if the study deployment status is not available. + int get daysInStudy => (Sensing().studyDeploymentStatus != null) + ? DateTime.now() + .difference(Sensing().studyDeploymentStatus!.createdOn) + .inDays : 0; /// The number of tasks completed so far. From 62c8ee8140d10cfb5684b6cf009de34edfedf2c0 Mon Sep 17 00:00:00 2001 From: bardram Date: Fri, 24 Oct 2025 11:44:24 +0200 Subject: [PATCH 07/17] Small update to translations --- assets/lang/da.json | 4 ++-- assets/lang/en.json | 6 +++--- assets/lang/es.json | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/assets/lang/da.json b/assets/lang/da.json index e08855bb..1d44c86c 100644 --- a/assets/lang/da.json +++ b/assets/lang/da.json @@ -97,9 +97,9 @@ "pages.profile.device_role": "Engedsrolle", "pages.profile.contact": "Kontakt forsker", "pages.profile.privacy": "Fortrolighedspolitik", - "pages.profile.study_website": "Studiw Hjemmeside", + "pages.profile.study_website": "Hjemmeside for studiet", "pages.profile.leave_study": "Forlad studie", - "pages.profile.log_out": "Log ud", + "pages.profile.log_out": "Forlad studie & Log ud", "pages.profile.log_out.confirmation": "Du er ved at forlade dette studie og logge af. Operativsystemet vil åbne en browser for at logge dig ud. Er du sikker?", "pages.profile.leave_study.confirmation": "Du er ved at forlade studiet. Du vil ikke længere deltage i dette studie. Er du sikker?", "announcements": "Annonceringer", diff --git a/assets/lang/en.json b/assets/lang/en.json index aae2fb09..1dce60f2 100644 --- a/assets/lang/en.json +++ b/assets/lang/en.json @@ -110,9 +110,9 @@ "pages.profile.device_id": "Device ID", "pages.profile.contact": "Contact researcher", "pages.profile.privacy": "Privacy policy", - "pages.profile.study_website": "Study Website", + "pages.profile.study_website": "Study website", "pages.profile.leave_study": "Leave study", - "pages.profile.log_out": "Log out", + "pages.profile.log_out": "Leave study & Log out", "pages.profile.log_out.confirmation": "You are about to leave this study and log out. The operating system will open a browser to log you out. Are you sure?", "pages.profile.leave_study.confirmation": "You are about to leave the study. You will no longer participate in this study. Are you sure?", "announcements": "Announcements", @@ -244,4 +244,4 @@ "tasks.participant_data.phone_number.country": "Country code", "tasks.participant_data.phone_number.phone_number": "Phone No.", "tasks.participant_data.review.title": "Review" -} +} \ No newline at end of file diff --git a/assets/lang/es.json b/assets/lang/es.json index b4f811b1..b9bf74db 100644 --- a/assets/lang/es.json +++ b/assets/lang/es.json @@ -58,8 +58,9 @@ "pages.profile.account_id": "Id Usuario", "pages.profile.contact": "Contactar investigador", "pages.profile.privacy": "Política de privacidad", + "pages.profile.study_website": "Página web del estudio", "pages.profile.leave_study": "Abandonar el estudio", - "pages.profile.log_out": "Cerrar sesión", + "pages.profile.log_out": "Cerrar estudio & sesión", "pages.profile.log_out.confirmation": "Estás a punto de cerrar sesión et abandonar el estudio. ¿Estás seguro?", "pages.profile.leave_study.confirmation": "Estás a punto de abandonar el estudio. Dejarás de participar en el es estudio. ¿Estás seguro?", "announcement": "Anuncio", @@ -121,4 +122,4 @@ "pages.devices.connection.step.confirm.title": "está conectado!", "pages.devices.connection.step.confirm.1": "El", "pages.devices.connection.step.confirm.2": " ha sido connectado satisfactoriamente al estudio y está listo para empezar a detectar." -} +} \ No newline at end of file From 84efaedb52e74d4f13408e2b6e42fe10b330e7ea Mon Sep 17 00:00:00 2001 From: bardram Date: Fri, 24 Oct 2025 12:52:29 +0200 Subject: [PATCH 08/17] Fix of cached data across studies - #523 --- lib/blocs/app_bloc.dart | 11 +++++------ lib/view_models/view_model.dart | 7 ++++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/blocs/app_bloc.dart b/lib/blocs/app_bloc.dart index 18eca055..9df60d06 100644 --- a/lib/blocs/app_bloc.dart +++ b/lib/blocs/app_bloc.dart @@ -478,14 +478,13 @@ class StudyAppBLoC extends ChangeNotifier { /// * resetting the informed consent flow /// * returning the user to select an invitation for another study /// - /// Note that study deployment information and data is not removed from the - /// phone. This is stored for later access. Or if the same deployment is - /// re-deployed on the phone, data from the previous deployment will be - /// available. + /// Note that study deployment information and data is removed from the + /// phone. If the same deployment is re-deployed on the phone, data from the + /// previous deployment will NOT be available. Future leaveStudy() async { - debug('$runtimeType --------- LEAVING STUDY ------------'); + info('Leaving study $study'); - // save and clear the UI data models + // clear the UI data models appViewModel.clear(); // stop sensing and remove all deployment info diff --git a/lib/view_models/view_model.dart b/lib/view_models/view_model.dart index 447535f5..4428256b 100644 --- a/lib/view_models/view_model.dart +++ b/lib/view_models/view_model.dart @@ -15,11 +15,12 @@ abstract class ViewModel extends ChangeNotifier { _controller = ctrl; } - /// Called when this view model is to clear its state (e.g., cached data). + /// Clear this view model, i.e. delete all data incl. cached data. @mustCallSuper void clear() {} - /// Called when this view model is disposed and no longer used. + /// Called when this view model is disposed. Typically on app exit, incl. when + /// closed by the OS. @override @mustCallSuper void dispose() { @@ -92,7 +93,7 @@ abstract class SerializableViewModel extends ViewModel { _filename = null; _persistenceTimer?.cancel(); _persistenceTimer = null; - save(); + delete(); } @override From f2f1b76363a464817a9ea397e58be10bf31f9aba Mon Sep 17 00:00:00 2001 From: bardram Date: Fri, 24 Oct 2025 16:58:57 +0200 Subject: [PATCH 09/17] Update view_model.dart --- lib/view_models/view_model.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/view_models/view_model.dart b/lib/view_models/view_model.dart index 4428256b..9585bb84 100644 --- a/lib/view_models/view_model.dart +++ b/lib/view_models/view_model.dart @@ -128,7 +128,7 @@ abstract class SerializableViewModel extends ViewModel { return success; } - /// Permanently delete the [model]. + /// Permanently delete the cached [model]. /// Returns true if successful, false otherwise. bool delete() { bool success = true; From be5497161183f9e4c27421337304d3eb3ab1d7e4 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Sun, 26 Oct 2025 22:01:25 +0200 Subject: [PATCH 10/17] adding new images for health connection page --- assets/instructions/apple_health_preview.png | Bin 0 -> 151089 bytes .../google_health_connect_preview.png | Bin 0 -> 159361 bytes .../devices_page.health_service_connect1.dart | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 assets/instructions/apple_health_preview.png create mode 100644 assets/instructions/google_health_connect_preview.png diff --git a/assets/instructions/apple_health_preview.png b/assets/instructions/apple_health_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..89113a45e18f41d3b0841b99fd4ab21def93d07f GIT binary patch literal 151089 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∪B2-EQKNA=9!te4apBWHVKDEQKMdp~<+QX;3 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�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 bk=)4p=JU8Rdo;ZK2X|?z>Z;T#y^8ujSSVE$ literal 0 HcmV?d00001 diff --git a/assets/instructions/google_health_connect_preview.png b/assets/instructions/google_health_connect_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b0cb0528b8cfd5991185e4bf67e0b06319120a9d GIT binary patch literal 159361 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 Date: Wed, 29 Oct 2025 13:40:56 +0200 Subject: [PATCH 11/17] fixing status bar color appearing darker than page, removing unnecessary health connect page, changing UI to use icons instead of words for announcement cards --- lib/carp_study_app.dart | 7 ++ lib/main.dart | 3 +- lib/ui/pages/device_list_page.dart | 2 +- ... devices_page.health_service_connect.dart} | 103 +++++++--------- .../devices_page.health_service_connect1.dart | 116 ------------------ lib/ui/pages/study_page.dart | 17 ++- pubspec.lock | 12 +- 7 files changed, 70 insertions(+), 190 deletions(-) rename lib/ui/pages/{devices_page.health_service_connect2.dart => devices_page.health_service_connect.dart} (62%) delete mode 100644 lib/ui/pages/devices_page.health_service_connect1.dart diff --git a/lib/carp_study_app.dart b/lib/carp_study_app.dart index cc59400d..2df8ad56 100644 --- a/lib/carp_study_app.dart +++ b/lib/carp_study_app.dart @@ -184,6 +184,13 @@ class CarpStudyAppState extends State { @override Widget build(BuildContext context) { final carpColors = Theme.of(context).extension(); + + // Apply system overlay style after frame so Theme.of(context) is ready + WidgetsBinding.instance.addPostFrameCallback((_) { + SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + )); + }); return MaterialApp.router( scaffoldMessengerKey: bloc.scaffoldKey, supportedLocales: const [ diff --git a/lib/main.dart b/lib/main.dart index 904ffa4f..692acc18 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -105,8 +105,7 @@ part 'ui/pages/devices_page.enable_bluetooth_dialog.dart'; part 'ui/pages/devices_page.bluetooth_connection_page.dart'; part 'ui/pages/devices_page.disconnection_dialog.dart'; part 'ui/pages/devices_page.list_title.dart'; -part 'ui/pages/devices_page.health_service_connect1.dart'; -part 'ui/pages/devices_page.health_service_connect2.dart'; +part 'ui/pages/devices_page.health_service_connect.dart'; part 'ui/tasks/audio_task_page.dart'; part 'ui/tasks/audio_page.dart'; diff --git a/lib/ui/pages/device_list_page.dart b/lib/ui/pages/device_list_page.dart index 21bf78fc..71543979 100644 --- a/lib/ui/pages/device_list_page.dart +++ b/lib/ui/pages/device_list_page.dart @@ -320,7 +320,7 @@ class DeviceListPageState extends State { Navigator.push( context, MaterialPageRoute( - builder: (context) => HealthServiceConnectPage1()), + builder: (context) => HealthServiceConnectPage()), ); } else { await service.deviceManager.requestPermissions(); diff --git a/lib/ui/pages/devices_page.health_service_connect2.dart b/lib/ui/pages/devices_page.health_service_connect.dart similarity index 62% rename from lib/ui/pages/devices_page.health_service_connect2.dart rename to lib/ui/pages/devices_page.health_service_connect.dart index 9d79643d..88dd4bd6 100644 --- a/lib/ui/pages/devices_page.health_service_connect2.dart +++ b/lib/ui/pages/devices_page.health_service_connect.dart @@ -1,7 +1,7 @@ part of carp_study_app; -class HealthServiceConnectPage2 extends StatelessWidget { - const HealthServiceConnectPage2({super.key}); +class HealthServiceConnectPage extends StatelessWidget { + const HealthServiceConnectPage({super.key}); @override Widget build(BuildContext context) { @@ -14,15 +14,15 @@ class HealthServiceConnectPage2 extends StatelessWidget { .first; return Scaffold( + backgroundColor: Theme.of(context).extension()!.grey100, body: SafeArea( child: Container( - color: Theme.of(context).colorScheme.secondary, child: Column( children: [ Padding( padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 18), - child: const CarpAppBar(hasProfileIcon: true), + child: const CarpAppBar(), ), Expanded( child: Padding( @@ -30,25 +30,15 @@ class HealthServiceConnectPage2 extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Container( - padding: const EdgeInsets.all(20), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(20), - boxShadow: [ - BoxShadow( - color: Colors.black.withValues(alpha: 0.1), - blurRadius: 10, - spreadRadius: 2, - ), - ], - ), - child: Image.asset( - Platform.isAndroid - ? 'assets/instructions/google_health_connect_icon.png' - : 'assets/instructions/apple_health_icon.png', - height: 250, - width: 250, + Expanded( + child: Center( + child: Image.asset( + Platform.isAndroid + ? 'assets/instructions/google_health_connect_preview.png' + : 'assets/instructions/apple_health_preview.png', + fit: BoxFit.contain, + width: double.infinity, + ), ), ), const SizedBox(height: 20), @@ -108,39 +98,6 @@ class HealthServiceConnectPage2 extends StatelessWidget { textAlign: TextAlign.center, ), const SizedBox(height: 30), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - OutlinedButton( - child: const Text("Cancel"), - onPressed: () { - Navigator.pop(context); - }, - ), - ElevatedButton( - child: const Text( - "Next", - style: TextStyle( - color: Colors.white, - ), - ), - style: ElevatedButton.styleFrom( - backgroundColor: Theme.of(context) - .extension()! - .primary, - padding: const EdgeInsets.symmetric( - horizontal: 30, vertical: 12), - ), - onPressed: () async { - await healthServive.deviceManager - .requestPermissions(); - await healthServive.deviceManager.connect(); - - Navigator.pop(context); - }, - ), - ], - ), ], ), ), @@ -149,6 +106,40 @@ class HealthServiceConnectPage2 extends StatelessWidget { ), ), ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.symmetric(vertical: 26), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + OutlinedButton( + child: const Text("Cancel"), + onPressed: () { + Navigator.pop(context); + }, + ), + ElevatedButton( + child: const Text( + "Next", + style: TextStyle( + color: Colors.white, + ), + ), + style: ElevatedButton.styleFrom( + backgroundColor: + Theme.of(context).extension()!.primary, + padding: + const EdgeInsets.symmetric(horizontal: 30, vertical: 12), + ), + onPressed: () async { + await healthServive.deviceManager.requestPermissions(); + await healthServive.deviceManager.connect(); + + Navigator.pop(context); + }, + ), + ], + ), + ), ); } } diff --git a/lib/ui/pages/devices_page.health_service_connect1.dart b/lib/ui/pages/devices_page.health_service_connect1.dart deleted file mode 100644 index ee71a047..00000000 --- a/lib/ui/pages/devices_page.health_service_connect1.dart +++ /dev/null @@ -1,116 +0,0 @@ -part of carp_study_app; - -class HealthServiceConnectPage1 extends StatelessWidget { - const HealthServiceConnectPage1({super.key}); - - @override - Widget build(BuildContext context) { - RPLocalizations locale = RPLocalizations.of(context)!; - return Scaffold( - body: SafeArea( - child: Container( - color: Theme.of(context).colorScheme.secondary, - child: Column( - children: [ - Padding( - padding: - const EdgeInsets.symmetric(vertical: 8.0, horizontal: 18), - child: const CarpAppBar(hasProfileIcon: true), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 24.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - padding: const EdgeInsets.all(20), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(20), - boxShadow: [ - BoxShadow( - color: Colors.black.withValues(alpha: 0.1), - blurRadius: 10, - spreadRadius: 2, - ), - ], - ), - child: Image.asset( - Platform.isAndroid - ? 'assets/instructions/google_health_connect_preview.png' - : 'assets/instructions/apple_health_preview.png', - height: 250, - width: 250, - ), - ), - const SizedBox(height: 20), - Text( - Platform.isAndroid - ? locale.translate( - "pages.devices.type.health.instructions.page1.android") - : locale.translate( - "pages.devices.type.health.instructions.page1.ios"), - style: healthServiceConnectTitleStyle.copyWith( - color: Theme.of(context) - .extension()! - .primary), - textAlign: TextAlign.center, - ), - const SizedBox(height: 10), - Text( - "${locale.translate("pages.devices.type.health.instructions.page1.part1")} " - "${Platform.isAndroid ? locale.translate("pages.devices.type.health.instructions.page1.android") : locale.translate("pages.devices.type.health.instructions.page1.ios")} " - "${locale.translate("pages.devices.type.health.instructions.page1.part2")}", - style: healthServiceConnectMessageStyle.copyWith( - color: Theme.of(context) - .extension()! - .grey900), - textAlign: TextAlign.center, - ), - const SizedBox(height: 30), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - OutlinedButton( - child: const Text("Cancel"), - onPressed: () { - Navigator.pop(context); - }, - ), - ElevatedButton( - child: Text( - locale.translate("Next"), - style: TextStyle( - color: Colors.white, - ), - ), - style: ElevatedButton.styleFrom( - backgroundColor: Theme.of(context) - .extension()! - .primary, - padding: const EdgeInsets.symmetric( - horizontal: 30, vertical: 12), - ), - onPressed: () { - Navigator.pushReplacement( - context, - MaterialPageRoute( - builder: (context) => - HealthServiceConnectPage2()), - ); - }, - ), - ], - ), - ], - ), - ), - ), - ], - ), - ), - ), - ); - } -} diff --git a/lib/ui/pages/study_page.dart b/lib/ui/pages/study_page.dart index 5ea3f90f..f89af343 100644 --- a/lib/ui/pages/study_page.dart +++ b/lib/ui/pages/study_page.dart @@ -395,15 +395,8 @@ class StudyPageState extends State { color: CACHET.DEPLOYMENT_DEPLOYING, borderRadius: BorderRadius.circular(100.0), child: Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - locale.translate(message.type - .toString() - .split('.') - .last - .toLowerCase()), - style: aboutCardSubtitleStyle.copyWith( - color: Colors.white)), + padding: const EdgeInsets.all(4.0), + child: messageTypeIcon[message.type], ), ), ], @@ -504,6 +497,12 @@ class StudyPageState extends State { StudyDeploymentStatusTypes.Running: 'pages.about.status.running.message', StudyDeploymentStatusTypes.Stopped: 'pages.about.status.stopped.message', }; + + static Map messageTypeIcon = { + MessageType.announcement: Icon(Icons.campaign, color: Colors.white), + MessageType.news: Icon(Icons.newspaper, color: Colors.white), + MessageType.article: Icon(Icons.article, color: Colors.white), + }; } extension CopyWithAdditional on DateTime { diff --git a/pubspec.lock b/pubspec.lock index 441dc359..540487e1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -197,10 +197,10 @@ packages: dependency: "direct main" description: name: camera - sha256: "87a27e0553e3432119c1c2f6e4b9a1bbf7d2c660552b910bfa59185a9facd632" + sha256: eefad89f262a873f38d21e5eec853461737ea074d7c9ede39f3ceb135d201cab url: "https://pub.dev" source: hosted - version: "0.11.2+1" + version: "0.11.3" camera_android_camerax: dependency: "direct main" description: @@ -213,10 +213,10 @@ packages: dependency: transitive description: name: camera_avfoundation - sha256: "75bd22c0cf97d89a528d505e0f10bc8a0d08f0e218ca999812af1076c72d5907" + sha256: "34bcd5db30e52414f1f0783c5e3f566909fab14141a21b3b576c78bd35382bf6" url: "https://pub.dev" source: hosted - version: "0.9.22+3" + version: "0.9.22+4" camera_platform_interface: dependency: transitive description: @@ -2166,10 +2166,10 @@ packages: dependency: transitive description: name: video_player_platform_interface - sha256: "9e372520573311055cb353b9a0da1c9d72b094b7ba01b8ecc66f28473553793b" + sha256: "57c5d73173f76d801129d0531c2774052c5a7c11ccb962f1830630decd9f24ec" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.6.0" video_player_web: dependency: transitive description: From 8dc2dfdc99a52d7e6a26f825f352f4368a3b046c Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Fri, 7 Nov 2025 13:16:18 +0100 Subject: [PATCH 12/17] informed consent from backend instead of locally, reverting notifications code --- android/app/build.gradle | 4 +-- lib/blocs/app_bloc.dart | 4 ++- lib/carp_study_app.dart | 18 +++++----- lib/data/carp_backend.dart | 7 ++++ ...evices_page.bluetooth_connection_page.dart | 2 +- lib/ui/tasks/camera_page.dart | 2 +- pubspec.lock | 36 ++++++++----------- pubspec.yaml | 2 +- 8 files changed, 38 insertions(+), 37 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index e92b3fa4..bc2192c5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -81,10 +81,10 @@ android { debugSymbolLevel 'SYMBOL_TABLE' } if (signingConfigExists) { - logger.error('storeFile found, signing with release build.') + logger.info('storeFile found, signing with release build.') signingConfig signingConfigs.release } else { - logger.error('No storeFile found or null. Skipping signing of release build.') + logger.info('No storeFile found or null. Skipping signing of release build.') signingConfig signingConfigs.debug } } diff --git a/lib/blocs/app_bloc.dart b/lib/blocs/app_bloc.dart index cbde5069..2f8a8377 100644 --- a/lib/blocs/app_bloc.dart +++ b/lib/blocs/app_bloc.dart @@ -352,7 +352,9 @@ class StudyAppBLoC extends ChangeNotifier { /// Has the informed consent been accepted by the user? bool get hasInformedConsentBeenAccepted => - LocalSettings().participant?.hasInformedConsentBeenAccepted ?? false; + backend.getInformedConsentByRole( + study!.studyDeploymentId, study!.participantRoleName) != + null; set hasInformedConsentBeenAccepted(bool accepted) { var participant = LocalSettings().participant; diff --git a/lib/carp_study_app.dart b/lib/carp_study_app.dart index 2df8ad56..4d5cba81 100644 --- a/lib/carp_study_app.dart +++ b/lib/carp_study_app.dart @@ -108,15 +108,6 @@ class CarpStudyAppState extends State { transitionsBuilder: bottomNavigationBarAnimation, ), ), - GoRoute( - path: '/task/:taskId', - parentNavigatorKey: _shellNavigatorKey, - builder: (context, state) { - final taskId = state.pathParameters['taskId'] ?? ''; - final task = AppTaskController().getUserTask(taskId); - return task?.widget ?? const ErrorPage(); - }, - ), ], ), GoRoute( @@ -132,6 +123,15 @@ class CarpStudyAppState extends State { builder: (context, state) => ParticipantDataPage( model: bloc.appViewModel.participantDataPageViewModel), ), + GoRoute( + path: '/task/:taskId', + parentNavigatorKey: _rootNavigatorKey, + builder: (context, state) { + final taskId = state.pathParameters['taskId'] ?? ''; + final task = AppTaskController().getUserTask(taskId); + return task?.widget ?? const ErrorPage(); + }, + ), GoRoute( path: InformedConsentPage.route, parentNavigatorKey: _rootNavigatorKey, diff --git a/lib/data/carp_backend.dart b/lib/data/carp_backend.dart index 6f100fc3..3db20440 100644 --- a/lib/data/carp_backend.dart +++ b/lib/data/carp_backend.dart @@ -232,4 +232,11 @@ class CarpBackend { return uploadedConsent; } + + Future? getInformedConsentByRole( + String studyDeploymentId, String? role) async { + return await CarpParticipationService() + .participation(studyDeploymentId) + .getInformedConsentByRole(role); + } } diff --git a/lib/ui/pages/devices_page.bluetooth_connection_page.dart b/lib/ui/pages/devices_page.bluetooth_connection_page.dart index aa1319c8..02b9db9d 100644 --- a/lib/ui/pages/devices_page.bluetooth_connection_page.dart +++ b/lib/ui/pages/devices_page.bluetooth_connection_page.dart @@ -419,7 +419,7 @@ class _BluetoothConnectionPageState extends State { } // Also check device id (remoteId) as fallback - final devId = scanResult.device.remoteId.id; + final devId = scanResult.device.remoteId.str; if (filterUuids.contains(normalize(devId))) return true; } catch (_) { // If structure differs, fall back to allowing the device diff --git a/lib/ui/tasks/camera_page.dart b/lib/ui/tasks/camera_page.dart index 07ecc94a..eaef6e53 100644 --- a/lib/ui/tasks/camera_page.dart +++ b/lib/ui/tasks/camera_page.dart @@ -101,7 +101,7 @@ class CameraPageState extends State { } } - void stopRecording(details) async { + void stopRecording(dynamic details) async { try { var video = await _cameraController.stopVideoRecording(); diff --git a/pubspec.lock b/pubspec.lock index 540487e1..eb591be0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -221,10 +221,10 @@ packages: dependency: transitive description: name: camera_platform_interface - sha256: ea1ef6ba79cdbed93df2d3eeef11542a90dec24dbcd9cde574926b86d7a09a10 + sha256: "98cfc9357e04bad617671b4c1f78a597f25f08003089dd94050709ae54effc63" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" camera_web: dependency: transitive description: @@ -293,10 +293,10 @@ packages: dependency: "direct main" description: name: carp_movesense_package - sha256: ecf454337a4ef6ce2ce71516bb7544fb659c2fb64562b6f4ce3e303d1cc07f0c + sha256: e17094a42fae084d26c7759459493389016d9efc9f1555c7a5044eec1469d87d url: "https://pub.dev" source: hosted - version: "1.7.5" + version: "1.7.6" carp_polar_package: dependency: "direct main" description: @@ -453,18 +453,18 @@ packages: dependency: transitive description: name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" url: "https://pub.dev" source: hosted - version: "0.3.4+2" + version: "0.3.5" crypto: dependency: transitive description: name: crypto - sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.0.7" crypto_keys_plus: dependency: transitive description: @@ -823,10 +823,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 + sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" flutter_test: dependency: "direct dev" description: flutter @@ -1609,10 +1609,10 @@ packages: dependency: "direct main" description: name: qr_code_scanner_plus - sha256: "41f4a834a48d670d25e3917cb9f1dbb4742298a0b4ab60d82416b295b73931e1" + sha256: b764e5004251c58d9dee0c295e6006e05bd8d249e78ac3383abdb5afe0a996cd url: "https://pub.dev" source: hosted - version: "2.0.13" + version: "2.0.14" recase: dependency: transitive description: @@ -1834,14 +1834,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" sqflite: dependency: transitive description: @@ -2102,10 +2094,10 @@ packages: dependency: transitive description: name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 url: "https://pub.dev" source: hosted - version: "4.5.1" + version: "4.5.2" vector_graphics: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 28c79c5e..9e33afbf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -69,7 +69,7 @@ dependency_overrides: # carp_core: # path: ../carp/carp.sensing-flutter/carp_core/ # carp_mobile_sensing: - # path: ../carp/carp.sensing-flutter/carp_mobile_sensing/ + # path: ../carp.sensing-flutter/carp_mobile_sensing/ # carp_context_package: # path: ../carp/carp.sensing-flutter/packages/carp_context_package/ # carp_connectivity_package: From b45ca926fd909cb4cc26cc2a00d4802405e9c1ea Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:03:06 +0100 Subject: [PATCH 13/17] moving to carp_themes_package instead of research package theme --- CHANGELOG.md | 4 +- android/build.gradle | 2 - lib/carp_study_app.dart | 10 +-- lib/main.dart | 1 + lib/ui/cards/activity_card.dart | 39 +++++------ lib/ui/cards/anonymous_card.dart | 9 ++- lib/ui/cards/distance_card.dart | 18 ++--- lib/ui/cards/heart_rate_card.dart | 23 ++++--- lib/ui/cards/media_card.dart | 8 +-- lib/ui/cards/mobility_card.dart | 27 ++++---- lib/ui/cards/scoreboard_card.dart | 38 ++++++----- lib/ui/cards/steps_card.dart | 18 ++--- lib/ui/cards/study_progress_card.dart | 4 +- lib/ui/cards/survey_card.dart | 13 ++-- lib/ui/carp_study_style.dart | 58 ++++++++-------- lib/ui/pages/data_visualization_page.dart | 10 +-- lib/ui/pages/device_list_page.dart | 33 ++++----- .../devices_page.authorization_dialog.dart | 2 +- ...evices_page.bluetooth_connection_page.dart | 31 ++++----- .../devices_page.disconnection_dialog.dart | 2 +- .../devices_page.enable_bluetooth_dialog.dart | 6 +- .../devices_page.health_service_connect.dart | 24 +++---- lib/ui/pages/devices_page.list_title.dart | 4 +- lib/ui/pages/enable_connection_dialog.dart | 12 ++-- lib/ui/pages/home_page.dart | 7 +- ...me_page.install_health_connect_dialog.dart | 2 +- lib/ui/pages/invitation_list_page.dart | 23 ++++--- lib/ui/pages/invitation_page.dart | 11 +-- lib/ui/pages/message_details_page.dart | 17 +++-- lib/ui/pages/process_message_page.dart | 6 +- lib/ui/pages/profile_page.dart | 17 +++-- lib/ui/pages/study_details_page.dart | 67 ++++++++++--------- lib/ui/pages/study_page.dart | 61 +++++++++-------- lib/ui/pages/task_list_page.dart | 32 ++++----- lib/ui/tasks/audio_page.dart | 32 ++++----- lib/ui/tasks/audio_task_page.dart | 11 +-- lib/ui/tasks/camera_task_page.dart | 8 +-- lib/ui/tasks/display_picture_page.dart | 6 +- lib/ui/tasks/participant_data_page.dart | 19 +++--- lib/ui/widgets/charts_legend.dart | 4 +- lib/ui/widgets/details_banner.dart | 2 +- lib/ui/widgets/dialog_title.dart | 2 +- lib/ui/widgets/horizontal_bar.dart | 6 +- lib/ui/widgets/location_permission_page.dart | 11 +-- lib/ui/widgets/location_usage_dialog.dart | 4 +- pubspec.lock | 16 +++-- pubspec.yaml | 3 +- 47 files changed, 396 insertions(+), 367 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1760de8a..b4174efc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ -## 4.1.1 +## 4.2.0 -- small visual fixes +* moving to carp_themes_package instead of research package themes ## 4.1.0 diff --git a/android/build.gradle b/android/build.gradle index a9e61289..1c67b3aa 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -12,8 +12,6 @@ allprojects { rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { project.evaluationDependsOn(':app') } diff --git a/lib/carp_study_app.dart b/lib/carp_study_app.dart index 4d5cba81..43ac5389 100644 --- a/lib/carp_study_app.dart +++ b/lib/carp_study_app.dart @@ -183,7 +183,7 @@ class CarpStudyAppState extends State { @override Widget build(BuildContext context) { - final carpColors = Theme.of(context).extension(); + final studyAppColors = Theme.of(context).extension(); // Apply system overlay style after frame so Theme.of(context) is ready WidgetsBinding.instance.addPostFrameCallback((_) { @@ -218,14 +218,14 @@ class CarpStudyAppState extends State { return supportedLocales.first; // default to EN }, locale: bloc.localization?.locale, - theme: researchPackageTheme.copyWith( + theme: carpTheme.copyWith( extensions: [ - researchPackageTheme.extension()!.copyWith( - primary: carpColors?.primary, + carpTheme.extension()!.copyWith( + primary: studyAppColors?.primary, ), ], ), - darkTheme: researchPackageDarkTheme, + darkTheme: carpDarkTheme, debugShowCheckedModeBanner: true, routerConfig: _router, ); diff --git a/lib/main.dart b/lib/main.dart index 692acc18..778eef6e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -55,6 +55,7 @@ import 'package:cognition_package/cognition_package.dart'; import 'package:carp_health_package/health_package.dart'; // import 'package:health/health.dart'; import 'package:carp_movesense_package/carp_movesense_package.dart'; +import 'package:carp_themes_package/carp_themes_package.dart'; part 'blocs/app_bloc.dart'; part 'blocs/util.dart'; diff --git a/lib/ui/cards/activity_card.dart b/lib/ui/cards/activity_card.dart index 51bb84c8..68fe931f 100644 --- a/lib/ui/cards/activity_card.dart +++ b/lib/ui/cards/activity_card.dart @@ -63,7 +63,7 @@ class ActivityCardState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -72,16 +72,16 @@ class ActivityCardState extends State { children: [ Text( '${_walk! + _run! + _cycle!}', - style: dataVizCardTitleNumber.copyWith( - color: Theme.of(context).extension()!.grey900!, + style: fs28fw700.copyWith( + color: Theme.of(context).extension()!.grey900!, ), ), Padding( padding: const EdgeInsets.only(left: 4.0), child: Text( '${locale.translate('cards.activity.total.min')} ${_getDayName(touchedIndex)}', - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ), @@ -91,8 +91,8 @@ class ActivityCardState extends State { children: [ Text( "${widget.model.currentMonth} ${widget.model.startOfWeek} - ${int.parse(widget.model.endOfWeek) < int.parse(widget.model.startOfWeek) ? widget.model.nextMonth : widget.model.currentMonth} ${widget.model.endOfWeek}, ${widget.model.currentYear}", - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), Spacer(), @@ -117,7 +117,7 @@ class ActivityCardState extends State { children: [ Text( '$_walk', - style: dataVizCardBottomNumber.copyWith( + style: fs22fw700.copyWith( color: widget.colors[0], ), ), @@ -125,9 +125,9 @@ class ActivityCardState extends State { padding: const EdgeInsets.all(4.0), child: Text( locale.translate('cards.activity.walking'), - style: dataVizCardBottomText.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey800), ), ), @@ -141,7 +141,7 @@ class ActivityCardState extends State { padding: const EdgeInsets.only(left: 8.0), child: Text( '$_run', - style: dataVizCardBottomNumber.copyWith( + style: fs12fw700.copyWith( color: widget.colors[1], ), ), @@ -150,9 +150,9 @@ class ActivityCardState extends State { padding: const EdgeInsets.all(4.0), child: Text( locale.translate('cards.activity.running'), - style: dataVizCardBottomText.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey800), ), ), @@ -165,7 +165,7 @@ class ActivityCardState extends State { children: [ Text( '$_cycle', - style: dataVizCardBottomNumber.copyWith( + style: fs22fw700.copyWith( color: widget.colors[2], ), ), @@ -173,9 +173,10 @@ class ActivityCardState extends State { padding: const EdgeInsets.only(left: 4.0), child: Text( locale.translate('cards.activity.cycling'), - style: dataVizCardBottomText.copyWith( - color: - Theme.of(context).extension()!.grey800, + style: fs12fw700.copyWith( + color: Theme.of(context) + .extension()! + .grey800, ), ), ), @@ -303,8 +304,8 @@ class ActivityCardState extends State { value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ); diff --git a/lib/ui/cards/anonymous_card.dart b/lib/ui/cards/anonymous_card.dart index 1c935295..c135d51a 100644 --- a/lib/ui/cards/anonymous_card.dart +++ b/lib/ui/cards/anonymous_card.dart @@ -8,7 +8,7 @@ class AnonymousCard extends StatelessWidget { RPLocalizations locale = RPLocalizations.of(context)!; return Card( - color: Theme.of(context).extension()!.grey50, + color: Theme.of(context).extension()!.grey50, elevation: 0, margin: const EdgeInsets.all(16.0), shape: RoundedRectangleBorder( @@ -45,8 +45,7 @@ class AnonymousCard extends StatelessWidget { child: Text( locale.translate('pages.about.anonymous.anonymous'), maxLines: 2, - style: aboutCardSubtitleStyle.copyWith( - color: CACHET.ANONYMOUS), + style: fs16fw600.copyWith(color: CACHET.ANONYMOUS), ), ), ], @@ -56,9 +55,9 @@ class AnonymousCard extends StatelessWidget { padding: const EdgeInsets.only(left: 16.0), child: Text( locale.translate('pages.about.anonymous.message'), - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, fontSize: 14, ), diff --git a/lib/ui/cards/distance_card.dart b/lib/ui/cards/distance_card.dart index 92e06851..857ad3ae 100644 --- a/lib/ui/cards/distance_card.dart +++ b/lib/ui/cards/distance_card.dart @@ -33,7 +33,7 @@ class _DistanceCardState extends State { @override Widget build(BuildContext context) { return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -42,16 +42,16 @@ class _DistanceCardState extends State { children: [ Text( _distance, - style: dataVizCardTitleNumber.copyWith( - color: Theme.of(context).extension()!.grey900!, + style: fs28fw700.copyWith( + color: Theme.of(context).extension()!.grey900!, ), ), Padding( padding: const EdgeInsets.only(left: 4.0), child: Text( 'km ${_getDayName(touchedIndex)}', - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ), @@ -61,8 +61,8 @@ class _DistanceCardState extends State { children: [ Text( "${widget.model.currentMonth} ${widget.model.startOfWeek} - ${int.parse(widget.model.endOfWeek) < int.parse(widget.model.startOfWeek) ? widget.model.nextMonth : widget.model.currentMonth} ${widget.model.endOfWeek}, ${widget.model.currentYear}", - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), Spacer(), @@ -174,8 +174,8 @@ class _DistanceCardState extends State { value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ); diff --git a/lib/ui/cards/heart_rate_card.dart b/lib/ui/cards/heart_rate_card.dart index 8784ac47..570fc7de 100644 --- a/lib/ui/cards/heart_rate_card.dart +++ b/lib/ui/cards/heart_rate_card.dart @@ -42,7 +42,7 @@ class HeartRateCardWidgetState extends State @override Widget build(BuildContext context) { return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -86,7 +86,7 @@ class HeartRateCardWidgetState extends State min == null || max == null ? '-' : '${(min.toInt())} - ${(max.toInt())}', - style: heartRateNumberStyle, + style: fs28fw700, ), ), Padding( @@ -95,9 +95,9 @@ class HeartRateCardWidgetState extends State min == null || max == null ? '' : locale.translate('cards.heartrate.bpm'), - style: heartRateBPMTextStyle.copyWith( + style: fs10fw700.copyWith( fontSize: 12, - color: Theme.of(context).extension()!.grey600, + color: Theme.of(context).extension()!.grey600, ), ), ), @@ -122,9 +122,9 @@ class HeartRateCardWidgetState extends State child: currentHeartRate != null ? Text( currentHeartRate.toStringAsFixed(0), - style: heartRateNumberStyle, + style: fs28fw700, ) - : Text('-', style: heartRateNumberStyle), + : Text('-', style: fs28fw700), ), Padding( padding: const EdgeInsets.only(bottom: 14), @@ -145,8 +145,9 @@ class HeartRateCardWidgetState extends State ), Text( locale.translate('cards.heartrate.bpm'), - style: heartRateBPMTextStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs10fw700.copyWith( + color: + Theme.of(context).extension()!.grey600, ), ), ], @@ -210,7 +211,7 @@ class HeartRateCardWidgetState extends State ), ), ], - heartRateNumberStyle, + fs28fw700, ); }, ), @@ -310,8 +311,8 @@ class HeartRateCardWidgetState extends State value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), maxLines: 1, ), diff --git a/lib/ui/cards/media_card.dart b/lib/ui/cards/media_card.dart index 1fe94b1c..c69d3c0f 100644 --- a/lib/ui/cards/media_card.dart +++ b/lib/ui/cards/media_card.dart @@ -19,7 +19,7 @@ class MediaCardWidgetState extends State { } return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -34,7 +34,7 @@ class MediaCardWidgetState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 5), - Text('$total MEDIA', style: dataCardTitleStyle), + Text('$total MEDIA', style: fs16fw400ls1), Column( children: widget.modelsList .asMap() @@ -47,8 +47,8 @@ class MediaCardWidgetState extends State { const SizedBox(height: 15), Text( '${entry.value.tasksDone} ${locale.translate('cards.${entry.value.taskType}.title')}', - style: dataCardTitleStyle.copyWith( - fontSize: 14), + style: + fs16fw400ls1.copyWith(fontSize: 14), ), LayoutBuilder(builder: (BuildContext context, diff --git a/lib/ui/cards/mobility_card.dart b/lib/ui/cards/mobility_card.dart index ee506136..20278945 100644 --- a/lib/ui/cards/mobility_card.dart +++ b/lib/ui/cards/mobility_card.dart @@ -30,7 +30,7 @@ class _MobilityCardState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -39,7 +39,7 @@ class _MobilityCardState extends State { children: [ Text( '$_homestay%', - style: dataVizCardTitleNumber.copyWith( + style: fs28fw700.copyWith( color: widget.colors[0], ), ), @@ -47,8 +47,9 @@ class _MobilityCardState extends State { padding: const EdgeInsets.only(left: 4.0), child: Text( "${locale.translate('cards.mobility.homestay')} ${_getDayName(touchedIndex)}", - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey900!, + style: fs12fw700.copyWith( + color: + Theme.of(context).extension()!.grey900!, ), ), ), @@ -58,8 +59,8 @@ class _MobilityCardState extends State { children: [ Text( "${widget.model.currentMonth} ${widget.model.startOfWeek} - ${int.parse(widget.model.endOfWeek) < int.parse(widget.model.startOfWeek) ? widget.model.nextMonth : widget.model.currentMonth} ${widget.model.endOfWeek}, ${widget.model.currentYear}", - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), Spacer(), @@ -81,7 +82,7 @@ class _MobilityCardState extends State { children: [ Text( '$_places', - style: dataVizCardBottomNumber.copyWith( + style: fs22fw700.copyWith( color: widget.colors[0], ), ), @@ -89,9 +90,9 @@ class _MobilityCardState extends State { padding: const EdgeInsets.all(4.0), child: Text( locale.translate('cards.mobility.places'), - style: dataVizCardBottomText.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey800), ), ), @@ -206,8 +207,8 @@ class _MobilityCardState extends State { value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ); @@ -221,8 +222,8 @@ class _MobilityCardState extends State { value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ); diff --git a/lib/ui/cards/scoreboard_card.dart b/lib/ui/cards/scoreboard_card.dart index 7ea6e62d..8a65d23d 100644 --- a/lib/ui/cards/scoreboard_card.dart +++ b/lib/ui/cards/scoreboard_card.dart @@ -54,41 +54,45 @@ class ScoreboardPersistentHeaderDelegate List childrenDays = [ Text(model.daysInStudy.toString(), - style: scoreNumberStyle.copyWith( - fontSize: calculateScrollAwareSizing(shrinkOffset, - scoreNumberStyleSmall.fontSize!, scoreNumberStyle.fontSize!), - color: Theme.of(context).extension()!.grey900)), + style: fs36fw800.copyWith( + fontSize: calculateScrollAwareSizing( + shrinkOffset, + fs20fw800.fontSize!, + fs36fw800.fontSize!), + color: Theme.of(context).extension()!.grey900)), if (shrinkOffset < offsetForShrink) Text(locale.translate('cards.scoreboard.days'), - style: scoreTextStyle.copyWith( - color: Theme.of(context).extension()!.grey900)), + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey900)), if (shrinkOffset > offsetForShrink) Padding( padding: const EdgeInsets.only(left: 8.0), child: Text(locale.translate('cards.scoreboard.days-short'), - style: scoreTextStyle.copyWith( - color: Theme.of(context).extension()!.grey900)), + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey900)), ) ]; List childrenTasks = [ Text(model.taskCompleted.toString(), - style: scoreNumberStyle.copyWith( - fontSize: calculateScrollAwareSizing(shrinkOffset, - scoreNumberStyleSmall.fontSize!, scoreNumberStyle.fontSize!), - color: Theme.of(context).extension()!.primary)), + style: fs36fw800.copyWith( + fontSize: calculateScrollAwareSizing( + shrinkOffset, + fs20fw800.fontSize!, + fs36fw800.fontSize!), + color: Theme.of(context).extension()!.primary)), if (shrinkOffset < offsetForShrink) Text(locale.translate('cards.scoreboard.tasks'), - style: scoreTextStyle.copyWith( - color: Theme.of(context).extension()!.primary)), + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.primary)), if (shrinkOffset > offsetForShrink) Expanded( flex: 0, child: Padding( padding: const EdgeInsets.only(left: 8.0), child: Text(locale.translate('cards.scoreboard.tasks-short'), - style: scoreTextStyle.copyWith( - color: Theme.of(context).extension()!.primary)), + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.primary)), ), ) ]; @@ -96,7 +100,7 @@ class ScoreboardPersistentHeaderDelegate return Container( height: height, decoration: BoxDecoration( - color: Theme.of(context).extension()!.white, + color: Theme.of(context).extension()!.white, borderRadius: BorderRadius.circular(8), // Rounded corners ), child: StreamBuilder( diff --git a/lib/ui/cards/steps_card.dart b/lib/ui/cards/steps_card.dart index d48823b8..ffb40e14 100644 --- a/lib/ui/cards/steps_card.dart +++ b/lib/ui/cards/steps_card.dart @@ -29,7 +29,7 @@ class StepsCardWidgetState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -38,16 +38,16 @@ class StepsCardWidgetState extends State { children: [ Text( _step > 0 ? '$_step' : '0', - style: dataVizCardTitleNumber.copyWith( - color: Theme.of(context).extension()!.grey900!, + style: fs28fw700.copyWith( + color: Theme.of(context).extension()!.grey900!, ), ), Padding( padding: const EdgeInsets.only(left: 4.0), child: Text( '${locale.translate('cards.steps.steps')} ${_getDayName(touchedIndex)}', - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ), @@ -57,8 +57,8 @@ class StepsCardWidgetState extends State { children: [ Text( "${widget.model.currentMonth} ${widget.model.startOfWeek} - ${int.parse(widget.model.endOfWeek) < int.parse(widget.model.startOfWeek) ? widget.model.nextMonth : widget.model.currentMonth} ${widget.model.endOfWeek}, ${widget.model.currentYear}", - style: dataVizCardTitleText.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs12fw700.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), Spacer(), @@ -172,8 +172,8 @@ class StepsCardWidgetState extends State { value.toInt() % meta.appliedInterval == 0 ? value.toInt().toString() : '', - style: dataCardRightTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs14ls1.copyWith( + color: Theme.of(context).extension()!.grey600, ), ), ); diff --git a/lib/ui/cards/study_progress_card.dart b/lib/ui/cards/study_progress_card.dart index c74e4cf6..800b6b46 100644 --- a/lib/ui/cards/study_progress_card.dart +++ b/lib/ui/cards/study_progress_card.dart @@ -19,7 +19,7 @@ class StudyProgressCardWidgetState extends State { widget.model.updateProgress(); return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: StreamBuilder( @@ -33,7 +33,7 @@ class StudyProgressCardWidgetState extends State { mainAxisAlignment: MainAxisAlignment.start, children: [ Text(locale.translate('cards.study_progress.title'), - style: dataCardTitleStyle), + style: fs16fw400ls1), ], ), ), diff --git a/lib/ui/cards/survey_card.dart b/lib/ui/cards/survey_card.dart index 92569b90..579b1b1f 100644 --- a/lib/ui/cards/survey_card.dart +++ b/lib/ui/cards/survey_card.dart @@ -21,7 +21,7 @@ class _SurveyCardState extends State { } return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -30,7 +30,7 @@ class _SurveyCardState extends State { Padding( padding: const EdgeInsets.only(left: 10.0), child: Text(locale.translate('cards.survey.title').toUpperCase(), - style: dataCardTitleStyle), + style: fs16fw400ls1), ), SizedBox( height: 160, @@ -57,7 +57,7 @@ class _SurveyCardState extends State { ); Widget text = Text( '${entry.value} ${locale.translate(entry.key).truncateTo(12)}', - style: legendStyle, + style: fs12fw400, ); return Row( children: [ @@ -83,9 +83,10 @@ class _SurveyCardState extends State { ), Text( '$totalSurveys', - style: surveysCardTotalTextStyle.copyWith( - color: - Theme.of(context).extension()!.grey800, + style: fs24fw700.copyWith( + color: Theme.of(context) + .extension()! + .grey800, ), ) ], diff --git a/lib/ui/carp_study_style.dart b/lib/ui/carp_study_style.dart index 3d6f935f..0ac9bfce 100644 --- a/lib/ui/carp_study_style.dart +++ b/lib/ui/carp_study_style.dart @@ -1,8 +1,8 @@ part of carp_study_app; @immutable -class CarpColors extends ThemeExtension { - const CarpColors({ +class StudyAppColors extends ThemeExtension { + const StudyAppColors({ this.primary, this.warningColor, this.backgroundGray, @@ -44,7 +44,7 @@ class CarpColors extends ThemeExtension { final Color? grey950; @override - CarpColors copyWith( + StudyAppColors copyWith( {Color? primary, Color? warningColor, Color? backgroundGray, @@ -61,7 +61,7 @@ class CarpColors extends ThemeExtension { Color? grey800, Color? grey900, Color? grey950}) { - return CarpColors( + return StudyAppColors( primary: primary ?? this.primary, warningColor: warningColor ?? this.warningColor, backgroundGray: backgroundGray ?? this.backgroundGray, @@ -82,11 +82,11 @@ class CarpColors extends ThemeExtension { } @override - CarpColors lerp(CarpColors? other, double t) { - if (other is! CarpColors) { + StudyAppColors lerp(StudyAppColors? other, double t) { + if (other is! StudyAppColors) { return this; } - return CarpColors( + return StudyAppColors( primary: Color.lerp(primary, other.primary, t), warningColor: Color.lerp(warningColor, other.warningColor, t), backgroundGray: Color.lerp(backgroundGray, other.backgroundGray, t), @@ -109,7 +109,7 @@ class CarpColors extends ThemeExtension { ThemeData carpStudyTheme = ThemeData.light().copyWith( extensions: >[ - CarpColors( + StudyAppColors( primary: const Color(0xff000000), warningColor: Colors.orange[500], backgroundGray: const Color(0xfff2f2f7), @@ -179,7 +179,7 @@ ThemeData carpStudyTheme = ThemeData.light().copyWith( ThemeData carpStudyDarkTheme = ThemeData.dark().copyWith( extensions: >[ - CarpColors( + StudyAppColors( primary: const Color(0xff24B2FF), warningColor: Colors.orange[700], backgroundGray: const Color(0xff0e0e0e), @@ -253,13 +253,13 @@ ThemeData carpStudyDarkTheme = ThemeData.dark().copyWith( // These TextStyles are now implemented in ResearchPackage -// TextStyle studyTitleStyle = +// TextStyle fs24fw600 = // const TextStyle(fontSize: 24, fontWeight: FontWeight.w600); -// TextStyle studyDetailsInfoTitle = +// TextStyle fs16fw700 = // const TextStyle(fontSize: 16, fontWeight: FontWeight.w700); -// TextStyle studyDetailsInfoMessage = +// TextStyle fs12fw700 = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w700); // TextStyle readMoreStudyStyle = @@ -278,29 +278,29 @@ ThemeData carpStudyDarkTheme = ThemeData.dark().copyWith( // TextStyle scoreTextStyle = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w700); -// TextStyle aboutStudyCardTitleStyle = +// TextStyle fs24fw700 = // const TextStyle(fontSize: 24, fontWeight: FontWeight.w700) // .apply(fontFamily: 'OpenSans'); -// TextStyle aboutCardTitleStyle = +// TextStyle fs20fw700 = // const TextStyle(fontSize: 20, fontWeight: FontWeight.w700) // .apply(fontFamily: 'OpenSans'); // TextStyle aboutCardInfoStyle = // const TextStyle(fontSize: 14, fontStyle: FontStyle.italic); -// TextStyle aboutCardSubtitleStyle = +// TextStyle fs16fw600 = // const TextStyle(fontSize: 16, fontWeight: FontWeight.w600); -// TextStyle aboutCardContentStyle = +// TextStyle fs16fw400 = // const TextStyle(fontSize: 16, fontWeight: FontWeight.w400) // .apply(fontFamily: 'OpenSans'); -// TextStyle aboutCardTimeAgoStyle = +// TextStyle fs10fw600 = // const TextStyle(fontSize: 10, fontWeight: FontWeight.w600) // .apply(fontFamily: 'OpenSans'); -// TextStyle sectionTitleStyle = +// TextStyle fs18fw700 = // const TextStyle(fontSize: 18, fontWeight: FontWeight.w700); // TextStyle inputFieldStyle = @@ -312,18 +312,18 @@ ThemeData carpStudyDarkTheme = ThemeData.dark().copyWith( // TextStyle studyDescriptionStyle = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w300); -// TextStyle dataCardTitleStyle = const TextStyle( +// TextStyle fs16fw400ls1 = const TextStyle( // fontSize: 16, fontWeight: FontWeight.w400, letterSpacing: 1); // TextStyle dataCardRightTitleStyle = // const TextStyle(fontSize: 14, letterSpacing: 1); // TextStyle measuresStyle = // const TextStyle(fontSize: 18, fontWeight: FontWeight.w400); -// TextStyle legendStyle = +// TextStyle fs12fw400 = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w400); -// TextStyle audioTitleStyle = +// TextStyle fs22fw700 = // const TextStyle(fontSize: 22, fontWeight: FontWeight.w700); -// TextStyle audioContentStyle = +// TextStyle fs16fw600 = // const TextStyle(fontSize: 16, fontWeight: FontWeight.w700); // TextStyle heartRateNumberStyle = @@ -343,27 +343,27 @@ ThemeData carpStudyDarkTheme = ThemeData.dark().copyWith( // TextStyle dataVizCardBottomText = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w700); -// TextStyle deviceTitle = +// TextStyle fs16fw700 = // const TextStyle(fontSize: 16, fontWeight: FontWeight.w700); -// TextStyle deviceSubtitle = +// TextStyle fs12fw700 = // const TextStyle(fontSize: 12, fontWeight: FontWeight.w700); // TextStyle healthServiceConnectTitleStyle = // const TextStyle(fontSize: 24, fontWeight: FontWeight.w700); -// TextStyle healthServiceConnectMessageStyle = +// TextStyle fs22fw700 = // const TextStyle(fontSize: 22, fontWeight: FontWeight.w700); -// TextStyle profileSectionStyle = +// TextStyle fs12fw600 = // TextStyle(fontSize: 12, fontWeight: FontWeight.w600); -// TextStyle profileTitleStyle = +// TextStyle fs14fw600 = // TextStyle(fontSize: 14, fontWeight: FontWeight.w600); -// TextStyle profileActionStyle = +// TextStyle fs16fw600 = // TextStyle(fontSize: 16, fontWeight: FontWeight.w600); // TextStyle timerStyle = // const TextStyle(fontSize: 36, fontWeight: FontWeight.w600); -// TextStyle studyNameStyle = +// TextStyle fs30fw800 = // const TextStyle(fontSize: 30.0, fontWeight: FontWeight.w800); diff --git a/lib/ui/pages/data_visualization_page.dart b/lib/ui/pages/data_visualization_page.dart index 56db1a91..373b3ca6 100644 --- a/lib/ui/pages/data_visualization_page.dart +++ b/lib/ui/pages/data_visualization_page.dart @@ -16,7 +16,7 @@ class _DataVisualizationPageState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( backgroundColor: - Theme.of(context).extension()!.backgroundGray, + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -38,9 +38,9 @@ class _DataVisualizationPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(locale.translate('pages.data_viz.title'), - style: aboutStudyCardTitleStyle.copyWith( + style: fs24fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, fontWeight: FontWeight.bold, )), @@ -60,9 +60,9 @@ class _DataVisualizationPageState extends State { padding: const EdgeInsets.symmetric( horizontal: 15, vertical: 24.0), child: Text(locale.translate('pages.data_viz.thanks'), - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey600, )), ), diff --git a/lib/ui/pages/device_list_page.dart b/lib/ui/pages/device_list_page.dart index 71543979..9e563688 100644 --- a/lib/ui/pages/device_list_page.dart +++ b/lib/ui/pages/device_list_page.dart @@ -49,7 +49,8 @@ class DeviceListPageState extends State { Widget build(BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -72,9 +73,10 @@ class DeviceListPageState extends State { children: [ Text( locale.translate('pages.devices.title'), - style: aboutStudyCardTitleStyle.copyWith( - color: - Theme.of(context).extension()!.grey900, + style: fs24fw700.copyWith( + color: Theme.of(context) + .extension()! + .grey900, fontWeight: FontWeight.bold, ), ), @@ -94,9 +96,9 @@ class DeviceListPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(locale.translate("pages.devices.message"), - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey600, )), const SizedBox(height: 15), @@ -134,7 +136,7 @@ class DeviceListPageState extends State { builder: (BuildContext context, Widget? widget) => Center( child: StudiesMaterial( backgroundColor: - Theme.of(context).extension()!.grey50!, + Theme.of(context).extension()!.grey50!, child: _cardListBuilder( leading: _smartphoneDevice[index].icon!, title: ( @@ -182,8 +184,7 @@ class DeviceListPageState extends State { child: Text( locale.translate( device.getDeviceStatusIcon as String), - style: aboutCardTitleStyle.copyWith( - color: Colors.white)), + style: fs20fw700.copyWith(color: Colors.white)), ), ), ); @@ -218,8 +219,7 @@ class DeviceListPageState extends State { child: Text( locale.translate( service.getServiceStatusIcon as String), - style: aboutCardTitleStyle.copyWith( - color: Colors.white), + style: fs20fw700.copyWith(color: Colors.white), ), ) : service.getServiceStatusIcon as Icon, @@ -255,8 +255,8 @@ class DeviceListPageState extends State { children: [ Text( title!.$1, - style: deviceTitle.copyWith( - color: Theme.of(context).extension()!.grey900, + style: fs16fw700.copyWith( + color: Theme.of(context).extension()!.grey900, ), ), SizedBox(width: 6), @@ -275,8 +275,9 @@ class DeviceListPageState extends State { alignment: Alignment.centerLeft, child: Text( subtitle, - style: deviceSubtitle.copyWith( - color: Theme.of(context).extension()!.grey700, + style: fs12fw700.copyWith( + color: + Theme.of(context).extension()!.grey700, ), ), ), @@ -300,7 +301,7 @@ class DeviceListPageState extends State { ) => Center( child: StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, child: StreamBuilder( stream: stream, initialData: initialData, diff --git a/lib/ui/pages/devices_page.authorization_dialog.dart b/lib/ui/pages/devices_page.authorization_dialog.dart index ec22957e..f7a6f370 100644 --- a/lib/ui/pages/devices_page.authorization_dialog.dart +++ b/lib/ui/pages/devices_page.authorization_dialog.dart @@ -32,7 +32,7 @@ class AuthorizationDialog extends StatelessWidget { Text( locale.translate( "pages.devices.connection.bluetooth_authorization.message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), Image( diff --git a/lib/ui/pages/devices_page.bluetooth_connection_page.dart b/lib/ui/pages/devices_page.bluetooth_connection_page.dart index 02b9db9d..0d0be9e1 100644 --- a/lib/ui/pages/devices_page.bluetooth_connection_page.dart +++ b/lib/ui/pages/devices_page.bluetooth_connection_page.dart @@ -50,7 +50,8 @@ class _BluetoothConnectionPageState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Stack( children: [ @@ -124,7 +125,7 @@ class _BluetoothConnectionPageState extends State { Flexible( child: Text( stepTitleMap[currentStep] ?? '', - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context).primaryColor, ), textAlign: TextAlign.center, @@ -169,7 +170,7 @@ class _BluetoothConnectionPageState extends State { _connectDevice(), selectedDevice != null, ElevatedButton.styleFrom( - backgroundColor: Theme.of(context).extension()!.primary, + backgroundColor: Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), TextStyle( @@ -190,7 +191,7 @@ class _BluetoothConnectionPageState extends State { }, true, ElevatedButton.styleFrom( - backgroundColor: Theme.of(context).extension()!.primary, + backgroundColor: Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), TextStyle( @@ -210,7 +211,7 @@ class _BluetoothConnectionPageState extends State { }, true, ElevatedButton.styleFrom( - backgroundColor: Theme.of(context).extension()!.primary, + backgroundColor: Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), TextStyle( @@ -309,7 +310,7 @@ class _BluetoothConnectionPageState extends State { "${locale.translate("pages.devices.connection.step.scan.1")} " "${locale.translate(device.typeName)} " "${locale.translate("pages.devices.connection.step.scan.2")}", - style: healthServiceConnectMessageStyle, + style: fs22fw700, textAlign: TextAlign.justify, ), Expanded( @@ -331,15 +332,15 @@ class _BluetoothConnectionPageState extends State { .map( (bluetoothDevice) => StudiesMaterial( // hasBorder: true, - backgroundColor: - Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context) + .extension()! + .grey50!, child: InkWell( child: ListTile( selected: bluetoothDevice.key == selected, title: Text( bluetoothDevice.value.device.platformName, - style: - healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( fontSize: 20, ), ), @@ -375,7 +376,7 @@ class _BluetoothConnectionPageState extends State { text: locale .translate("pages.devices.connection.instructions"), style: TextStyle( - color: Theme.of(context).extension()!.primary, + color: Theme.of(context).extension()!.primary, decoration: TextDecoration.underline, fontWeight: FontWeight.bold, ), @@ -391,8 +392,8 @@ class _BluetoothConnectionPageState extends State { ), ], ), - style: healthServiceConnectMessageStyle.copyWith( - color: Theme.of(context).extension()!.grey900), + style: fs22fw700.copyWith( + color: Theme.of(context).extension()!.grey900), textAlign: TextAlign.center, ), ) @@ -482,7 +483,7 @@ class _BluetoothConnectionPageState extends State { padding: const EdgeInsets.only(bottom: 20.0), child: Text( locale.translate(device.connectionInstructions!), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ), @@ -513,7 +514,7 @@ class _BluetoothConnectionPageState extends State { child: Text( ("${locale.translate("pages.devices.connection.step.confirm.1")} '${device?.platformName}' ${locale.translate("pages.devices.connection.step.confirm.2")}") .trim(), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ), diff --git a/lib/ui/pages/devices_page.disconnection_dialog.dart b/lib/ui/pages/devices_page.disconnection_dialog.dart index a1326908..0390df0e 100644 --- a/lib/ui/pages/devices_page.disconnection_dialog.dart +++ b/lib/ui/pages/devices_page.disconnection_dialog.dart @@ -26,7 +26,7 @@ class DisconnectionDialog extends StatelessWidget { children: [ Text( "${locale.translate("pages.devices.connection.disconnect_bluetooth.message")} ${locale.translate(device.name)}?", - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), Row( diff --git a/lib/ui/pages/devices_page.enable_bluetooth_dialog.dart b/lib/ui/pages/devices_page.enable_bluetooth_dialog.dart index 7c6d3aa6..72944dfc 100644 --- a/lib/ui/pages/devices_page.enable_bluetooth_dialog.dart +++ b/lib/ui/pages/devices_page.enable_bluetooth_dialog.dart @@ -31,7 +31,7 @@ class EnableBluetoothDialog extends StatelessWidget { Text( locale.translate( "pages.devices.connection.enable_bluetooth.message1"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), Padding( @@ -40,7 +40,7 @@ class EnableBluetoothDialog extends StatelessWidget { Text( locale.translate( "pages.devices.connection.enable_bluetooth.message2"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), if (Platform.isAndroid || Platform.isIOS) @@ -54,7 +54,7 @@ class EnableBluetoothDialog extends StatelessWidget { Text( locale.translate( "pages.devices.connection.enable_bluetooth.message3"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ], diff --git a/lib/ui/pages/devices_page.health_service_connect.dart b/lib/ui/pages/devices_page.health_service_connect.dart index 88dd4bd6..0a35387b 100644 --- a/lib/ui/pages/devices_page.health_service_connect.dart +++ b/lib/ui/pages/devices_page.health_service_connect.dart @@ -14,7 +14,7 @@ class HealthServiceConnectPage extends StatelessWidget { .first; return Scaffold( - backgroundColor: Theme.of(context).extension()!.grey100, + backgroundColor: Theme.of(context).extension()!.grey100, body: SafeArea( child: Container( child: Column( @@ -48,36 +48,36 @@ class HealthServiceConnectPage extends StatelessWidget { TextSpan( text: "${locale.translate("pages.devices.type.health.instructions.page2.part1")} ", - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, ), ), TextSpan( text: "${Platform.isAndroid ? locale.translate("pages.devices.type.health.instructions.page2.android.allow_all") : locale.translate("pages.devices.type.health.instructions.page2.ios.turn_on_all")} ", - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary, // Change to desired color ), ), TextSpan( text: "${locale.translate("pages.devices.type.health.instructions.page2.part2")} ", - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, ), ), TextSpan( text: "${locale.translate("pages.devices.type.health.instructions.page2.allow")} ", - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary, // Change to desired color ), ), @@ -87,9 +87,9 @@ class HealthServiceConnectPage extends StatelessWidget { "pages.devices.type.health.instructions.page2.part3.android") : locale.translate( "pages.devices.type.health.instructions.page2.part3.ios"), - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, ), ), @@ -126,7 +126,7 @@ class HealthServiceConnectPage extends StatelessWidget { ), style: ElevatedButton.styleFrom( backgroundColor: - Theme.of(context).extension()!.primary, + Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), diff --git a/lib/ui/pages/devices_page.list_title.dart b/lib/ui/pages/devices_page.list_title.dart index 339c4c7f..19f57309 100644 --- a/lib/ui/pages/devices_page.list_title.dart +++ b/lib/ui/pages/devices_page.list_title.dart @@ -23,8 +23,8 @@ class DevicesPageListTitle extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 6), child: Text( locale.translate("pages.devices.${type.name}.title").toUpperCase(), - style: dataCardTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey900, + style: fs16fw400ls1.copyWith( + color: Theme.of(context).extension()!.grey900, fontWeight: FontWeight.bold)), ), ); diff --git a/lib/ui/pages/enable_connection_dialog.dart b/lib/ui/pages/enable_connection_dialog.dart index 5ebb653d..cf5c7776 100644 --- a/lib/ui/pages/enable_connection_dialog.dart +++ b/lib/ui/pages/enable_connection_dialog.dart @@ -37,7 +37,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.general_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), Padding( @@ -45,7 +45,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { child: Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.wifi_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, )), Padding( @@ -60,7 +60,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { child: Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.mobile_data_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ), @@ -111,7 +111,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.general_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), Padding( @@ -119,7 +119,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { child: Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.wifi_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, )), Padding( @@ -135,7 +135,7 @@ class EnableInternetConnectionDialog extends StatelessWidget { Text( locale.translate( "pages.login.internet_connection.enable_internet_connections.mobile_data_message"), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ]), diff --git a/lib/ui/pages/home_page.dart b/lib/ui/pages/home_page.dart index 1257b9a2..791a9920 100644 --- a/lib/ui/pages/home_page.dart +++ b/lib/ui/pages/home_page.dart @@ -103,14 +103,15 @@ class HomePageState extends State { }); return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: widget.child, ), bottomNavigationBar: BottomNavigationBar( - backgroundColor: Theme.of(context).extension()!.white, + backgroundColor: Theme.of(context).extension()!.white, type: BottomNavigationBarType.fixed, - selectedItemColor: Theme.of(context).extension()!.primary, + selectedItemColor: Theme.of(context).extension()!.primary, //unselectedItemColor: Theme.of(context).primaryColor.withOpacity(0.8), items: [ BottomNavigationBarItem( diff --git a/lib/ui/pages/home_page.install_health_connect_dialog.dart b/lib/ui/pages/home_page.install_health_connect_dialog.dart index 2a60a0cf..2129ece0 100644 --- a/lib/ui/pages/home_page.install_health_connect_dialog.dart +++ b/lib/ui/pages/home_page.install_health_connect_dialog.dart @@ -14,7 +14,7 @@ class InstallHealthConnectDialog extends StatelessWidget { ), content: Text( locale.translate('pages.about.install_health_connect.description'), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), actions: [ diff --git a/lib/ui/pages/invitation_list_page.dart b/lib/ui/pages/invitation_list_page.dart index 0180d634..d6ddbadb 100644 --- a/lib/ui/pages/invitation_list_page.dart +++ b/lib/ui/pages/invitation_list_page.dart @@ -9,7 +9,8 @@ class InvitationListPage extends StatelessWidget { Widget build(BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: FutureBuilder>( future: bloc.backend.getInvitations(), builder: (context, snapshot) { @@ -38,7 +39,7 @@ class InvitationListPage extends StatelessWidget { slivers: [ SliverAppBar( backgroundColor: - Theme.of(context).extension()!.backgroundGray, + Theme.of(context).extension()!.backgroundGray, title: const CarpAppBar(), centerTitle: true, pinned: true, @@ -121,7 +122,7 @@ class InvitationMaterial extends StatelessWidget { Widget build(BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.white!, + backgroundColor: Theme.of(context).extension()!.white!, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), @@ -138,7 +139,7 @@ class InvitationMaterial extends StatelessWidget { Text( invitation.invitation.name, maxLines: 1, - style: studyTitleStyle.copyWith( + style: fs24fw600.copyWith( color: CACHET.TASK_COMPLETED_BLUE, overflow: TextOverflow.ellipsis), ), @@ -148,15 +149,17 @@ class InvitationMaterial extends StatelessWidget { TextSpan( text: locale.translate( 'invitation_list.roles_in_the_study.description'), - style: studyDetailsInfoTitle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs16fw700.copyWith( + color: + Theme.of(context).extension()!.grey600, fontSize: 12, ), ), TextSpan( text: invitation.participantRoleName, - style: studyDetailsInfoTitle.copyWith( - color: Theme.of(context).extension()!.grey600, + style: fs16fw700.copyWith( + color: + Theme.of(context).extension()!.grey600, fontSize: 12, ), ), @@ -166,8 +169,8 @@ class InvitationMaterial extends StatelessWidget { Text( invitation.invitation.description ?? '', maxLines: 2, - style: studyDetailsInfoTitle.copyWith( - color: Theme.of(context).extension()!.grey900, + style: fs16fw700.copyWith( + color: Theme.of(context).extension()!.grey900, overflow: TextOverflow.ellipsis, ), ), diff --git a/lib/ui/pages/invitation_page.dart b/lib/ui/pages/invitation_page.dart index 76199656..c7084b18 100644 --- a/lib/ui/pages/invitation_page.dart +++ b/lib/ui/pages/invitation_page.dart @@ -17,7 +17,8 @@ class InvitationDetailsPage extends StatelessWidget { var invitation = model.getInvitation(invitationId); return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: SafeArea( @@ -59,7 +60,7 @@ class InvitationDetailsPage extends StatelessWidget { padding: const EdgeInsets.only(top: 16.0), child: StudiesMaterial( backgroundColor: - Theme.of(context).extension()!.white!, + Theme.of(context).extension()!.white!, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), @@ -93,7 +94,7 @@ class InvitationDetailsPage extends StatelessWidget { padding: const EdgeInsets.only(top: 16.0), child: StudiesMaterial( backgroundColor: - Theme.of(context).extension()!.white!, + Theme.of(context).extension()!.white!, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), @@ -118,7 +119,7 @@ class InvitationDetailsPage extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 22.0, color: Theme.of(context) - .extension()! + .extension()! .primary, ), ), @@ -133,7 +134,7 @@ class InvitationDetailsPage extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 14, color: Theme.of(context) - .extension()! + .extension()! .grey600, ), maxLines: 1, diff --git a/lib/ui/pages/message_details_page.dart b/lib/ui/pages/message_details_page.dart index 09d7ec2e..757cf560 100644 --- a/lib/ui/pages/message_details_page.dart +++ b/lib/ui/pages/message_details_page.dart @@ -42,7 +42,7 @@ class MessageDetailsPage extends StatelessWidget { left: 26, right: 10, top: 16, bottom: 16), icon: Icon( Icons.arrow_back_ios, - color: Theme.of(context).extension()!.grey600, + color: Theme.of(context).extension()!.grey600, ), onPressed: () { if (context.canPop()) { @@ -55,9 +55,9 @@ class MessageDetailsPage extends StatelessWidget { Padding( padding: const EdgeInsets.symmetric(vertical: 10.0), child: Text(locale.translate(message.title!), - style: aboutCardTitleStyle.copyWith( + style: fs20fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900)), ), Spacer(), @@ -75,8 +75,7 @@ class MessageDetailsPage extends StatelessWidget { .split('.') .last .toLowerCase()), - style: aboutCardSubtitleStyle.copyWith( - color: Colors.white)), + style: fs16fw600.copyWith(color: Colors.white)), ), ), ), @@ -92,9 +91,9 @@ class MessageDetailsPage extends StatelessWidget { padding: const EdgeInsets.symmetric( horizontal: 10.0, vertical: 6.0), child: Text(locale.translate(message.subTitle!), - style: aboutCardContentStyle.copyWith( + style: fs16fw400.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700)), ) : const SizedBox.shrink(), @@ -123,9 +122,9 @@ class MessageDetailsPage extends StatelessWidget { if (message.message != null) Text( locale.translate(message.message!), - style: aboutCardContentStyle.copyWith( + style: fs16fw400.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), textAlign: TextAlign.justify, ) diff --git a/lib/ui/pages/process_message_page.dart b/lib/ui/pages/process_message_page.dart index df00b325..d9b4b131 100644 --- a/lib/ui/pages/process_message_page.dart +++ b/lib/ui/pages/process_message_page.dart @@ -70,11 +70,9 @@ class ProcessMessagePage extends StatelessWidget { const SizedBox(height: 40), messageImage(), const SizedBox(height: 20), - Center( - child: - Text(locale.translate(title), style: audioTitleStyle)), + Center(child: Text(locale.translate(title), style: fs22fw700)), const SizedBox(height: 10), - Text(locale.translate(description), style: audioContentStyle), + Text(locale.translate(description), style: fs16fw600), ]), ), bottomSheet: Row( diff --git a/lib/ui/pages/profile_page.dart b/lib/ui/pages/profile_page.dart index 14e53592..4b390de4 100644 --- a/lib/ui/pages/profile_page.dart +++ b/lib/ui/pages/profile_page.dart @@ -26,7 +26,7 @@ class ProfilePageState extends State { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.grey100, + backgroundColor: Theme.of(context).extension()!.grey100, body: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, @@ -43,7 +43,7 @@ class ProfilePageState extends State { icon: Icon(Icons.account_circle, color: Theme.of(context).primaryColor, size: 30), label: Text(locale.translate("pages.profile.title"), - style: aboutCardTitleStyle.copyWith( + style: fs20fw700.copyWith( color: Theme.of(context).primaryColor)), ), IconButton( @@ -215,7 +215,7 @@ class ProfilePageState extends State { Widget _buildSectionCard(BuildContext context, List children) { return Card( - color: Theme.of(context).extension()!.grey50, + color: Theme.of(context).extension()!.grey50, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0), ), @@ -225,7 +225,7 @@ class ProfilePageState extends State { children: ListTile.divideTiles( context: context, tiles: children, - color: Theme.of(context).extension()!.grey400, + color: Theme.of(context).extension()!.grey400, ).toList(), ), ), @@ -234,14 +234,13 @@ class ProfilePageState extends State { Widget _buildListTile(String title, String subtitle) { return ListTile( - title: Text(title, - style: profileSectionStyle.copyWith(color: CACHET.GREY_6)), + title: Text(title, style: fs12fw600.copyWith(color: CACHET.GREY_6)), subtitle: FittedBox( fit: BoxFit.scaleDown, alignment: Alignment.centerLeft, child: Text( subtitle, - style: profileTitleStyle, + style: fs14fw600, maxLines: 1, ), ), @@ -258,8 +257,8 @@ class ProfilePageState extends State { return ListTile( leading: leading, title: Text(title, - style: profileActionStyle.copyWith( - color: Theme.of(context).extension()!.grey900)), + style: fs16fw600.copyWith( + color: Theme.of(context).extension()!.grey900)), trailing: trailing, onTap: onTap, contentPadding: EdgeInsets.symmetric(vertical: 4, horizontal: 16), diff --git a/lib/ui/pages/study_details_page.dart b/lib/ui/pages/study_details_page.dart index 3270e39f..6f1673fc 100644 --- a/lib/ui/pages/study_details_page.dart +++ b/lib/ui/pages/study_details_page.dart @@ -10,10 +10,11 @@ class StudyDetailsPage extends StatelessWidget { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Container( - color: Theme.of(context).extension()!.backgroundGray, + color: Theme.of(context).extension()!.backgroundGray, child: Column( children: [ Padding( @@ -28,7 +29,7 @@ class StudyDetailsPage extends StatelessWidget { left: 26, right: 10, top: 16, bottom: 16), icon: Icon( Icons.arrow_back_ios, - color: Theme.of(context).extension()!.grey600, + color: Theme.of(context).extension()!.grey600, ), onPressed: () { if (context.canPop()) { @@ -41,9 +42,9 @@ class StudyDetailsPage extends StatelessWidget { Padding( padding: const EdgeInsets.symmetric(vertical: 10.0), child: Text(locale.translate(model.title), - style: aboutCardTitleStyle.copyWith( + style: fs20fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary)), ), ], @@ -76,7 +77,7 @@ class StudyDetailsPage extends StatelessWidget { context: context, leading: Icon(Icons.mail, color: Theme.of(context) - .extension()! + .extension()! .primary), trailing: const Icon(Icons.arrow_forward_ios, color: CACHET.GREY_6), @@ -92,7 +93,7 @@ class StudyDetailsPage extends StatelessWidget { context: context, leading: Icon(Icons.policy, color: Theme.of(context) - .extension()! + .extension()! .primary), trailing: const Icon(Icons.arrow_forward_ios, color: CACHET.GREY_6), @@ -111,7 +112,7 @@ class StudyDetailsPage extends StatelessWidget { context: context, leading: Icon(Icons.public, color: Theme.of(context) - .extension()! + .extension()! .primary), trailing: const Icon(Icons.arrow_forward_ios, color: CACHET.GREY_6), @@ -136,53 +137,53 @@ class StudyDetailsPage extends StatelessWidget { children: [ Text( locale.translate('widgets.study_card.responsible'), - style: studyDetailsInfoTitle.copyWith( + style: fs16fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), ), Padding( padding: const EdgeInsets.only(top: 4.0, bottom: 8), child: Text( locale.translate(model.responsibleName), - style: studyDetailsInfoMessage.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700), ), ), Text( locale.translate( 'widgets.study_card.participant_role'), - style: studyDetailsInfoTitle.copyWith( + style: fs16fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), ), Padding( padding: const EdgeInsets.only(top: 4.0, bottom: 8), child: Text( locale.translate(model.participantRole), - style: studyDetailsInfoMessage.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700), ), ), Text( locale.translate('widgets.study_card.device_role'), - style: studyDetailsInfoTitle.copyWith( + style: fs16fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), ), Padding( padding: const EdgeInsets.only(top: 4.0, bottom: 8), child: Text( locale.translate(model.deviceRole), - style: studyDetailsInfoMessage.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700), ), ), @@ -190,7 +191,7 @@ class StudyDetailsPage extends StatelessWidget { ), ), Divider( - color: Theme.of(context).extension()!.grey300, + color: Theme.of(context).extension()!.grey300, ), Padding( padding: const EdgeInsets.only(top: 16.0), @@ -201,36 +202,36 @@ class StudyDetailsPage extends StatelessWidget { Text( locale.translate( 'widgets.study_card.study_description'), - style: studyDetailsInfoTitle.copyWith( + style: fs16fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), ), Padding( padding: const EdgeInsets.only(top: 4.0, bottom: 8), child: Text( locale.translate(model.description), - style: studyDetailsInfoMessage.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700), ), ), Text( locale .translate('widgets.study_card.study_purpose'), - style: studyDetailsInfoTitle.copyWith( + style: fs16fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900), ), Padding( padding: const EdgeInsets.only(top: 4.0, bottom: 8), child: Text( locale.translate(model.purpose), - style: studyDetailsInfoMessage.copyWith( + style: fs12fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700), ), ), @@ -250,7 +251,7 @@ class StudyDetailsPage extends StatelessWidget { Widget _buildSectionCard(BuildContext context, List children) { return Card( margin: EdgeInsets.zero, - color: Theme.of(context).extension()!.white, + color: Theme.of(context).extension()!.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0), ), @@ -260,7 +261,7 @@ class StudyDetailsPage extends StatelessWidget { children: ListTile.divideTiles( context: context, tiles: children, - color: Theme.of(context).extension()!.grey300, + color: Theme.of(context).extension()!.grey300, ).toList(), ), ), @@ -278,8 +279,8 @@ class StudyDetailsPage extends StatelessWidget { return ListTile( leading: leading, title: Text(title, - style: profileActionStyle.copyWith( - color: Theme.of(context).extension()!.grey900)), + style: fs16fw600.copyWith( + color: Theme.of(context).extension()!.grey900)), trailing: trailing, onTap: onTap, contentPadding: EdgeInsets.symmetric(vertical: 4, horizontal: 16), diff --git a/lib/ui/pages/study_page.dart b/lib/ui/pages/study_page.dart index f89af343..6b3352b9 100644 --- a/lib/ui/pages/study_page.dart +++ b/lib/ui/pages/study_page.dart @@ -13,7 +13,8 @@ class StudyPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -87,7 +88,8 @@ class StudyPageState extends State { builder: (context, snapshot) { if (snapshot.data == true) { return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: + Theme.of(context).extension()!.grey50!, elevation: 8, child: Padding( padding: const EdgeInsets.only(left: 16.0), @@ -98,9 +100,9 @@ class StudyPageState extends State { padding: const EdgeInsets.all(8.0), child: Text( locale.translate('pages.about.app_update'), - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, ), ), @@ -149,7 +151,7 @@ class StudyPageState extends State { timeago.setLocaleMessages('es', timeago.EsMessages()); return StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, child: InkWell( onTap: () { if (onTap != null) { @@ -175,9 +177,10 @@ class StudyPageState extends State { Padding( padding: const EdgeInsets.symmetric(vertical: 8.0), child: Text(locale.translate(message.title!), - style: aboutStudyCardTitleStyle.copyWith( - color: - Theme.of(context).extension()!.primary)), + style: fs24fw700.copyWith( + color: Theme.of(context) + .extension()! + .primary)), ), if (message.subTitle != null && message.subTitle!.isNotEmpty) Row( @@ -185,9 +188,10 @@ class StudyPageState extends State { Expanded( child: Text( locale.translate(message.subTitle!), - style: aboutCardContentStyle.copyWith( - color: - Theme.of(context).extension()!.grey700, + style: fs16fw400.copyWith( + color: Theme.of(context) + .extension()! + .grey700, ), ), ), @@ -198,9 +202,9 @@ class StudyPageState extends State { Expanded( child: Text( "${locale.translate(message.message!).substring(0, (message.message!.length > 150) ? 150 : null)}...", - style: aboutCardContentStyle.copyWith( + style: fs16fw400.copyWith( color: - Theme.of(context).extension()!.grey900), + Theme.of(context).extension()!.grey900), textAlign: TextAlign.start, )), ]), @@ -249,7 +253,7 @@ class StudyPageState extends State { return StudiesMaterial( margin: const EdgeInsets.all(16.0), - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8), ), @@ -290,7 +294,7 @@ class StudyPageState extends State { .split('.') .last, maxLines: 2, - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: studyStatusColors[deploymentStatus]), ), ), @@ -301,9 +305,9 @@ class StudyPageState extends State { padding: const EdgeInsets.only(left: 16.0), child: Text( getStatusText(locale, deploymentStatus, snapshot), - style: aboutCardSubtitleStyle.copyWith( + style: fs16fw600.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, fontSize: 14, ), @@ -335,8 +339,8 @@ class StudyPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(locale.translate('Announcements'), - style: aboutStudyCardTitleStyle.copyWith( - color: Theme.of(context).extension()!.grey900, + style: fs24fw700.copyWith( + color: Theme.of(context).extension()!.grey900, fontWeight: FontWeight.bold, )), ], @@ -359,7 +363,7 @@ class StudyPageState extends State { return Container( child: StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, child: InkWell( onTap: () { if (onTap != null) { @@ -383,9 +387,9 @@ class StudyPageState extends State { child: Text( locale.translate(message.title!), overflow: TextOverflow.ellipsis, - style: aboutCardTitleStyle.copyWith( + style: fs20fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, ), ), @@ -410,9 +414,9 @@ class StudyPageState extends State { Expanded( child: Text( locale.translate(message.subTitle!), - style: aboutCardContentStyle.copyWith( + style: fs16fw400.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey700, ), ), @@ -420,9 +424,10 @@ class StudyPageState extends State { Spacer(), Text( timeago.format(message.timestamp.toLocal()), - style: aboutCardTimeAgoStyle.copyWith( - color: - Theme.of(context).extension()!.grey600, + style: fs10fw600.copyWith( + color: Theme.of(context) + .extension()! + .grey600, ), ) ], @@ -436,7 +441,7 @@ class StudyPageState extends State { locale.translate(message.message!).length > 150 ? '${locale.translate(message.message!).substring(0, 150)}...' : locale.translate(message.message!), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.start, )), ], diff --git a/lib/ui/pages/task_list_page.dart b/lib/ui/pages/task_list_page.dart index 1aec37ac..fe8fc074 100644 --- a/lib/ui/pages/task_list_page.dart +++ b/lib/ui/pages/task_list_page.dart @@ -29,7 +29,7 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { padding: const EdgeInsets.symmetric(vertical: 4), decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), - color: Theme.of(context).extension()!.grey200, + color: Theme.of(context).extension()!.grey200, ), child: _tabBar, ); @@ -69,7 +69,7 @@ class TaskListPageState extends State length: 2, child: Scaffold( backgroundColor: - Theme.of(context).extension()!.backgroundGray, + Theme.of(context).extension()!.backgroundGray, body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -97,9 +97,9 @@ class TaskListPageState extends State alignment: Alignment.centerLeft, child: Text( locale.translate('pages.task_list.title'), - style: aboutStudyCardTitleStyle.copyWith( + style: fs24fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .grey900, fontWeight: FontWeight.bold, ), @@ -125,10 +125,10 @@ class TaskListPageState extends State labelPadding: const EdgeInsets.only( top: 4, bottom: 4, left: 4, right: 4), labelColor: Theme.of(context) - .extension()! + .extension()! .grey900, unselectedLabelColor: Theme.of(context) - .extension()! + .extension()! .grey900, dividerColor: Colors.transparent, indicator: ShapeDecoration( @@ -136,7 +136,7 @@ class TaskListPageState extends State borderRadius: BorderRadius.circular(8), ), color: Theme.of(context) - .extension()! + .extension()! .white, ), tabs: [ @@ -208,7 +208,7 @@ class TaskListPageState extends State right: Radius.circular(8.0), ), ), - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, child: Padding( padding: const EdgeInsets.symmetric(vertical: 16), child: IntrinsicHeight( @@ -291,7 +291,7 @@ class TaskListPageState extends State backgroundColor: userTask.expiresIn != null && userTask.expiresIn!.inHours < 24 ? CACHET.TASK_TO_EXPIRE_BACKGROUND - : Theme.of(context).extension()!.grey50!, + : Theme.of(context).extension()!.grey50!, child: Padding( padding: const EdgeInsets.symmetric(vertical: 16), child: IntrinsicHeight( @@ -328,7 +328,7 @@ class TaskListPageState extends State color: userTask.expiresIn != null && userTask.expiresIn!.inHours < 24 ? Theme.of(context) - .extension()! + .extension()! .warningColor : Colors.grey, ), @@ -341,7 +341,7 @@ class TaskListPageState extends State color: userTask.expiresIn != null && userTask.expiresIn!.inHours < 24 ? Theme.of(context) - .extension()! + .extension()! .warningColor : Colors.grey, fontSize: 12.0, @@ -411,7 +411,7 @@ class TaskListPageState extends State userTask.onDone(); ScaffoldMessenger.of(context).showSnackBar(SnackBar( backgroundColor: - Theme.of(context).extension()!.grey700, + Theme.of(context).extension()!.grey700, content: Text(locale.translate('Done!')), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(4), @@ -453,7 +453,7 @@ class TaskListPageState extends State return Icon(originalIcon.icon, color: CACHET.TASK_COMPLETED_BLUE); } else { return Icon(originalIcon.icon, - color: Theme.of(context).extension()!.grey600); + color: Theme.of(context).extension()!.grey600); } }, ); @@ -493,7 +493,7 @@ class TaskListPageState extends State return Center( child: GestureDetector( child: StudiesMaterial( - backgroundColor: Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context).extension()!.grey50!, hasBorder: true, shape: RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( @@ -541,7 +541,7 @@ class TaskListPageState extends State color: userTask.expiresIn != null && userTask.expiresIn!.inHours < 24 ? Theme.of(context) - .extension()! + .extension()! .warningColor : Colors.grey, fontSize: 12.0, @@ -600,7 +600,7 @@ class TaskListPageState extends State padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), child: Text( locale.translate("pages.task_list.no_tasks"), - style: aboutCardSubtitleStyle, + style: fs16fw600, textAlign: TextAlign.center, )) ], diff --git a/lib/ui/tasks/audio_page.dart b/lib/ui/tasks/audio_page.dart index 74f9da9a..f236941e 100644 --- a/lib/ui/tasks/audio_page.dart +++ b/lib/ui/tasks/audio_page.dart @@ -37,7 +37,7 @@ class AudioPageState extends State { Spacer(), IconButton( color: Theme.of(context) - .extension()! + .extension()! .grey900!, onPressed: () { _showCancelConfirmationDialog(); @@ -66,16 +66,16 @@ class AudioPageState extends State { locale.translate( widget.audioUserTask!.title, ), - style: audioTitleStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary, ), ), ), StudiesMaterial( backgroundColor: Theme.of(context) - .extension()! + .extension()! .white!, child: Scrollbar( child: SingleChildScrollView( @@ -89,7 +89,7 @@ class AudioPageState extends State { widget.audioUserTask! .instructions, ), - style: audioContentStyle, + style: fs16fw600, ), ), ), @@ -99,7 +99,7 @@ class AudioPageState extends State { CircleAvatar( radius: 30, backgroundColor: Theme.of(context) - .extension()! + .extension()! .primary, child: IconButton( onPressed: () => widget.audioUserTask! @@ -118,7 +118,7 @@ class AudioPageState extends State { child: Text( locale.translate( "pages.audio_task.play"), - style: audioContentStyle, + style: fs16fw600, ), ), ], @@ -135,16 +135,16 @@ class AudioPageState extends State { locale.translate( widget.audioUserTask!.title, ), - style: audioTitleStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary, ), ), ), StudiesMaterial( backgroundColor: Theme.of(context) - .extension()! + .extension()! .white!, child: Scrollbar( child: SingleChildScrollView( @@ -157,7 +157,7 @@ class AudioPageState extends State { locale.translate(widget .audioUserTask! .instructions), - style: audioContentStyle, + style: fs16fw600, ), ), ), @@ -193,7 +193,7 @@ class AudioPageState extends State { child: Text( locale.translate( "pages.audio_task.recording"), - style: audioTitleStyle, + style: fs22fw700, ), ), ], @@ -209,9 +209,9 @@ class AudioPageState extends State { child: Text( locale.translate( 'pages.audio_task.done'), - style: audioTitleStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context) - .extension()! + .extension()! .primary, ), ), @@ -222,7 +222,7 @@ class AudioPageState extends State { child: Text( locale.translate( 'pages.audio_task.recording_completed'), - style: audioContentStyle), + style: fs16fw600), ), Spacer(), Padding( @@ -245,7 +245,7 @@ class AudioPageState extends State { icon: Icon( Icons.replay, color: Theme.of(context) - .extension()! + .extension()! .grey700, size: 30, ), diff --git a/lib/ui/tasks/audio_task_page.dart b/lib/ui/tasks/audio_task_page.dart index aa589ef8..46518caa 100644 --- a/lib/ui/tasks/audio_task_page.dart +++ b/lib/ui/tasks/audio_task_page.dart @@ -33,8 +33,9 @@ class AudioTaskPageState extends State { ), Spacer(), IconButton( - color: - Theme.of(context).extension()!.grey900!, + color: Theme.of(context) + .extension()! + .grey900!, onPressed: () { _showCancelConfirmationDialog(); }, @@ -55,7 +56,7 @@ class AudioTaskPageState extends State { Padding( padding: const EdgeInsets.symmetric(vertical: 12), child: Text(locale.translate(widget.audioUserTask!.title), - style: audioTitleStyle), + style: fs22fw700), ), Padding( padding: const EdgeInsets.symmetric( @@ -63,7 +64,7 @@ class AudioTaskPageState extends State { child: Text( '${locale.translate(widget.audioUserTask!.description)}\n\n' '${locale.translate('pages.audio_task.play')}', - style: audioContentStyle, + style: fs16fw600, ), ), Padding( @@ -89,7 +90,7 @@ class AudioTaskPageState extends State { ), style: ElevatedButton.styleFrom( backgroundColor: Theme.of(context) - .extension()! + .extension()! .primary, padding: const EdgeInsets.symmetric( horizontal: 30, diff --git a/lib/ui/tasks/camera_task_page.dart b/lib/ui/tasks/camera_task_page.dart index 251d36e9..6d827520 100644 --- a/lib/ui/tasks/camera_task_page.dart +++ b/lib/ui/tasks/camera_task_page.dart @@ -45,7 +45,7 @@ class CameraTaskPageState extends State { Spacer(), IconButton( color: Theme.of(context) - .extension()! + .extension()! .grey900!, onPressed: () { _showCancelConfirmationDialog(); @@ -74,7 +74,7 @@ class CameraTaskPageState extends State { child: Text( locale.translate( widget.mediaUserTask.title), - style: audioTitleStyle, + style: fs22fw700, ), ), Padding( @@ -83,7 +83,7 @@ class CameraTaskPageState extends State { child: Text( locale.translate( widget.mediaUserTask.description), - style: audioContentStyle, + style: fs16fw600, ), ), Padding( @@ -112,7 +112,7 @@ class CameraTaskPageState extends State { ), style: ElevatedButton.styleFrom( backgroundColor: Theme.of(context) - .extension()! + .extension()! .primary, padding: const EdgeInsets.symmetric( horizontal: 30, diff --git a/lib/ui/tasks/display_picture_page.dart b/lib/ui/tasks/display_picture_page.dart index bd7df449..29cff952 100644 --- a/lib/ui/tasks/display_picture_page.dart +++ b/lib/ui/tasks/display_picture_page.dart @@ -60,7 +60,7 @@ class DisplayPicturePageState extends State { ), Spacer(), IconButton( - color: Theme.of(context).extension()!.grey900!, + color: Theme.of(context).extension()!.grey900!, onPressed: () { _showCancelConfirmationDialog(); }, @@ -97,14 +97,14 @@ class DisplayPicturePageState extends State { Padding( padding: const EdgeInsets.symmetric(horizontal: 10), child: Text(locale.translate('pages.audio_task.done'), - style: audioTitleStyle), + style: fs22fw700), ), const SizedBox(height: 40), Padding( padding: const EdgeInsets.symmetric(horizontal: 10), child: Text( locale.translate('pages.audio_task.recording_completed'), - style: audioContentStyle, + style: fs16fw600, ), ), const SizedBox(height: 20), diff --git a/lib/ui/tasks/participant_data_page.dart b/lib/ui/tasks/participant_data_page.dart index adb2ae4f..23c1320f 100644 --- a/lib/ui/tasks/participant_data_page.dart +++ b/lib/ui/tasks/participant_data_page.dart @@ -266,7 +266,8 @@ class ParticipantDataPageState extends State { Widget build(BuildContext context) { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray!, + backgroundColor: + Theme.of(context).extension()!.backgroundGray!, body: SafeArea( child: Container( padding: const EdgeInsets.all(16.0), @@ -283,7 +284,7 @@ class ParticipantDataPageState extends State { ), Spacer(), IconButton( - color: Theme.of(context).extension()!.grey900!, + color: Theme.of(context).extension()!.grey900!, onPressed: () { _showCancelConfirmationDialog(); }, @@ -357,7 +358,7 @@ class ParticipantDataPageState extends State { Flexible( child: Text( stepTitleMap[currentStep] ?? '', - style: healthServiceConnectMessageStyle.copyWith( + style: fs22fw700.copyWith( color: Theme.of(context).primaryColor, ), textAlign: TextAlign.center, @@ -548,7 +549,8 @@ class ParticipantDataPageState extends State { child: Container( decoration: BoxDecoration( border: Border.all( - color: Theme.of(context).extension()!.grey600!, + color: + Theme.of(context).extension()!.grey600!, width: 1.0, ), borderRadius: BorderRadius.circular(16.0), @@ -564,8 +566,9 @@ class ParticipantDataPageState extends State { showCountryOnly: true, showOnlyCountryWhenClosed: true, alignLeft: false, - textStyle: audioContentStyle.copyWith( - color: Theme.of(context).extension()!.grey900!, + textStyle: fs16fw600.copyWith( + color: + Theme.of(context).extension()!.grey900!, ), ), ), @@ -681,7 +684,7 @@ class ParticipantDataPageState extends State { _nextEnabled, ElevatedButton.styleFrom( backgroundColor: - Theme.of(context).extension()!.primary, + Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), @@ -702,7 +705,7 @@ class ParticipantDataPageState extends State { currentStep == ParticipantStep.presentTypes ? true : _nextEnabled, ElevatedButton.styleFrom( backgroundColor: - Theme.of(context).extension()!.primary, + Theme.of(context).extension()!.primary, padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 12), ), diff --git a/lib/ui/widgets/charts_legend.dart b/lib/ui/widgets/charts_legend.dart index 1c17583f..12f0a434 100644 --- a/lib/ui/widgets/charts_legend.dart +++ b/lib/ui/widgets/charts_legend.dart @@ -26,7 +26,7 @@ class ChartsLegend extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(title.toUpperCase(), style: dataCardTitleStyle), + Text(title.toUpperCase(), style: fs16fw400ls1), Padding( padding: const EdgeInsets.symmetric(vertical: 8.0), child: Row( @@ -39,7 +39,7 @@ class ChartsLegend extends StatelessWidget { children: [ Icon(Icons.circle, color: colors[entry.key], size: 12.0), - Text(' ${entry.value} ', style: legendStyle), + Text(' ${entry.value} ', style: fs12fw400), ], ), ) diff --git a/lib/ui/widgets/details_banner.dart b/lib/ui/widgets/details_banner.dart index d0f4c06b..cc070eb2 100644 --- a/lib/ui/widgets/details_banner.dart +++ b/lib/ui/widgets/details_banner.dart @@ -29,7 +29,7 @@ class DetailsBanner extends StatelessWidget { children: [ Text( locale.translate(title), - style: studyNameStyle.copyWith( + style: fs30fw800.copyWith( fontSize: 30, color: Theme.of(context).primaryColor), ), ], diff --git a/lib/ui/widgets/dialog_title.dart b/lib/ui/widgets/dialog_title.dart index 884f2155..51ed72ac 100644 --- a/lib/ui/widgets/dialog_title.dart +++ b/lib/ui/widgets/dialog_title.dart @@ -48,7 +48,7 @@ class DialogTitle extends StatelessWidget { (titleEnd != null ? ' ${locale.translate(titleEnd!)}' : ""), - style: sectionTitleStyle.copyWith( + style: fs18fw700.copyWith( color: Theme.of(context).primaryColor, ), textAlign: TextAlign.center, diff --git a/lib/ui/widgets/horizontal_bar.dart b/lib/ui/widgets/horizontal_bar.dart index 89e696b4..bc3b3aa6 100644 --- a/lib/ui/widgets/horizontal_bar.dart +++ b/lib/ui/widgets/horizontal_bar.dart @@ -158,7 +158,7 @@ class MyAssetsBar extends StatelessWidget { children: [ Icon(Icons.circle, color: entry.value.color, size: 12.0), Text(' ${entry.value.name!} ${entry.value.size}', - style: legendStyle, textAlign: TextAlign.right), + style: fs12fw400, textAlign: TextAlign.right), ], )), ) @@ -187,10 +187,10 @@ class MyAssetsBar extends StatelessWidget { children: [ Icon(Icons.circle, color: entry.value.color, size: 12.0), Text(' ${entry.value.size}', - style: legendStyle, textAlign: TextAlign.left), + style: fs12fw400, textAlign: TextAlign.left), Expanded( child: Text(' ${entry.value.name!}', - style: legendStyle, + style: fs12fw400, textAlign: TextAlign.left, overflow: TextOverflow.ellipsis)), ], diff --git a/lib/ui/widgets/location_permission_page.dart b/lib/ui/widgets/location_permission_page.dart index 5732b9f8..c4fce61a 100644 --- a/lib/ui/widgets/location_permission_page.dart +++ b/lib/ui/widgets/location_permission_page.dart @@ -5,7 +5,8 @@ class LocationPermissionPage { RPLocalizations locale = RPLocalizations.of(context)!; return Scaffold( - backgroundColor: Theme.of(context).extension()!.backgroundGray, + backgroundColor: + Theme.of(context).extension()!.backgroundGray, body: Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: SafeArea( @@ -27,7 +28,7 @@ class LocationPermissionPage { padding: const EdgeInsets.only(top: 16.0), child: StudiesMaterial( backgroundColor: - Theme.of(context).extension()!.white!, + Theme.of(context).extension()!.white!, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), @@ -55,7 +56,7 @@ class LocationPermissionPage { fontWeight: FontWeight.bold, fontSize: 22.0, color: Theme.of(context) - .extension()! + .extension()! .primary, ), ), @@ -67,14 +68,14 @@ class LocationPermissionPage { child: Icon( Icons.location_on, color: Theme.of(context) - .extension()! + .extension()! .primary, size: 48, ), ), Text( locale.translate(message), - style: aboutCardContentStyle.copyWith( + style: fs16fw400.copyWith( fontWeight: FontWeight.bold, ), textAlign: TextAlign.justify, diff --git a/lib/ui/widgets/location_usage_dialog.dart b/lib/ui/widgets/location_usage_dialog.dart index 35642004..33f5599a 100644 --- a/lib/ui/widgets/location_usage_dialog.dart +++ b/lib/ui/widgets/location_usage_dialog.dart @@ -16,7 +16,7 @@ class LocationUsageDialog { height: MediaQuery.of(context).size.height * 0.15, ), Text(locale.translate("dialog.location.permission"), - style: aboutCardTitleStyle), + style: fs20fw700), ], ), contentPadding: const EdgeInsets.all(15), @@ -28,7 +28,7 @@ class LocationUsageDialog { children: [ Text( locale.translate(message), - style: aboutCardContentStyle, + style: fs16fw400, textAlign: TextAlign.justify, ), ], diff --git a/pubspec.lock b/pubspec.lock index eb591be0..fcaa4258 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "409002f1adeea601018715d613115cfaf0e31f512cb80ae4534c79867ae2363d" + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.1.1" build_resolvers: dependency: transitive description: @@ -205,10 +205,10 @@ packages: dependency: "direct main" description: name: camera_android_camerax - sha256: b68b638e5e0ede21155e670493ac568981a8f56c5f636d720935a916a1c5a0ef + sha256: d5256612833f9169c1698599a87370490622a188c5a7fb601169bb7b2f41f22b url: "https://pub.dev" source: hosted - version: "0.6.24" + version: "0.6.24+1" camera_avfoundation: dependency: transitive description: @@ -321,6 +321,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + carp_themes_package: + dependency: "direct main" + description: + name: carp_themes_package + sha256: "48e747c82392db406531289828b4143275b28736354fb9e7bc62cfe1a189d675" + url: "https://pub.dev" + source: hosted + version: "0.0.3" carp_webservices: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 9e33afbf..e79d9a81 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: carp_study_app description: The generic CARP study app. publish_to: "none" -version: 4.1.1+87 +version: 4.2.0+88 environment: sdk: ">=3.2.0 <4.0.0" @@ -21,6 +21,7 @@ dependencies: carp_polar_package: ^1.6.1 carp_health_package: ^3.2.0 carp_movesense_package: ^1.7.2 + carp_themes_package: ^0.0.1 carp_webservices: ^3.8.0 carp_backend: ^1.9.2 From a0d78d589a56a345cf8d60595300de6b64025b22 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:03:46 +0100 Subject: [PATCH 14/17] bumping version code --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 28c79c5e..428642a4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: carp_study_app description: The generic CARP study app. publish_to: "none" -version: 4.1.1+87 +version: 4.1.1+88 environment: sdk: ">=3.2.0 <4.0.0" From d9d0fd29da9298404ed1dbbefeed3a1e5fc5b0cb Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Tue, 11 Nov 2025 16:10:32 +0100 Subject: [PATCH 15/17] fixing changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4174efc..40280f63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ * moving to carp_themes_package instead of research package themes +## 4.1.1 + +- small visual fixes + ## 4.1.0 - Now supporting anonymous user authentication From ced8d7966c264728fd74b283ec739c9c61cee263 Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Tue, 11 Nov 2025 16:20:03 +0100 Subject: [PATCH 16/17] formatting --- lib/ui/pages/devices_page.bluetooth_connection_page.dart | 6 +++--- lib/ui/pages/task_list_page.dart | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/ui/pages/devices_page.bluetooth_connection_page.dart b/lib/ui/pages/devices_page.bluetooth_connection_page.dart index 02b9db9d..ac0d0690 100644 --- a/lib/ui/pages/devices_page.bluetooth_connection_page.dart +++ b/lib/ui/pages/devices_page.bluetooth_connection_page.dart @@ -330,9 +330,9 @@ class _BluetoothConnectionPageState extends State { .entries .map( (bluetoothDevice) => StudiesMaterial( - // hasBorder: true, - backgroundColor: - Theme.of(context).extension()!.grey50!, + backgroundColor: Theme.of(context) + .extension()! + .grey50!, child: InkWell( child: ListTile( selected: bluetoothDevice.key == selected, diff --git a/lib/ui/pages/task_list_page.dart b/lib/ui/pages/task_list_page.dart index 1aec37ac..ddef55c6 100644 --- a/lib/ui/pages/task_list_page.dart +++ b/lib/ui/pages/task_list_page.dart @@ -45,7 +45,7 @@ class TaskListPageState extends State with TickerProviderStateMixin { late TabController _tabController; - bool? showParticipantDataCard = false; + bool showParticipantDataCard = false; @override void initState() { @@ -159,7 +159,7 @@ class TaskListPageState extends State ), ), ), - if (showParticipantDataCard!) + if (showParticipantDataCard) SliverToBoxAdapter( child: _buildParticipantDataCard(), ), From f7916542dfaea595b8786d0ebc062b33f5726efd Mon Sep 17 00:00:00 2001 From: Panagiotis Giannoutsos <36935711+Panosfunk@users.noreply.github.com> Date: Tue, 11 Nov 2025 16:23:37 +0100 Subject: [PATCH 17/17] formating --- lib/ui/cards/scoreboard_card.dart | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/ui/cards/scoreboard_card.dart b/lib/ui/cards/scoreboard_card.dart index 8a65d23d..bcdc706e 100644 --- a/lib/ui/cards/scoreboard_card.dart +++ b/lib/ui/cards/scoreboard_card.dart @@ -56,9 +56,7 @@ class ScoreboardPersistentHeaderDelegate Text(model.daysInStudy.toString(), style: fs36fw800.copyWith( fontSize: calculateScrollAwareSizing( - shrinkOffset, - fs20fw800.fontSize!, - fs36fw800.fontSize!), + shrinkOffset, fs20fw800.fontSize!, fs36fw800.fontSize!), color: Theme.of(context).extension()!.grey900)), if (shrinkOffset < offsetForShrink) Text(locale.translate('cards.scoreboard.days'), @@ -77,9 +75,7 @@ class ScoreboardPersistentHeaderDelegate Text(model.taskCompleted.toString(), style: fs36fw800.copyWith( fontSize: calculateScrollAwareSizing( - shrinkOffset, - fs20fw800.fontSize!, - fs36fw800.fontSize!), + shrinkOffset, fs20fw800.fontSize!, fs36fw800.fontSize!), color: Theme.of(context).extension()!.primary)), if (shrinkOffset < offsetForShrink) Text(locale.translate('cards.scoreboard.tasks'),