Skip to content

Commit

Permalink
fix: migrate to null safety (#182)
Browse files Browse the repository at this point in the history
* rfac: migrate models to null safety
* rfac: migrate services to null safety
* rfac: migrate ui to null safety
* rfac: migrate utils to null safety
* rfac: migrate viewmodels to null safety
* rfac: migrate model test to null safety
* rfac: migrate service test to null safety
* bfix: fix user profile bugs
* rfac: refactor service test
* bfix: fix utils test
* bfix: fix viewmodel test
* rfac: refactor lib folder
* rfac: refactor test folder
* bump version and refactor ci workflow
* conf: move image test to test folder
* rfac: refactor dialog service
* rfac: fix mock network image test
* rfac: refactor test folder
* fix(ios): update pods and bump ios deployment version to 10
* The null safe flutter_facebook_auth uses min ios 10.0 version

Signed-off-by: Manjot Sidhu <[email protected]>

* docs: update buildrunner command in readme

Co-authored-by: Manjot Sidhu <[email protected]>
  • Loading branch information
aman-singh7 and manjotsidhu authored Jan 14, 2022
1 parent 9a2aa6f commit 99793de
Show file tree
Hide file tree
Showing 177 changed files with 1,783 additions and 1,542 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- run: flutter pub get

# Run build runner to generate dart files
- run: flutter packages pub run --no-sound-null-safety build_runner build --delete-conflicting-outputs
- run: flutter packages pub run build_runner build --delete-conflicting-outputs

# Check for any formatting issues in the code.
- run: flutter format --set-exit-if-changed .
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ A detailed guide for multiple platforms setup could be find [here](https://flutt
- `flutter pub get` to get all the dependencies.
- Generate files using Builder Runner (**required**)
```
flutter packages pub run --no-sound-null-safety build_runner build
flutter packages pub run build_runner build
```
- Switch to mobile-app's git hooks (**optional but recommended**)
```
Expand Down
2 changes: 1 addition & 1 deletion ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
platform :ios, '10.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
79 changes: 35 additions & 44 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,24 @@ PODS:
- AppAuth/ExternalUserAgent (= 1.4.0)
- AppAuth/Core (1.4.0)
- AppAuth/ExternalUserAgent (1.4.0)
- FBAEMKit (11.2.1):
- FBAEMKit/AEM (= 11.2.1)
- FBAEMKit/AEM (11.2.1):
- FBSDKCoreKit_Basics (~> 11.2.1)
- FBSDKCoreKit (11.2.1):
- FBSDKCoreKit/Core (= 11.2.1)
- FBSDKCoreKit/Core (11.2.1):
- FBAEMKit (~> 11.2.1)
- FBSDKCoreKit_Basics (~> 11.2.1)
- FBSDKCoreKit_Basics (11.2.1):
- FBSDKCoreKit_Basics/Basics (= 11.2.1)
- FBSDKCoreKit_Basics/Basics (11.2.1)
- FBSDKLoginKit (11.2.1):
- FBSDKLoginKit/Login (= 11.2.1)
- FBSDKLoginKit/Login (11.2.1):
- FBSDKCoreKit (~> 11.2.1)
- FBSDKCoreKit_Basics (~> 11.2.1)
- FBAEMKit (12.1.0):
- FBSDKCoreKit_Basics (= 12.1.0)
- FBSDKCoreKit (12.1.0):
- FBAEMKit (= 12.1.0)
- FBSDKCoreKit_Basics (= 12.1.0)
- FBSDKCoreKit_Basics (12.1.0)
- FBSDKLoginKit (12.1.0):
- FBSDKCoreKit (= 12.1.0)
- Flutter (1.0.0)
- flutter_facebook_auth (3.5.1):
- FBSDKCoreKit (~> 11.2.0)
- FBSDKLoginKit (~> 11.2.0)
- flutter_facebook_auth (3.5.3):
- FBSDKCoreKit (~> 12.1.0)
- FBSDKLoginKit (~> 12.1.0)
- Flutter
- flutter_keyboard_visibility (0.0.1):
- Flutter
- flutter_secure_storage (3.3.1):
- Flutter
- flutter_web_auth (0.3.1):
- flutter_web_auth (0.3.2):
- Flutter
- google_sign_in (0.0.1):
- Flutter
Expand All @@ -45,13 +36,13 @@ PODS:
- GTMSessionFetcher/Core (1.7.0)
- image_picker (0.0.1):
- Flutter
- path_provider (0.0.1):
- path_provider_ios (0.0.1):
- Flutter
- share (0.0.1):
- Flutter
- shared_preferences (0.0.1):
- shared_preferences_ios (0.0.1):
- Flutter
- url_launcher (0.0.1):
- url_launcher_ios (0.0.1):
- Flutter
- video_player (0.0.1):
- Flutter
Expand All @@ -68,10 +59,10 @@ DEPENDENCIES:
- flutter_web_auth (from `.symlinks/plugins/flutter_web_auth/ios`)
- google_sign_in (from `.symlinks/plugins/google_sign_in/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_player (from `.symlinks/plugins/video_player/ios`)
- wakelock (from `.symlinks/plugins/wakelock/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
Expand Down Expand Up @@ -102,14 +93,14 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/google_sign_in/ios"
image_picker:
:path: ".symlinks/plugins/image_picker/ios"
path_provider:
:path: ".symlinks/plugins/path_provider/ios"
path_provider_ios:
:path: ".symlinks/plugins/path_provider_ios/ios"
share:
:path: ".symlinks/plugins/share/ios"
shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios"
url_launcher:
:path: ".symlinks/plugins/url_launcher/ios"
shared_preferences_ios:
:path: ".symlinks/plugins/shared_preferences_ios/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_player:
:path: ".symlinks/plugins/video_player/ios"
wakelock:
Expand All @@ -119,28 +110,28 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
FBAEMKit: 5de0a7aaa854eec69bb5be20795952a63d38a5f6
FBSDKCoreKit: bf655f808b040ed66a72b9922911b39d703e64f4
FBSDKCoreKit_Basics: 73ebe3a27eb688ac5b5aa7e99f68992993042115
FBSDKLoginKit: 2e76831ef08d356b8f9150ea51cce865074ea304
FBAEMKit: 56c0bb9b42e3747cd82b67934f0c2b19325382ea
FBSDKCoreKit: 75368765d9c2303073145a7925dfaa9d60bcd77b
FBSDKCoreKit_Basics: 39865aff97e5f6951a78fb3e89dc4460e35e1895
FBSDKLoginKit: e993f97c7cc794c5da4056d8aec3c3d66033a727
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
flutter_facebook_auth: 870a465b1afff3ace7a592bd44665d921991726c
flutter_facebook_auth: dfd6b2563406c538098e2127512d385c9ffd70ad
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
flutter_web_auth: eae2fc62b97d9a44c5c2a1ed0404a6ce396e3d7f
flutter_web_auth: 16bc97b544d14c399d4db60bfc3a85320d200cb3
google_sign_in: c5cecea71f3be43282263550556e311c4cc03582
GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213
GTMAppAuth: ad5c2b70b9a8689e1a04033c9369c4915bfcbe89
GTMSessionFetcher: 43748f93435c2aa068b1cbe39655aaf600652e91
image_picker: 9aa50e1d8cdacdbed739e925b7eea16d014367e6
path_provider: d1e9807085df1f9cc9318206cd649dc0b76be3de
path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences: 5033afbb22d372e15aff8ff766df9021b845f273
url_launcher: b6e016d912f04be9f5bf6e8e82dc599b7ba59649
shared_preferences_ios: aef470a42dc4675a1cdd50e3158b42e3d1232b32
url_launcher_ios: 02f1989d4e14e998335b02b67a7590fa34f971af
video_player: ecd305f42e9044793efd34846e1ce64c31ea6fcb
wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
webview_flutter_wkwebview: 44aa025fbcf6730d808f1e0d86a5af5ac25fa8de
webview_flutter_wkwebview: 005fbd90c888a42c5690919a1527ecc6649e1162

PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa
PODFILE CHECKSUM: fe0e1ee7f3d1f7d00b11b474b62dd62134535aea

COCOAPODS: 1.11.2
43 changes: 26 additions & 17 deletions ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -282,46 +282,46 @@
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework",
"${BUILT_PRODUCTS_DIR}/FBAEMKit/FBAEMKit.framework",
"${BUILT_PRODUCTS_DIR}/FBSDKCoreKit/FBSDKCoreKit.framework",
"${BUILT_PRODUCTS_DIR}/FBSDKCoreKit_Basics/FBSDKCoreKit_Basics.framework",
"${BUILT_PRODUCTS_DIR}/FBSDKLoginKit/FBSDKLoginKit.framework",
"${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/flutter_facebook_auth/flutter_facebook_auth.framework",
"${BUILT_PRODUCTS_DIR}/flutter_keyboard_visibility/flutter_keyboard_visibility.framework",
"${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework",
"${BUILT_PRODUCTS_DIR}/flutter_web_auth/flutter_web_auth.framework",
"${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework",
"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
"${BUILT_PRODUCTS_DIR}/path_provider_ios/path_provider_ios.framework",
"${BUILT_PRODUCTS_DIR}/share/share.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences_ios/shared_preferences_ios.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework",
"${BUILT_PRODUCTS_DIR}/video_player/video_player.framework",
"${BUILT_PRODUCTS_DIR}/wakelock/wakelock.framework",
"${BUILT_PRODUCTS_DIR}/webview_flutter_wkwebview/webview_flutter_wkwebview.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/FBAEMKit/FBAEMKit.framework/FBAEMKit",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKCoreKit/FBSDKCoreKit.framework/FBSDKCoreKit",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKCoreKit_Basics/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKLoginKit/FBSDKLoginKit.framework/FBSDKLoginKit",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBAEMKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit_Basics.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKLoginKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_facebook_auth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_keyboard_visibility.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_web_auth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wakelock.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/webview_flutter_wkwebview.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBAEMKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit_Basics.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKLoginKit.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
Expand Down Expand Up @@ -425,7 +425,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
Expand Down Expand Up @@ -557,7 +560,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
Expand All @@ -584,7 +590,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
Expand Down
4 changes: 2 additions & 2 deletions lib/cv_theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ class CVTheme {

static Color textFieldLabelColor(context) {
return Theme.of(context).brightness == Brightness.dark
? Colors.grey[300]
: Colors.grey[600];
? Colors.grey[300]!
: Colors.grey[600]!;
}

static Color textColor(context) {
Expand Down
4 changes: 2 additions & 2 deletions lib/ib_theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ class IbTheme {

static Color textFieldLabelColor(context) {
return Theme.of(context).brightness == Brightness.dark
? Colors.grey[300]
: Colors.grey[600];
? Colors.grey[300]!
: Colors.grey[600]!;
}

static Color textColor(context) {
Expand Down
4 changes: 2 additions & 2 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Future<void> main() async {
}

class CircuitVerseMobile extends StatelessWidget {
const CircuitVerseMobile({Key key}) : super(key: key);
const CircuitVerseMobile({Key? key}) : super(key: key);

// This widget is the root of CircuitVerse Mobile.
@override
Expand Down Expand Up @@ -75,7 +75,7 @@ class CircuitVerseMobile extends StatelessWidget {
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
onGenerateTitle: (BuildContext context) =>
AppLocalizations.of(context).title,
AppLocalizations.of(context)!.title,
debugShowCheckedModeBanner: false,
onGenerateRoute: CVRouter.generateRoute,
theme: ThemeProvider.themeOf(themeContext).data,
Expand Down
6 changes: 3 additions & 3 deletions lib/models/add_collaborator_response.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ class AddCollaboratorsResponse {
);

AddCollaboratorsResponse({
this.added,
this.existing,
this.invalid,
required this.added,
required this.existing,
required this.invalid,
});
List<String> added;
List<String> existing;
Expand Down
6 changes: 3 additions & 3 deletions lib/models/add_group_members_response.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ class AddGroupMembersResponse {
);

AddGroupMembersResponse({
this.added,
this.pending,
this.invalid,
required this.added,
required this.pending,
required this.invalid,
});
List<String> added;
List<String> pending;
Expand Down
Loading

0 comments on commit 99793de

Please sign in to comment.