Commit 528df0d2 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

14-05-2025 By Sai Srinivas

All UI Adjustments and Font Sizes
parent fd946558
......@@ -15,14 +15,18 @@ PreferredSizeWidget appbar(BuildContext context, title) {
onTap: () => Navigator.pop(context, true),
child: SvgPicture.asset("assets/svg/app_bar_back.svg", height: 25),
),
Text(
InkResponse(
onTap: () => Navigator.pop(context,true),
child: Text(
title,
style: TextStyle(
fontSize: 16,
height: 1.1,
fontFamily: "JakartaSemiBold",
color: AppColors.semi_black,
),
),
),
],
),
),
......@@ -47,14 +51,18 @@ PreferredSizeWidget appbar2(BuildContext context, title,widget) {
onTap: () => Navigator.pop(context, true),
child: SvgPicture.asset("assets/svg/app_bar_back.svg", height: 25),
),
Text(
InkResponse(
onTap: () => Navigator.pop(context, true),
child: Text(
title,
style: TextStyle(
fontSize: 16,
height: 1.1,
fontFamily: "JakartaSemiBold",
color: AppColors.semi_black,
),
),
),
Spacer(),
widget
],
......@@ -67,3 +75,16 @@ PreferredSizeWidget appbar2(BuildContext context, title,widget) {
),
);
}
Future<bool> onBackPressed(BuildContext context) async {
Navigator.pop(context, true);
return true;
}
Widget Emptywidget(BuildContext context){
return SizedBox(
height: MediaQuery.of(context).size.height*0.8,
child: Center(
child: Text("No Data Available")),
);
}
\ No newline at end of file
......@@ -21,7 +21,7 @@ import 'package:generp/Notifiers/PendingComplaintsProvider.dart';
import 'package:generp/Notifiers/ProfileNotifier.dart';
import 'package:generp/Notifiers/ServiceEngineerDashboardProvider.dart';
import 'package:generp/Notifiers/TodayMontlyVisitsProvider.dart';
import 'package:generp/Notifiers/UpdatePasswordProvider';
import 'package:generp/Notifiers/UpdatePasswordProvider.dart';
import 'package:generp/Notifiers/VisitDetailsProvider.dart';
import 'package:generp/Notifiers/loginNotifier.dart';
import 'package:generp/Notifiers/scanLoginProvider.dart';
......@@ -82,18 +82,18 @@ void main() async {
}
}
if (Platform.isAndroid) {
await Firebase.initializeApp(
options: FirebaseOptions(
apiKey: "AIzaSyBmkmKdYfBt2n5QRlmZJ9MV_Amh9xR3UOY",
appId: "1:329382566569:android:26dc8519537b04deff67b8",
messagingSenderId: "329382566569",
projectId: "generp-fe09d",
),
);
} else if (Platform.isIOS) {
// if (Platform.isAndroid) {
// await Firebase.initializeApp(
// options: FirebaseOptions(
// apiKey: "AIzaSyBmkmKdYfBt2n5QRlmZJ9MV_Amh9xR3UOY",
// appId: "1:329382566569:android:26dc8519537b04deff67b8",
// messagingSenderId: "329382566569",
// projectId: "generp-fe09d",
// ),
// );
// } else if (Platform.isIOS) {
await Firebase.initializeApp();
}
// }
FirebaseMessaging messaging = FirebaseMessaging.instance;
......@@ -149,7 +149,7 @@ void main() async {
sound: true,
);
FirebaseMessaging.instance.getToken().then((value) {
await FirebaseMessaging.instance.getToken().then((value) {
String? token = value;
if (kDebugMode) {
print("fbstoken:{$token}");
......@@ -209,7 +209,7 @@ class MyApp extends StatelessWidget {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
fontFamily: 'Lexend',
fontFamily: 'JakartaRegular',
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
......
This diff is collapsed.
......@@ -48,29 +48,29 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
return Consumer<CheckInOutProvider>(
builder: (context, provider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, widget.getAttendanceStatus==0? "Check In":"Check Out"),
body:Container(
child: SafeArea(
child: Column(
children: [
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),
topRight: Radius.circular(30.0),
),
child: Stack(
children: [
GoogleMap(
myLocationEnabled: true,
zoomGesturesEnabled: true,
scrollGesturesEnabled: false,
initialCameraPosition: CameraPosition(
target: provider.currentLocationLatLng ??
provider.startLocation,
zoom: 20.0,
),
markers: provider.markers.toSet(),
myLocationButtonEnabled: true,
mapType: MapType.normal,
onMapCreated: (controller) {
provider.mapController = controller;
......@@ -99,16 +99,30 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
CrossAxisAlignment.start,
children: [
SizedBox(height: 25),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 20.0),
child: Text(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Share Your Details",
style: TextStyle(
color: AppColors.app_blue,
fontFamily: "JakartaSemiBold"
),
),
SizedBox(height: 10,),
Text(
"Location",
style: TextStyle(
fontWeight: FontWeight.w400,
color: Colors.grey,
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
],
),
),
SizedBox(height: 5),
Padding(
......@@ -121,7 +135,7 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(25),
BorderRadius.circular(14),
),
child: Padding(
padding:
......@@ -138,7 +152,8 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
"Enter Check ${widget.getAttendanceStatus==0?"In":"Out"} Location",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
fontSize: 14
fontSize: 14,
color: Color(0xFF818181)
),
enabledBorder:
InputBorder.none,
......@@ -201,12 +216,13 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius:
BorderRadius.circular(30.0),
BorderRadius.circular(15.0),
),
child: Text(
widget.getAttendanceStatus==0? "Check In":"Check Out",
style: TextStyle(
fontWeight: FontWeight.w500,
fontFamily: "JakartaMedium",
fontSize: 16,
color: Colors.white
),
),
......@@ -220,11 +236,11 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
],
),
),
),
],
),
),
),
),
);
},
);
......
This diff is collapsed.
......@@ -108,13 +108,56 @@ class _LoginScreenState extends State<LoginScreen>
_scrollController.dispose();
super.dispose();
}
Future<bool> onBackPressed() async {
return await showDialog<bool>(
context: context,
builder:
(context) => AlertDialog(
title: const Text('Are you sure?'),
content: const Text('Do you want to exit the App'),
actions: [
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.white),
overlayColor: MaterialStateProperty.all(Colors.white),
),
onPressed: () => Navigator.of(context).pop(false),
child: Text(
"NO",
style: TextStyle(fontWeight: FontWeight.w500),
),
),
const SizedBox(height: 16),
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.white),
overlayColor: MaterialStateProperty.all(Colors.white70),
),
onPressed:
() => SystemChannels.platform.invokeMethod(
'SystemNavigator.pop',
),
child: Text(
"YES",
style: TextStyle(fontWeight: FontWeight.w500),
),
),
],
elevation: 30.0,
),
barrierDismissible: false,
) ??
false;
}
@override
Widget build(BuildContext context) {
var loginProv = Provider.of<Loginnotifier>(context,listen: true);
double screenWidth = MediaQuery.of(context).size.width;
double screenHeight = MediaQuery.of(context).size.height;
return Scaffold(
return WillPopScope(
onWillPop: onBackPressed,
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
body: KeyboardVisibilityProvider(
controller: _keyboardVisibilityController,
......@@ -127,7 +170,7 @@ class _LoginScreenState extends State<LoginScreen>
itemBuilder: (context, index) {
int logoIndex = index % logos.length;
return Padding(
padding: const EdgeInsets.all(5.0),
padding: const EdgeInsets.all(3.0),
child: CustomGridRow(logos: logos, logoIndex: logoIndex),
);
},
......@@ -194,14 +237,7 @@ class _LoginScreenState extends State<LoginScreen>
const SizedBox(width: 10),
Expanded(
flex: 3,
child: Text(
"GEN ERP",
style: TextStyle(
fontFamily: 'LexendSemiBold',
color: AppColors.ERP_text_color,
fontSize: 25,
),
),
child: Image.asset("assets/images/gen_logo_grad.png"),
),
Expanded(
flex: 1,
......@@ -218,31 +254,28 @@ class _LoginScreenState extends State<LoginScreen>
"assets/images/gen_logo.png",
),
),
Text(
"GEN ERP",
style: TextStyle(
fontFamily: 'LexendSemiBold',
color: AppColors.ERP_text_color,
fontSize: 25,
),
),
Image.asset("assets/images/gen_logo_grad.png",width: 150,),
],
),
),
SizedBox(height: 10,),
Text(
"Login to enter",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
Container(
padding: EdgeInsets.only(left: 10,bottom: 5),
alignment: Alignment.topLeft,
child: Text(
"Enter Email",
"Email ID",
style: TextStyle(
color: AppColors.semi_black,
fontSize: 12,
fontFamily: "JakartaMedium",
fontSize: 14,
),
),
),
......@@ -251,7 +284,7 @@ class _LoginScreenState extends State<LoginScreen>
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(20),
borderRadius: BorderRadius.circular(14),
border: _emailFocusNode.hasFocus?Border.all(color: AppColors.app_blue,width: 0.5):null
),
// alignment: Alignment.center,
......@@ -281,12 +314,13 @@ class _LoginScreenState extends State<LoginScreen>
isDense: true,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
fontSize: 14
fontSize: 14,
color: Color(0xFF818181)
),
//contentPadding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
hintText: 'Enter Email',
hintText: 'Enter Your Email',
),
),
),
......@@ -306,15 +340,17 @@ class _LoginScreenState extends State<LoginScreen>
),
),
] else ...[
SizedBox(height: 15.0),
SizedBox(height: 10.0),
],
Container(
padding: EdgeInsets.only(left: 10,bottom: 5),
alignment: Alignment.topLeft,
child: Text(
"Enter Password",
"Password",
style: TextStyle(
color: AppColors.semi_black,
fontSize: 12,
fontFamily: "JakartaMedium",
fontSize: 14,
),
),
),
......@@ -323,7 +359,7 @@ class _LoginScreenState extends State<LoginScreen>
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(20),
borderRadius: BorderRadius.circular(14),
border: _passwordFocusNode.hasFocus?Border.all(color: AppColors.app_blue,width: 0.5):null
),
// alignment: Alignment.center,
......@@ -341,7 +377,7 @@ class _LoginScreenState extends State<LoginScreen>
obscureText: !loginProv.pwdVisible,
keyboardType: TextInputType.visiblePassword,
style: TextStyle(
fontSize: 14
fontSize: 14,
),
onChanged: (value) {
loginProv.updatePassword(password.text);
......@@ -371,6 +407,7 @@ class _LoginScreenState extends State<LoginScreen>
),
hintStyle: TextStyle(
fontSize: 14,
color: Color(0xFF818181),
fontWeight: FontWeight.w400,
),
isDense: true,
......@@ -419,13 +456,14 @@ class _LoginScreenState extends State<LoginScreen>
),
decoration: BoxDecoration(
color: loginProv.isButtonEnabled?AppColors.app_blue:AppColors.button_disabled, //1487C9
borderRadius: BorderRadius.circular(30.0),
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
"Login",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
style: TextStyle(color: Colors.white,
fontFamily: "JakartaRegular",),
),
),
),
......@@ -479,6 +517,7 @@ class _LoginScreenState extends State<LoginScreen>
Text("Device ID",
style: TextStyle(
fontSize: 16,
fontFamily: "JakartaMedium",
color: AppColors.app_blue
),),
SizedBox(height: 15,),
......@@ -574,6 +613,7 @@ class _LoginScreenState extends State<LoginScreen>
],
),
),
),
);
}
......@@ -611,8 +651,8 @@ class LogoWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: 80,
height: 80,
width: MediaQuery.of(context).size.width/4.5,
height: MediaQuery.of(context).size.width/4.5,
decoration: BoxDecoration(
image: DecorationImage(image: AssetImage(imagePath), fit: BoxFit.cover),
),
......
......@@ -18,7 +18,10 @@ class _ScannerloginState extends State<Scannerlogin> {
Widget build(BuildContext context) {
return Consumer<Scanloginprovider>(
builder: (context, provider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "QR Login"),
body: Container(
......@@ -65,6 +68,7 @@ class _ScannerloginState extends State<Scannerlogin> {
],
),
),
),
);
},
);
......
import 'package:flutter/material.dart';
import 'package:generp/Notifiers/UpdatePasswordProvider';
import 'package:generp/Notifiers/UpdatePasswordProvider.dart';
import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart';
import 'package:provider/provider.dart';
......@@ -11,7 +11,10 @@ class UpdatePassword extends StatelessWidget {
Widget build(BuildContext context) {
final provider = Provider.of<UpdatePasswordProvider>(context);
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Update Password"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
......@@ -37,21 +40,33 @@ class UpdatePassword extends StatelessWidget {
child: Column(
children: [
SizedBox(height: 10),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text("New Password",style: TextStyle(
color: AppColors.semi_black
),)),
SizedBox(height: 5),
_buildTextField(
controller: provider.password,
hintText: "New Password*",
errorText: provider.passwordError,
),
SizedBox(height: 10),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text("Confirm Password",style: TextStyle(
color: AppColors.semi_black
),)),
SizedBox(height: 5),
_buildTextField(
controller: provider.confPassword,
hintText: "Confirm New Password*",
errorText: provider.confirmPasswordError,
),
Spacer(),
provider.isLoading
? CircularProgressIndicator()
: InkWell(
InkWell(
onTap: () => provider.updatePassword(context),
child: Container(
alignment: Alignment.center,
......@@ -59,9 +74,14 @@ class UpdatePassword extends StatelessWidget {
margin: EdgeInsets.symmetric(horizontal: 15),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(30.0),
borderRadius: BorderRadius.circular(15.0),
),
child: Text(
child:provider.isLoading
? CircularProgressIndicator(
color: Colors.white,
)
: Text(
"Update",
style: TextStyle(color: Colors.white),
),
......@@ -78,6 +98,7 @@ class UpdatePassword extends StatelessWidget {
],
),
),
),
);
}
......@@ -103,7 +124,8 @@ class UpdatePassword extends StatelessWidget {
obscureText: true,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(color: Color(0xFF818181)),
hintStyle: TextStyle(color: Color(0xFF818181),
fontSize: 14),
border: InputBorder.none,
),
),
......
......@@ -80,6 +80,7 @@ class _WebErpScreenState extends State<WebErpScreen> {
return true; // Allow default back button behavior
},
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar:appbar(context, "Web ERP"),
body: Container(
child: Column(children: <Widget>[
......
......@@ -78,6 +78,7 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> {
return true; // Allow default back button behavior
},
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Whizzdom"),
body: Container(
child: Column(children: <Widget>[
......
......@@ -34,13 +34,18 @@ class _ComplainthistoryState extends State<Complainthistory> {
return Consumer<Generatordetailsprovider>(
builder: (context, provider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Complaint History"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
child: Column(
children: [
if(provider.complaintList.isNotEmpty)...[
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
......@@ -118,12 +123,15 @@ class _ComplainthistoryState extends State<Complainthistory> {
],
);
},),
]else...[
Emptywidget(context)
]
],
),
),
),
),
);
},
);
......
......@@ -18,7 +18,10 @@ class Gentrackerdashboard extends StatefulWidget {
class _GentrackerdashboardState extends State<Gentrackerdashboard> {
@override
Widget build(BuildContext context) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "Gen Tracker"),
body: GridView.builder(
......@@ -37,6 +40,12 @@ class _GentrackerdashboardState extends State<Gentrackerdashboard> {
"Tag Generator",
];
final icons = [
"gent_gen_det",
"gent_reg_comp",
"gent_tag_loc",
"gent_tag_den",
];
return InkResponse(
onTap: () {
switch (names[index]) {
......@@ -68,8 +77,9 @@ class _GentrackerdashboardState extends State<Gentrackerdashboard> {
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/home_icons_${index + 1}.svg",
"assets/svg/${icons[index]}.svg",
),
SizedBox(height: 10,),
Text(names[index]),
],
),
......@@ -77,6 +87,7 @@ class _GentrackerdashboardState extends State<Gentrackerdashboard> {
);
},
),
),
);
}
}
......@@ -53,7 +53,7 @@ class _GeneratordetailsState extends State<Generatordetails> {
homeProvider,
context,
"",
details.genID,
widget.generatorId,
);
}
});
......@@ -89,7 +89,10 @@ class _GeneratordetailsState extends State<Generatordetails> {
child: Icon(Icons.directions),
),
);
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar:
widget.activityName == "NearByGenerators"
? appbar2(context, "Generator Details", sendwidget)
......@@ -100,52 +103,41 @@ class _GeneratordetailsState extends State<Generatordetails> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Customer Details"),
Container(
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 5),
child: Text(
"Customer Details",
style: TextStyle(color: Color(0xFF818181),
fontFamily: "JakartaMedium"),
),
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10),
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
children: [
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(4, (j) {
final textheads = [
"${provider.cname}",
"Mobile Number",
"Contact Person Number",
"Mail ID",
];
final textSubheads = [
"${provider.aname}",
"${provider.mob1}",
"${provider.mob2}",
"${provider.mail}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Container(
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
horizontal: 0,
),
child: Column(
children: [
Row(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
if (j == 0) ...[
SvgPicture.asset(
"assets/svg/se_block_head.svg",
),
SizedBox(width: 5),
],
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
......@@ -156,8 +148,16 @@ class _GeneratordetailsState extends State<Generatordetails> {
context,
).size.width *
0.75,
child: Text(textheads[j].toString(),maxLines: 2,
overflow: TextOverflow.ellipsis,),
child: Text(
"${provider.cname}",
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14
),
),
),
SizedBox(
// height:45,
......@@ -167,45 +167,108 @@ class _GeneratordetailsState extends State<Generatordetails> {
).size.width *
0.75,
child: Text(
textSubheads[j],
"${provider.aname}",
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
fontSize: 14,
color: Color(
0xFF818181,
),
),
),
],
),
],
),
],
),
),
);
}),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(3, (j) {
final textheads = [
"Mobile Number",
"Contact Person Number",
"Mail ID",
];
final textSubheads = [
"${provider.mob1}",
"${provider.mob2}",
"${provider.mail}",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
children: [
Expanded(
flex:1,
child: SizedBox(
child: Text(
textheads[j].toString(),
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14
),
),
),
),
SizedBox(width: 5,),
Expanded(
flex: 2,
child: SizedBox(
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14,
color: Color(
0xFF818181,
),
),
),
),
),
],
),
);
}),
),
],
),
),
Text("Generator Details"),
Container(
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 5),
child: Text(
"Generator Details",
style: TextStyle(color: Color(0xFF818181),
fontFamily: "JakartaMedium"),
),
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10),
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
children: [
Row(
children: [
SvgPicture.asset("assetName"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
......@@ -225,54 +288,44 @@ class _GeneratordetailsState extends State<Generatordetails> {
"${provider.dateOfEngineSale}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
vertical: 6,
horizontal: 0,
),
child: Column(
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.8,
Expanded(
flex:1,
child: Text(textheads[j].toString(),style: TextStyle(
fontSize: 14,
fontFamily: "JakartaMedium"
),),),
SizedBox(width: 5,),
Expanded(
flex:2,
child: SizedBox(
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
fontSize: 14,
color: Color(
0xFF818181,
),
),
],
),
),
],
),
],
),
);
}),
),
],
),
],
),
),
SizedBox(height: 75),
......@@ -296,13 +349,16 @@ class _GeneratordetailsState extends State<Generatordetails> {
margin: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(30.0),
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
"Complaint History",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 15,
color: Colors.white),
),
),
),
......@@ -310,6 +366,7 @@ class _GeneratordetailsState extends State<Generatordetails> {
),
floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat,
),
);
},
);
......
......@@ -24,7 +24,10 @@ class _RegistercomplaintState extends State<Registercomplaint> {
Widget build(BuildContext context) {
return Consumer2<Generatordetailsprovider, HomescreenNotifier>(
builder: (context, provider, homeProvider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "Register Complaint"),
body: Container(
......@@ -40,9 +43,14 @@ class _RegistercomplaintState extends State<Registercomplaint> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height: 25),
Text(
Container(
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text(
"Customer Details",
style: TextStyle(color: Color(0xFF818181)),
style: TextStyle(
fontFamily: "JakartaMedium",
color: Color(0xFF818181)),
),
),
Container(
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
......@@ -74,7 +82,9 @@ class _RegistercomplaintState extends State<Registercomplaint> {
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text("${provider.cname}"),
Text("${provider.cname}",style: TextStyle(
fontFamily: "JakartaMedium"
),),
Text(
"${provider.aname}",
maxLines: 2,
......@@ -111,7 +121,9 @@ class _RegistercomplaintState extends State<Registercomplaint> {
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
Text(textheads[j].toString(),style: TextStyle(
fontFamily: "JakartaMedium"
),),
],
),
),
......@@ -144,9 +156,15 @@ class _RegistercomplaintState extends State<Registercomplaint> {
],
),
),
Text("Complaint Details", style: TextStyle(
color: Color(0xFF818181)
),),
Container(
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text(
"Complaint Details",
style: TextStyle(
fontFamily: "JakartaMedium",
color: Color(0xFF818181)),
),
),
Container(
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
margin: EdgeInsets.symmetric(
......@@ -158,7 +176,12 @@ class _RegistercomplaintState extends State<Registercomplaint> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Complaint Type"),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Type",style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
DropdownButtonHideUnderline(
child: Row(
children: [
......@@ -172,6 +195,7 @@ class _RegistercomplaintState extends State<Registercomplaint> {
'Select Complaint Type',
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
......@@ -267,7 +291,12 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
),
SizedBox(height: 10.0),
Text("Complaint Category"),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Category",style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
DropdownButtonHideUnderline(
child: Row(
children: [
......@@ -370,7 +399,12 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
SizedBox(height: 10.0),
Text("Select Description"),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Select Description",style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
DropdownButtonHideUnderline(
child: Row(
children: [
......@@ -474,7 +508,12 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
SizedBox(height: 10.0),
Text("Duration"),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Duration",style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
Container(
height: 50,
......@@ -513,7 +552,12 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
),
SizedBox(height: 10.0),
Text("Message"),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Message",style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
Container(
height: 150,
......@@ -589,6 +633,8 @@ class _RegistercomplaintState extends State<Registercomplaint> {
"Submit Complaint",
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 15,
color: Colors.white
),
),
......@@ -597,6 +643,7 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
floatingActionButtonLocation: FloatingActionButtonLocation
.centerFloat,
),
);
},
);
......
......@@ -47,7 +47,10 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
Widget build(BuildContext context) {
return Consumer<Generatordetailsprovider>(
builder: (context, provider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "${widget.from}"),
body: Container(
......@@ -55,7 +58,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
child: Column(
children: [
Spacer(),
Container(
SizedBox(
height: 250,
child: QRView(
......@@ -66,7 +69,6 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
},
formatsAllowed: [BarcodeFormat.qrcode],
cameraFacing: CameraFacing.back,
overlay: QrScannerOverlayShape(
borderColor: AppColors.app_blue,
......@@ -81,7 +83,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
Text(
"Scan QR",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
style: TextStyle(fontSize: 18,fontFamily: "JakartaMedium", color: Colors.white),
),
Text(
provider.subTitle,
......@@ -92,7 +94,8 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
Text(
"or",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
style: TextStyle(fontSize: 18,
fontFamily: "JakartaMedium",color: Colors.white),
),
InkResponse(
onTap: () async {
......@@ -101,13 +104,16 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
child: Text(
"Tap to Enter Generator ID",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14, color: Colors.white),
style: TextStyle(fontSize: 18,
fontFamily: "JakartaMedium",
color: AppColors.app_blue),
),
),
SizedBox(height: 50),
],
),
),
),
);
},
);
......@@ -148,12 +154,14 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
mainAxisSize: MainAxisSize.min,
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 5),
alignment: Alignment.topLeft,
child: Text(
"Generator ID",
style: TextStyle(
color: AppColors.semi_black,
fontSize: 12,
fontFamily: "JakartaMedium",
fontSize: 14,
),
),
),
......@@ -162,7 +170,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(20),
borderRadius: BorderRadius.circular(14),
border:
genIDFocusNode.hasFocus
? Border.all(
......@@ -195,7 +203,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
decoration: InputDecoration(
isDense: true,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFF818181),
fontSize: 14,
),
//contentPadding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
......@@ -206,6 +214,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
),
),
),
SizedBox(height: 15,),
InkWell(
onTap: () {
switch(widget.from){
......@@ -248,13 +257,16 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
),
decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(30.0),
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
style: TextStyle(color: Colors.white,
fontFamily: "JakartaMedium",
fontSize: 16
),
),
),
),
......
......@@ -36,7 +36,10 @@ class _InventoryScreenState extends State<InventoryScreen> {
Widget build(BuildContext context) {
return Consumer<InventoryProvider>(
builder: (context, provider, child) {
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "Gen Inventory"),
body: Container(
......@@ -70,7 +73,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
Text(
"Scan QR",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
style: TextStyle(fontSize: 18,fontFamily: "JakartaMedium", color: Colors.white),
),
Text(
"to open Inventory",
......@@ -81,7 +84,8 @@ class _InventoryScreenState extends State<InventoryScreen> {
Text(
"or",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
style: TextStyle(fontSize: 18,
fontFamily: "JakartaMedium",color: Colors.white),
),
InkResponse(
onTap: () async {
......@@ -90,13 +94,16 @@ class _InventoryScreenState extends State<InventoryScreen> {
child: Text(
"Tap To Enter Part ID",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14, color: Colors.white),
style: TextStyle(fontSize: 17,
fontFamily: "JakartaMedium",
color: AppColors.app_blue),
),
),
SizedBox(height: 50),
],
),
),
),
);
},
);
......@@ -137,21 +144,24 @@ class _InventoryScreenState extends State<InventoryScreen> {
mainAxisSize: MainAxisSize.min,
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 10),
alignment: Alignment.topLeft,
child: Text(
"Part ID",
style: TextStyle(
color: AppColors.semi_black,
fontSize: 12,
color: Color(0xFF818181),
fontFamily: "JakartaMedium",
fontSize: 14,
),
),
),
SizedBox(height: 5,),
Container(
height: 48,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(20),
borderRadius: BorderRadius.circular(14),
border:
partIDfocusNode.hasFocus
? Border.all(
......@@ -173,6 +183,8 @@ class _InventoryScreenState extends State<InventoryScreen> {
controller: partIDcontroller,
keyboardType: TextInputType.emailAddress,
focusNode: partIDfocusNode,
textCapitalization: TextCapitalization.characters,
style: TextStyle(fontSize: 14),
onChanged: (value) {},
onTapOutside: (event) {
......@@ -182,7 +194,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
decoration: InputDecoration(
isDense: true,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFF818181),
fontSize: 14,
),
//contentPadding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
......@@ -193,6 +205,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
),
),
),
SizedBox(height: 15,),
InkWell(
onTap: () {
provider.LoadPartDetailsApifunction(
......@@ -201,6 +214,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
"inventory",
partIDcontroller.text,
);
partIDcontroller.clear();
},
child: Container(
alignment: Alignment.center,
......@@ -213,13 +227,15 @@ class _InventoryScreenState extends State<InventoryScreen> {
),
decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(30.0),
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
style: TextStyle(color: Colors.white,
fontFamily: "JakartaMedium",
fontSize: 15),
),
),
),
......
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/PaymentCollectionProvider.dart';
import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart';
......@@ -14,38 +15,75 @@ class Accountsuggestions extends StatefulWidget {
class _AccountsuggestionsState extends State<Accountsuggestions> {
final TextEditingController _searchController = TextEditingController();
FocusNode searchFocusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Consumer<Paymentcollectionprovider>(
builder: (context,provider,child) {
return Scaffold(
builder: (context, provider, child) {
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Accounts"),
backgroundColor: AppColors.scaffold_bg_color,
body: Column(
body: Container(
decoration: BoxDecoration(color: Colors.white),
child: Column(
children: [
const SizedBox(
height: 10,
const SizedBox(height: 10),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text(
"Search Account",
style: TextStyle(color: Color(0xFF2d2d2d)),
),
),
SizedBox(height: 5),
Container(
height: 48,
alignment: Alignment.center,
height: 55,
margin: EdgeInsets.only(left: 15.0, right: 15.0),
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(16),
border:
searchFocusNode.hasFocus
? Border.all(color: AppColors.app_blue, width: 0.5)
: null,
),
// alignment: Alignment.center,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 15, 0),
child: TextField(
controller: _searchController,
keyboardType: TextInputType.text,
onChanged: (value) {
focusNode: searchFocusNode,
textCapitalization: TextCapitalization.characters,
style: TextStyle(fontSize: 14),
onChanged: (value) {
if (value.length >= 3) {
provider.AccountSuggestionAPI(context, value);
}
},
onTapOutside: (event) {
// Handle onTapOutside
FocusScope.of(context).unfocus();
},
decoration: InputDecoration(
hintText: "Enter Account Name.....",
isDense: true,
hintStyle: TextStyle(
fontWeight: FontWeight.w400),
filled: true,
fontWeight: FontWeight.w400,
color: Color(0xFF818181),
fontSize: 14,
),
//contentPadding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
hintText: 'Enter Account Name',
),
),
),
),
......@@ -54,9 +92,7 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
alignment: Alignment.topLeft,
child: Text(
"Note: Enter Minimum 3 Characters",
style: TextStyle(
fontWeight: FontWeight.w300,
),
style: TextStyle(fontWeight: FontWeight.w300),
),
),
......@@ -64,17 +100,11 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
child: SingleChildScrollView(
physics: AlwaysScrollableScrollPhysics(),
child: Container(
child: GridView.builder(
child: ListView.builder(
itemCount: provider.accountList!.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount:
1, // 4 items in a row for tablet
crossAxisSpacing: 4,
mainAxisSpacing: 2,
childAspectRatio: (100 / 25)),
padding: const EdgeInsets.all(5),
physics: const BouncingScrollPhysics(),
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, index) {
var accountList = provider.accountList;
......@@ -85,29 +115,65 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Paymentdetails(
builder:
(context) => Paymentdetails(
accountName: "Account",
name:
accountList![index].accountName,
name: accountList![index].accountName,
genId: "",
referenceID:
accountList![index].accountId,
),
));
),
);
// }
},
child: SizedBox(
child: Container(
width: MediaQuery.of(context).size.width * 0.9,
padding: EdgeInsets.fromLTRB(0, 5, 0, 5),
width:
MediaQuery.of(context).size.width * 0.9,
padding: EdgeInsets.fromLTRB(0, 5, 0, 10),
child: Row(
children: [
Expanded(
flex: 1,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(
8,
),
),
child: SvgPicture.asset(
width: 30,
height: 30,
"assets/svg/se_block_head.svg",
),
),
),
SizedBox(width: 10,),
Expanded(
flex: 5,
child: Text(
"${accountList![index].accountName}",
textAlign: TextAlign.start,
maxLines: 3,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.w300,
color: AppColors.semi_black
),
),
),
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/arrow_right_new.svg",
),
),
],
),
),
),
......@@ -118,17 +184,15 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
physics: AlwaysScrollableScrollPhysics(),
child: Container(
width: double.infinity,
height: MediaQuery.of(context)
.size
.height, // Set width to fill parent width
height: MediaQuery.of(context).size.height,
// Set width to fill parent width
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),
topRight: Radius.circular(30.0),
),
),
padding:
EdgeInsets.fromLTRB(10, 10, 10, 10),
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Container(
child: Align(
alignment: Alignment.center,
......@@ -138,17 +202,24 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
fontWeight: FontWeight.bold,
overflow: TextOverflow.ellipsis,
),
)),
)),
));
),
),
),
),
),
);
}
}),
},
),
),
),
),
))
],
),
),
),
);
}
},
);
}
}
import 'package:flutter/material.dart';
class Complaintdetailsscreen extends StatefulWidget {
const Complaintdetailsscreen({super.key});
@override
State<Complaintdetailsscreen> createState() => _ComplaintdetailsscreenState();
}
class _ComplaintdetailsscreenState extends State<Complaintdetailsscreen> {
@override
Widget build(BuildContext context) {
return const Placeholder();
}
}
......@@ -34,7 +34,10 @@ class _FollowupdetailsState extends State<Followupdetails> {
return Consumer<Visitdetailsprovider>(
builder: (context, provider, child) {
var followups = provider.followUpList;
return Scaffold(
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Follow Up Details"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
......@@ -122,6 +125,7 @@ class _FollowupdetailsState extends State<Followupdetails> {
},
),
),
),
);
},
);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment