Skip to content

Commit 9975573

Browse files
authored
Merge pull request #211 from lielb100/null_safety
Null safety
2 parents 0d8ddfc + e71f0b9 commit 9975573

File tree

109 files changed

+2830
-2479
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+2830
-2479
lines changed

android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ buildscript {
55
}
66

77
dependencies {
8-
classpath 'com.android.tools.build:gradle:3.5.0'
9-
classpath 'com.google.gms:google-services:4.3.4'
8+
classpath 'com.android.tools.build:gradle:4.2.0'
9+
classpath 'com.google.gms:google-services:4.3.10'
1010
}
1111
}
1212

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip

lib/helper/customRoute.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
33
import 'routes.dart';
44

55
class CustomRoute<T> extends MaterialPageRoute<T> {
6-
CustomRoute({WidgetBuilder builder, RouteSettings settings})
6+
CustomRoute({required WidgetBuilder builder, RouteSettings? settings})
77
: super(builder: builder, settings: settings);
88

99
@override
@@ -21,7 +21,7 @@ class CustomRoute<T> extends MaterialPageRoute<T> {
2121
}
2222

2323
class SlideLeftRoute<T> extends MaterialPageRoute<T> {
24-
SlideLeftRoute({WidgetBuilder builder, RouteSettings settings})
24+
SlideLeftRoute({required WidgetBuilder builder, RouteSettings? settings})
2525
: super(builder: builder, settings: settings);
2626
@override
2727
Widget buildTransitions(BuildContext context, Animation<double> animation,
@@ -31,7 +31,7 @@ class SlideLeftRoute<T> extends MaterialPageRoute<T> {
3131
return child;
3232
}
3333
return SlideTransition(
34-
position: new Tween<Offset>(
34+
position: Tween<Offset>(
3535
begin: const Offset(1.0, 0.0),
3636
end: Offset.zero,
3737
).animate(

lib/helper/routes.dart

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
// ignore_for_file: prefer_const_constructors
2+
13
import 'package:flutter/material.dart';
24
import 'package:flutter_twitter_clone/ui/page/Auth/selectAuthMethod.dart';
35
import 'package:flutter_twitter_clone/ui/page/Auth/verifyEmail.dart';
46
import 'package:flutter_twitter_clone/ui/page/common/splash.dart';
57
import 'package:flutter_twitter_clone/ui/page/feed/composeTweet/composeTweet.dart';
68
import 'package:flutter_twitter_clone/ui/page/feed/composeTweet/state/composeTweetState.dart';
9+
import 'package:flutter_twitter_clone/ui/page/homePage.dart';
710
import 'package:flutter_twitter_clone/ui/page/message/conversationInformation/conversationInformation.dart';
811
import 'package:flutter_twitter_clone/ui/page/message/newMessagePage.dart';
912
import 'package:flutter_twitter_clone/ui/page/profile/follow/followerListPage.dart';
@@ -30,25 +33,24 @@ import '../ui/page/Auth/signup.dart';
3033
import '../ui/page/feed/feedPostDetail.dart';
3134
import '../ui/page/feed/imageViewPage.dart';
3235
import '../ui/page/message/chatScreenPage.dart';
33-
import '../ui/page/profile/EditProfilePage.dart';
3436
import '../ui/page/profile/profilePage.dart';
3537
import '../widgets/customWidgets.dart';
3638

3739
class Routes {
3840
static dynamic route() {
3941
return {
40-
'SplashPage': (BuildContext context) => SplashPage(),
42+
'SplashPage': (BuildContext context) => const SplashPage(),
4143
};
4244
}
4345

44-
static void sendNavigationEventToFirebase(String path) {
46+
static void sendNavigationEventToFirebase(String? path) {
4547
if (path != null && path.isNotEmpty) {
4648
// analytics.setCurrentScreen(screenName: path);
4749
}
4850
}
4951

50-
static Route onGenerateRoute(RouteSettings settings) {
51-
final List<String> pathElements = settings.name.split('/');
52+
static Route? onGenerateRoute(RouteSettings settings) {
53+
final List<String> pathElements = settings.name!.split('/');
5254
if (pathElements[0] != '' || pathElements.length == 1) {
5355
return null;
5456
}
@@ -75,105 +77,104 @@ class Routes {
7577
builder: (BuildContext context) => FeedPostDetail(
7678
postId: postId,
7779
),
78-
settings: RouteSettings(name: 'FeedPostDetail'));
80+
settings: const RouteSettings(name: 'FeedPostDetail'));
7981
case "ProfilePage":
8082
String profileId;
8183
if (pathElements.length > 2) {
8284
profileId = pathElements[2];
85+
return CustomRoute<bool>(
86+
builder: (BuildContext context) => ProfilePage(
87+
profileId: profileId,
88+
));
8389
}
84-
return CustomRoute<bool>(
85-
builder: (BuildContext context) => ProfilePage(
86-
profileId: profileId,
87-
));
90+
return CustomRoute(builder: (BuildContext context) => const HomePage());
91+
8892
case "CreateFeedPage":
8993
return CustomRoute<bool>(
9094
builder: (BuildContext context) =>
9195
ChangeNotifierProvider<ComposeTweetState>(
9296
create: (_) => ComposeTweetState(),
93-
child: ComposeTweetPage(isRetweet: false, isTweet: true),
97+
child:
98+
const ComposeTweetPage(isRetweet: false, isTweet: true),
9499
));
95100
case "WelcomePage":
96101
return CustomRoute<bool>(
97-
builder: (BuildContext context) => WelcomePage());
102+
builder: (BuildContext context) => const WelcomePage());
98103
case "SignIn":
99104
return CustomRoute<bool>(builder: (BuildContext context) => SignIn());
100105
case "SignUp":
101106
return CustomRoute<bool>(builder: (BuildContext context) => Signup());
102107
case "ForgetPasswordPage":
103108
return CustomRoute<bool>(
104-
builder: (BuildContext context) => ForgetPasswordPage());
109+
builder: (BuildContext context) => const ForgetPasswordPage());
105110
case "SearchPage":
106111
return CustomRoute<bool>(
107112
builder: (BuildContext context) => SearchPage());
108113
case "ImageViewPge":
109114
return CustomRoute<bool>(
110-
builder: (BuildContext context) => ImageViewPge());
115+
builder: (BuildContext context) => const ImageViewPge());
111116
case "ChatScreenPage":
112117
return CustomRoute<bool>(
113-
builder: (BuildContext context) => ChatScreenPage());
118+
builder: (BuildContext context) => const ChatScreenPage());
114119
case "NewMessagePage":
115120
return CustomRoute<bool>(
116121
builder: (BuildContext context) => NewMessagePage(),
117122
);
118123
case "SettingsAndPrivacyPage":
119124
return CustomRoute<bool>(
120-
builder: (BuildContext context) => SettingsAndPrivacyPage(),
121-
);
122-
case "AccountSettingsPage":
123-
return CustomRoute<bool>(
124-
builder: (BuildContext context) => AccountSettingsPage(),
125+
builder: (BuildContext context) => const SettingsAndPrivacyPage(),
125126
);
126127
case "AccountSettingsPage":
127128
return CustomRoute<bool>(
128-
builder: (BuildContext context) => AccountSettingsPage(),
129+
builder: (BuildContext context) => const AccountSettingsPage(),
129130
);
130131
case "PrivacyAndSaftyPage":
131132
return CustomRoute<bool>(
132-
builder: (BuildContext context) => PrivacyAndSaftyPage(),
133+
builder: (BuildContext context) => const PrivacyAndSaftyPage(),
133134
);
134135
case "NotificationPage":
135136
return CustomRoute<bool>(
136-
builder: (BuildContext context) => NotificationPage(),
137+
builder: (BuildContext context) => const NotificationPage(),
137138
);
138139
case "ContentPrefrencePage":
139140
return CustomRoute<bool>(
140-
builder: (BuildContext context) => ContentPrefrencePage(),
141+
builder: (BuildContext context) => const ContentPrefrencePage(),
141142
);
142143
case "DisplayAndSoundPage":
143144
return CustomRoute<bool>(
144-
builder: (BuildContext context) => DisplayAndSoundPage(),
145+
builder: (BuildContext context) => const DisplayAndSoundPage(),
145146
);
146147
case "DirectMessagesPage":
147148
return CustomRoute<bool>(
148-
builder: (BuildContext context) => DirectMessagesPage(),
149+
builder: (BuildContext context) => const DirectMessagesPage(),
149150
);
150151
case "TrendsPage":
151152
return CustomRoute<bool>(
152-
builder: (BuildContext context) => TrendsPage(),
153+
builder: (BuildContext context) => const TrendsPage(),
153154
);
154155
case "DataUsagePage":
155156
return CustomRoute<bool>(
156-
builder: (BuildContext context) => DataUsagePage(),
157+
builder: (BuildContext context) => const DataUsagePage(),
157158
);
158159
case "AccessibilityPage":
159160
return CustomRoute<bool>(
160-
builder: (BuildContext context) => AccessibilityPage(),
161+
builder: (BuildContext context) => const AccessibilityPage(),
161162
);
162163
case "ProxyPage":
163164
return CustomRoute<bool>(
164-
builder: (BuildContext context) => ProxyPage(),
165+
builder: (BuildContext context) => const ProxyPage(),
165166
);
166167
case "AboutPage":
167168
return CustomRoute<bool>(
168-
builder: (BuildContext context) => AboutPage(),
169+
builder: (BuildContext context) => const AboutPage(),
169170
);
170171
case "ConversationInformation":
171172
return CustomRoute<bool>(
172-
builder: (BuildContext context) => ConversationInformation(),
173+
builder: (BuildContext context) => const ConversationInformation(),
173174
);
174175
case "FollowingListPage":
175176
return CustomRoute<bool>(
176-
builder: (BuildContext context) => FollowingListPage(),
177+
builder: (BuildContext context) => const FollowingListPage(),
177178
);
178179
case "FollowerListPage":
179180
return CustomRoute<bool>(
@@ -184,19 +185,21 @@ class Routes {
184185
builder: (BuildContext context) => VerifyEmailPage(),
185186
);
186187
default:
187-
return onUnknownRoute(RouteSettings(name: '/Feature'));
188+
return onUnknownRoute(const RouteSettings(name: '/Feature'));
188189
}
189190
}
190191

191192
static Route onUnknownRoute(RouteSettings settings) {
192193
return MaterialPageRoute(
193-
builder: (_) => Scaffold(
194+
builder: (context) => Scaffold(
194195
appBar: AppBar(
195-
title: customTitleText(settings.name.split('/')[1]),
196+
title: customTitleText(
197+
settings.name!.split('/')[1],
198+
),
196199
centerTitle: true,
197200
),
198201
body: Center(
199-
child: Text('${settings.name.split('/')[1]} Comming soon..'),
202+
child: Text('${settings.name!.split('/')[1]} Comming soon..'),
200203
),
201204
),
202205
);

lib/helper/shared_prefrence_helper.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,22 @@ class SharedPreferenceHelper {
1212
return _singleton;
1313
}
1414

15-
Future<String> getUserName() async {
15+
Future<String?> getUserName() async {
1616
return (await SharedPreferences.getInstance())
1717
.getString(UserPreferenceKey.UserName.toString());
1818
}
1919

2020
Future clearPreferenceValues() async {
21-
await (SharedPreferences.getInstance())
22-
..clear();
21+
(await SharedPreferences.getInstance()).clear();
2322
}
2423

25-
Future<void> saveUserProfile(UserModel user) async {
24+
Future<bool> saveUserProfile(UserModel user) async {
2625
return (await SharedPreferences.getInstance()).setString(
2726
UserPreferenceKey.UserProfile.toString(), json.encode(user.toJson()));
2827
}
2928

30-
Future<UserModel> getUserProfile() async {
31-
final jsonString = (await SharedPreferences.getInstance())
29+
Future<UserModel?> getUserProfile() async {
30+
final String? jsonString = (await SharedPreferences.getInstance())
3231
.getString(UserPreferenceKey.UserProfile.toString());
3332
if (jsonString == null) return null;
3433
return UserModel.fromJson(json.decode(jsonString));
@@ -39,8 +38,9 @@ class SharedPreferenceHelper {
3938
.setString(key, json.encode(model.toJson()));
4039
}
4140

42-
Future<LinkMediaInfo> getLinkMediaInfo(String key) async {
43-
final jsonString = (await SharedPreferences.getInstance()).getString(key);
41+
Future<LinkMediaInfo?> getLinkMediaInfo(String key) async {
42+
final String? jsonString =
43+
(await SharedPreferences.getInstance()).getString(key);
4444
if (jsonString == null) {
4545
return null;
4646
}

0 commit comments

Comments
 (0)