Skip to content

Commit 04f261a

Browse files
committedJul 25, 2022
created by: Muhammed Jasir U
date: 30-0-2022 description: Atm Money Transfer Android app converted to Flutter.
1 parent 5b2e46a commit 04f261a

13 files changed

+194
-210
lines changed
 

‎lib/main.dart

+4-5
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ void main() async {
3636
_registerHiveAdapter();
3737
await Firebase.initializeApp();
3838
await SunmiPrinter.initPrinter();
39-
// String? deviceId = await Device().getUserId();
40-
// PrefManager().setDeviceId(deviceId!);
39+
if (PrefManager().getDeviceId == null) {
40+
String? deviceId = await Device().getUserId();
41+
PrefManager().setDeviceId(deviceId!);
42+
}
4143
await PushNotificationService().setupInteractedMessage();
4244
if (PrefManager().getLanguage == null) {
4345
PrefManager().setLanguage('English');
@@ -105,16 +107,13 @@ class MyApp extends StatelessWidget {
105107
return Obx(
106108
() => GetMaterialApp(
107109
theme: _changeTheme(_settingsController.changeTheme),
108-
// color: AppColors.colorsPrimary,
109110
title: 'app_name'.tr,
110111
initialRoute: AppStrings.pSplashPage,
111112
initialBinding: SplashScreenBinding(),
112113
getPages: AppPages().routes,
113114
locale: LocalizationService.locale,
114115
fallbackLocale: LocalizationService.fallbackLocale,
115116
translations: LocalizationService(),
116-
// theme: AppThemes.lightThemeData,
117-
// darkTheme: AppThemes.darkThemeData,
118117
debugShowCheckedModeBanner: false,
119118
defaultTransition: Transition.leftToRightWithFade,
120119
),

‎lib/pages/bbps/bbps_payment/bbps_bill_details/bbps_bill_details_controller.dart

+12-18
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,15 @@ class BBPSBillDetailsController extends MainController {
3030
final RxList<TextEditingController> requiredFieldController = RxList();
3131
RxList<Authenticator> parameterList = <Authenticator>[].obs;
3232
RxList<bool> requiredList = RxList();
33-
RxBool senderNameValidate = true.obs;
34-
RxBool senderMobileValidate = true.obs;
33+
RxBool senderNameValidate = true.obs,senderMobileValidate = true.obs;
3534
RxList<bool> authValidateList = RxList();
3635
RxList<Authenticator> authenticatorList = <Authenticator>[].obs;
3736
RxInt authCount = 0.obs;
3837
RxBool isPartialPay = false.obs;
39-
RxString billerName = ''.obs;
40-
RxString billFetch = ''.obs;
41-
RxString onlineValidation = ''.obs;
42-
RxString partialPay = ''.obs;
43-
RxBool fetchBillVisible = false.obs;
44-
RxBool fetchBillClicked = false.obs;
45-
RxString billerId = ''.obs;
46-
RxString billerImage = ''.obs;
47-
RxString category = ''.obs;
48-
RxString ipAddress = ''.obs;
49-
RxString macAddress = ''.obs;
50-
RxString postalCode = ''.obs;
51-
RxString latLng = ''.obs;
38+
RxString billerName = ''.obs,billFetch = ''.obs,onlineValidation = ''.obs,partialPay = ''.obs;
39+
RxBool fetchBillVisible = false.obs,fetchBillClicked = false.obs;
40+
RxString billerId = ''.obs,billerImage = ''.obs,category = ''.obs;
41+
RxString ipAddress = ''.obs,macAddress = ''.obs,postalCode = ''.obs,latLng = ''.obs;
5242
WifiInfoWrapper? _wifiObject;
5343
late Position currentPosition;
5444
RxBool btnClicked = false.obs;
@@ -69,6 +59,7 @@ class BBPSBillDetailsController extends MainController {
6959
onBillerDetails(arguments[AppStrings.txtCategoryList]);
7060
}
7161

62+
///setting text in text fields
7263
void setFields() {
7364
senderNameController.value = TextEditingValue(text: senderName);
7465
senderMobileController.value = TextEditingValue(text: senderMobile);
@@ -199,9 +190,7 @@ class BBPSBillDetailsController extends MainController {
199190
///getting current latitude and longitude
200191
Future<void> getCurrentLocation() async {
201192
currentPosition = await LocationService().getUserCurrentLocation();
202-
latLng.value = currentPosition.latitude.toString() +
203-
',' +
204-
currentPosition.longitude.toString();
193+
latLng.value = '${currentPosition.latitude},${currentPosition.longitude}';
205194
await getPostalCodeFromLocation();
206195
}
207196

@@ -217,12 +206,14 @@ class BBPSBillDetailsController extends MainController {
217206
}
218207
}
219208

209+
///getting bill details
220210
void onFetchBillTap() async {
221211
btnClicked.value = true;
222212
dynamic result = await validateBiller();
223213
showBill(result);
224214
}
225215

216+
///decoding api json data
226217
showBill(dynamic result) async {
227218
if (result != null) {
228219
if (result.status!) {
@@ -246,6 +237,7 @@ class BBPSBillDetailsController extends MainController {
246237
}
247238
}
248239

240+
///sending bill details
249241
void sendDataToShowBill(Billlist bill, String sourceRefNo) async {
250242
fetchBillClicked.value = false;
251243
btnClicked.value = false;
@@ -278,6 +270,7 @@ class BBPSBillDetailsController extends MainController {
278270
);
279271
}
280272

273+
///getting authenticators
281274
Future<List<String>> getAuth() async {
282275
List<String> authList = [];
283276
for (int i = 0; i < authCount.value; i++) {
@@ -291,6 +284,7 @@ class BBPSBillDetailsController extends MainController {
291284
return authList;
292285
}
293286

287+
///validating biller
294288
Future<dynamic> validateBiller() async {
295289
List<String> authenticators = await getAuth();
296290
dynamic body = await bbpsValidateBillerBody(

‎lib/pages/bbps/bbps_payment/bbps_bill_details/bbps_bill_details_page.dart

+4-11
Original file line numberDiff line numberDiff line change
@@ -173,20 +173,13 @@ class BBPSBillDetailsPage extends GetView<BBPSBillDetailsController> {
173173
controller.requiredFieldController
174174
.add(TextEditingController());
175175
return UnderlineTextFieldWidget(
176-
labelText: controller
177-
.authenticatorList[index]
178-
.parameterName
179-
.toString() +
180-
' (required)',
176+
labelText:
177+
'${controller.authenticatorList[index].parameterName} (required)',
181178
type: TextInputType.text,
182179
validate: controller
183180
.authValidateList[index],
184-
// errorText: 'required_field'.tr,
185-
hint: controller
186-
.authenticatorList[index]
187-
.parameterName
188-
.toString() +
189-
' (required)',
181+
hint:
182+
'${controller.authenticatorList[index].parameterName} (required)',
190183
controller: controller
191184
.requiredFieldController[index],
192185
suffix: const SizedBox(),

‎lib/pages/bbps/mobile_recharge_page/mobile_number/mobile_number_controller.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class MobileNumberController extends GetxController {
135135
clearTextFields();
136136
}
137137

138-
///verifing text field before go to next page
138+
///verifying text field before go to next page
139139
void verifyField() {
140140
if (senderNameController.text.isEmpty ||
141141
senderNumberController.text.isEmpty ||

‎lib/pages/bbps/mobile_recharge_page/recharge/mobile_recharge_controller.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class MobileRechargeController extends MainController {
126126
}
127127
}
128128

129-
///convert mobilerecharge details to bbps
129+
///convert mobile recharge details to bbps
130130
void convertToBBPSReport(MobileRecharge report) async {
131131
String endCusMobile = await AesEncryption()
132132
.encrypt(cusMobile, PrefManager().getCustomerCode.toString());

‎lib/pages/bbps/show_bill/bbps_show_bill_controller.dart

+3-13
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,9 @@ import 'package:get/get.dart';
55

66
class BBPSShowBillController extends GetxController {
77
dynamic arguments = Get.arguments;
8-
final billLogo = ''.obs;
9-
final billerName = ''.obs;
10-
final category = ''.obs;
11-
final billId = ''.obs;
12-
final billStatus = ''.obs;
13-
final billNumber = ''.obs;
14-
final billPeriod = ''.obs;
15-
final netBillAmount = ''.obs;
16-
final customerName = ''.obs;
17-
final billAmount = ''.obs;
18-
final billDate = ''.obs;
19-
final billDueDate = ''.obs;
20-
final sourceRefNo = ''.obs;
8+
final billLogo = ''.obs,billerName = ''.obs,category = ''.obs,billId = ''.obs,billStatus = ''.obs;
9+
final billNumber = ''.obs,billPeriod = ''.obs,netBillAmount = ''.obs,customerName = ''.obs;
10+
final billAmount = ''.obs,billDate = ''.obs,billDueDate = ''.obs,sourceRefNo = ''.obs;
2111
final categoryImage = ''.obs;
2212

2313
List<String> bDate = [];

‎lib/pages/login/login_controller.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ class LoginController extends MainController {
3838
RxBool isDriver = false.obs;
3939
RxBool isMerchant = true.obs;
4040
RxString userType = 'N'.obs;
41-
// String deviceId = PrefManager().getDeviceId.toString();
41+
String deviceId = PrefManager().getDeviceId.toString();
4242
@override
4343
void onInit() {
44-
// deviceIdController = TextEditingController(text: deviceId);
44+
deviceIdController = TextEditingController(text: deviceId);
4545
getDeviceToken();
4646
if (!PrefManager().getNewUserFlag!) {
4747
setServers();

‎lib/pages/qr_code/report_details/qr_code_report_summary_page.dart

+1
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ class QRCodeReportSummaryPage extends GetView<QRCodeReportSummaryController> {
138138
padding:
139139
const EdgeInsets.only(left: 15.0, right: 15.0),
140140
child: QRReportDetailsCardWidget(
141+
status: controller.status.value,
141142
amount: controller.amount.value,
142143
invoiceNo: controller.invoiceNo.value,
143144
invoiceName: controller.invoiceName.value,

‎lib/pages/server/server_controller.dart

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ import 'package:atm_flutter_app/utils/main_controller.dart';
66
import 'package:atm_flutter_app/widgets/dialog_box_widget/snack_bar.dart';
77
import 'package:flutter/material.dart';
88
import 'package:get/get.dart';
9-
import 'package:get/get_rx/src/rx_types/rx_types.dart';
10-
11-
import '../../widgets/button_widget/button_widget.dart';
12-
import '../../widgets/text_widget/text_widget.dart';
139

1410
class ServerController extends MainController {
1511
RxList<Server> serverList = <Server>[].obs;
@@ -161,6 +157,6 @@ class ServerController extends MainController {
161157
value, serverList[index].serverState);
162158
serverList.insert(index, server2);
163159
serverList.removeAt(index + 1);
164-
commonSnackBar('Server updated - ${serverList[index1].serverUrl}');
160+
commonSnackBar('Server updated - ${serverList[index].serverUrl}');
165161
}
166162
}

‎lib/pages/server/server_page.dart

+67-59
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import 'package:atm_flutter_app/pages/server/server_controller.dart';
22
import 'package:atm_flutter_app/widgets/button_widget/check_box_widget.dart';
33
import 'package:atm_flutter_app/widgets/textfield_widget/underline_text_field_widget.dart';
44
import 'package:flutter/material.dart';
5+
import 'package:flutter_slidable/flutter_slidable.dart';
56
import 'package:get/get.dart';
7+
import '../../resources/app_strings.dart';
68
import '../../widgets/button_widget/button_widget.dart';
79
import '../../widgets/text_widget/text_widget.dart';
810

@@ -53,65 +55,71 @@ class ServerPage extends GetView<ServerController> {
5355
() => ListView.builder(
5456
itemCount: controller.serverList.length,
5557
itemBuilder: (BuildContext context, int index) {
56-
return CheckBoxWidget(
57-
url: controller.serverList[index].serverUrl!,
58-
isChecked: controller.serverList[index].serverStatus!,
59-
onChanged: (value) => controller.onchangeValue(value, index));
60-
// return Slidable(
61-
// key: const ValueKey(0),
62-
// enabled: true,
63-
// child: Padding(
64-
// padding: const EdgeInsets.all(5.0),
65-
// child: Card(
66-
// elevation:
67-
// controller.serverList[index].serverStatus! ? 5 : 0,
68-
// color: controller.serverList[index].serverStatus!
69-
// ? Theme.of(context).primaryColor
70-
// : Theme.of(context).textTheme.bodyText1!.color!,
71-
// child: ListTile(
72-
// // leading:
73-
// title: TextWidget(
74-
// text:
75-
// controller.serverList[index].serverUrl.toString(),
76-
// textColor: controller.serverList[index].serverStatus!
77-
// ? Theme.of(context).textTheme.bodyText1!.color!
78-
// : Theme.of(context).textTheme.subtitle1!.color!,
79-
// ),
80-
// ),
81-
// ),
82-
// ),
83-
// startActionPane: ActionPane(
84-
// extentRatio: 0.20,
85-
// dragDismissible: false,
86-
// motion: const DrawerMotion(),
87-
// dismissible: DismissiblePane(onDismissed: () {}),
88-
// children: [
89-
// SlidableAction(
90-
// onPressed: (BuildContext context) =>
91-
// controller.onItemDelete(index),
92-
// backgroundColor: const Color(0xFFFE4A49),
93-
// foregroundColor:
94-
// Theme.of(context).textTheme.bodyText1!.color!,
95-
// icon: Icons.delete,
96-
// label: AppStrings.txtDelete,
97-
// spacing: 10.0,
98-
// )
99-
// ],
100-
// ),
101-
// endActionPane: ActionPane(
102-
// extentRatio: 0.20,
103-
// dragDismissible: false,
104-
// motion: const ScrollMotion(),
105-
// children: [
106-
// SlidableAction(
107-
// onPressed: (BuildContext context) =>
108-
// controller.onItemSelected(index),
109-
// backgroundColor: const Color(0xFF7BC043),
110-
// foregroundColor:
111-
// Theme.of(context).textTheme.bodyText1!.color!,
112-
// icon: Icons.arrow_forward,
113-
// ),
114-
// ]));
58+
// return CheckBoxWidget(
59+
// url: controller.serverList[index].serverUrl!,
60+
// isChecked: controller.serverList[index].serverStatus!,
61+
// onChanged: (value) => controller.onchangeValue(value, index));
62+
return Slidable(
63+
key: const ValueKey(0),
64+
enabled: true,
65+
// Padding(
66+
// padding: const EdgeInsets.all(5.0),
67+
// child: Card(
68+
// elevation:
69+
// controller.serverList[index].serverStatus! ? 5 : 0,
70+
// color: controller.serverList[index].serverStatus!
71+
// ? Theme.of(context).primaryColor
72+
// : Theme.of(context).textTheme.bodyText1!.color!,
73+
// child: ListTile(
74+
// // leading:
75+
// title: TextWidget(
76+
// text:
77+
// controller.serverList[index].serverUrl.toString(),
78+
// textColor: controller.serverList[index].serverStatus!
79+
// ? Theme.of(context).textTheme.bodyText1!.color!
80+
// : Theme.of(context).textTheme.subtitle1!.color!,
81+
// ),
82+
// ),
83+
// ),
84+
// ),
85+
startActionPane: ActionPane(
86+
extentRatio: 0.20,
87+
dragDismissible: false,
88+
motion: const DrawerMotion(),
89+
dismissible: DismissiblePane(onDismissed: () {}),
90+
children: [
91+
SlidableAction(
92+
onPressed: (BuildContext context) =>
93+
controller.onItemDelete(index),
94+
backgroundColor: const Color(0xFFFE4A49),
95+
foregroundColor:
96+
Theme.of(context).textTheme.bodyText1!.color!,
97+
icon: Icons.delete,
98+
label: AppStrings.txtDelete,
99+
spacing: 10.0,
100+
)
101+
],
102+
),
103+
child: CheckBoxWidget(
104+
url: controller.serverList[index].serverUrl!,
105+
isChecked: controller.serverList[index].serverStatus!,
106+
onChanged: (value) =>
107+
controller.onchangeValue(value, index)),
108+
// endActionPane: ActionPane(
109+
// extentRatio: 0.20,
110+
// dragDismissible: false,
111+
// motion: const ScrollMotion(),
112+
// children: [
113+
// SlidableAction(
114+
// onPressed: (BuildContext context) =>
115+
// controller.onItemSelected(index),
116+
// backgroundColor: const Color(0xFF7BC043),
117+
// foregroundColor:
118+
// Theme.of(context).textTheme.bodyText1!.color!,
119+
// icon: Icons.arrow_forward,
120+
// ),
121+
// ])
122+
);
115123
}),
116124
),
117125
);

‎lib/utils/utils.dart

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import 'dart:math';
22

33
import 'package:atm_flutter_app/constants/date_time_constants.dart';
4+
import 'package:flutter/foundation.dart';
45
import 'package:intl/intl.dart';
56

67
class Utils {
78
String getTraceId() {
8-
const _chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
9-
Random _rnd = Random();
9+
const chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
10+
Random rnd = Random();
1011

1112
String getRandomString(int length) =>
1213
String.fromCharCodes(Iterable.generate(
13-
length, (_) => _chars.codeUnitAt(_rnd.nextInt(_chars.length))));
14+
length, (_) => chars.codeUnitAt(rnd.nextInt(chars.length))));
1415

1516
String genKey = getRandomString(4);
1617
return genKey.toUpperCase();
@@ -34,7 +35,9 @@ class Utils {
3435
DateFormat(DateTimeFormats.SQLITE_DATE_FORMAT);
3536
output = outputFormat.format(newDate);
3637
} on Exception catch (e) {
37-
print(e);
38+
if (kDebugMode) {
39+
print(e);
40+
}
3841
}
3942
}
4043
return output;

‎pubspec.lock

+85-85
Large diffs are not rendered by default.

‎pubspec.yaml

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
1515
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
1616
# Read more about iOS versioning at
1717
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18-
version: 1.79.0
18+
version: 1.80.0
1919

2020
environment:
2121
sdk: ">=2.12.0 <3.0.0"
@@ -33,8 +33,8 @@ dependencies:
3333

3434
# The following adds the Cupertino Icons font to your application.
3535
# Use with the CupertinoIcons class for iOS style icons.
36-
cupertino_icons: ^1.0.4
37-
get: ^4.6.3
36+
cupertino_icons: ^1.0.5
37+
get: ^4.6.5
3838
image_picker: any
3939
# shared preference
4040
get_storage: ^2.0.3
@@ -43,7 +43,7 @@ dependencies:
4343
device_info: ^2.0.3
4444
# firebase
4545
firebase_core: any
46-
firebase_messaging: ^11.3.0
46+
firebase_messaging: ^11.4.2
4747
#local db
4848
hive: ^2.1.0
4949
hive_flutter: ^1.1.0
@@ -72,9 +72,9 @@ dependencies:
7272
#date time picker
7373
date_time_picker: ^2.1.0
7474
#push notification
75-
flutter_local_notifications: ^9.5.2
75+
flutter_local_notifications: ^9.6.1
7676
#slidable_list
77-
flutter_slidable: ^1.2.0
77+
flutter_slidable: ^1.3.0
7878
#count down timer
7979
flutter_countdown_timer: ^4.1.0
8080
#phone contact picker

0 commit comments

Comments
 (0)
Please sign in to comment.