bug fixed

This commit is contained in:
nutchayut
2025-01-07 21:36:26 +07:00
parent 40f04ad33b
commit 5bcc7d636e
33 changed files with 396 additions and 58 deletions

View File

@@ -1,3 +1,4 @@
import 'package:cathaypay_mobile/Home/HomePage.dart';
import 'package:cathaypay_mobile/Home/all_menu.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
@@ -13,7 +14,9 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../api/api.dart';
import '../utils/color_custom.dart';
import '../utils/utils.dart';
TextEditingController _current_email = TextEditingController();
TextEditingController _new_email = TextEditingController();
@@ -26,6 +29,31 @@ class ChangeEmailPage extends StatefulWidget {
}
class _ChangeEmailPageState extends State<ChangeEmailPage> {
ChangeEmail() {
print(_current_email.text);
print(_new_email.text);
if (_current_email.text.isNotEmpty &&_new_email.text.isNotEmpty) {
var param = jsonEncode(<dynamic, dynamic>{
"userID": profile?.id,
"oldEmail": _current_email.text,
"newEmail": _new_email.text,
"confirmEmail": _new_email.text
});
Api.post(context, Api.changeEmail, param).then((value) => {
if (value != null) {
// initQrCode(value)
Utils.showAlertDialogCallback(
context,
"บันทึกสำเร็จ",
(value) {
Navigator.pushNamed(context, '/HomePage');
},
)
} else {}
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -129,6 +157,7 @@ class _ChangeEmailPageState extends State<ChangeEmailPage> {
InkWell(
onTap: () async {
// initPromptPay(context);
ChangeEmail();
},
child: Container(
width: double.infinity,

View File

@@ -0,0 +1,256 @@
import 'package:cathaypay_mobile/Home/HomePage.dart';
import 'package:cathaypay_mobile/Home/all_menu.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:cathaypay_mobile/PinCode.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
import 'dart:convert';
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../api/api.dart';
import '../utils/color_custom.dart';
import '../utils/utils.dart';
import 'dart:convert';
import 'dart:io';
import 'package:cathaypay_mobile/Login/forgot_password.dart';
import 'package:cathaypay_mobile/PinCode.dart';
import 'package:cathaypay_mobile/model/token_model.dart';
import 'package:cathaypay_mobile/utils/utils.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../api/api.dart';
import '../utils/color_custom.dart';
TextEditingController _current_pass = TextEditingController();
TextEditingController _new_pass = TextEditingController();
TextEditingController _confirm_pass = TextEditingController();
class ChangePasswordPage extends StatefulWidget {
const ChangePasswordPage({super.key});
@override
State<ChangePasswordPage> createState() => _ChangePasswordPageState();
}
class _ChangePasswordPageState extends State<ChangePasswordPage> {
AndroidDeviceInfo? androidDeviceInfo;
IosDeviceInfo? iosDeviceInfo;
ChangePassword() async {
// print(_current_email.text);
// print(_new_email.text);
if (_current_pass.text.isNotEmpty &&_new_pass.text == _confirm_pass.text) {
var device = "";
if (Platform.isAndroid) {
device = androidDeviceInfo?.id ?? "";
} else if (Platform.isIOS) {
device = iosDeviceInfo?.name ?? "";
}
var param = jsonEncode(<dynamic, dynamic>{
"mobileDeviceID": device,
"oldPassword": _current_pass.text,
"newPassword": _new_pass.text,
"confirmPassword": _confirm_pass.text
});
Api.post(context, Api.changePassword, param).then((value) => {
if (value != null) {
// initQrCode(value)
Utils.showAlertDialogCallback(
context,
"บันทึกสำเร็จ",
(value) {
Navigator.pushNamed(context, '/HomePage');
},
)
} else {}
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
// extendBodyBehindAppBar: true,
appBar: AppBar(
backgroundColor: Colors.white,
leading: CupertinoButton(
onPressed: () {
Navigator.pop(context);
},
child: const Icon(
Icons.arrow_back,
color: Colors.black54,
),
),
elevation: 0,
centerTitle: true,
title: Text(
"เปลี่ยนอีเมล".tr(),
textAlign: TextAlign.center,
style: GoogleFonts.kanit(
color: Colors.black,
fontSize: 20,
),
),
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Container(height: MediaQuery.of(context).size.height,
child: Column(mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [
SizedBox(
height: 10,
),
Text(
"รหัสผ่านปัจจุบัน".tr(),
style: GoogleFonts.kanit(
color: Color(0xff565656),
fontSize: 15,
),
),
SizedBox(
height: 10,
),
Container(
child: TextField(
keyboardType: TextInputType.emailAddress,
// inputFormatters: [
// FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
// ],
controller: _current_pass,
decoration: InputDecoration(
// hintText: 'อีเมลปัจจุบัน'.tr(),
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(horizontal: 16),
),
),
// margin: EdgeInsets.symmetric(horizontal: 20),
height: 48,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: Color(0xfff2f2f2),
),
),
SizedBox(
height: 10,
),
Text(
"รหัสผ่านใหม่".tr(),
style: GoogleFonts.kanit(
color: Color(0xff565656),
fontSize: 15,
),
),
SizedBox(
height: 10,
),
Container(
child: TextField(
keyboardType: TextInputType.emailAddress,
// inputFormatters: [
// FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
// ],
controller: _new_pass,
decoration: InputDecoration(
// hintText: 'อีเมลปัจจุบัน'.tr(),
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(horizontal: 16),
),
),
// margin: EdgeInsets.symmetric(horizontal: 20),
height: 48,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: Color(0xfff2f2f2),
),
),
SizedBox(
height: 10,
),
Text(
"กรอกรหัสผ่านใหม่อีกครั้ง".tr(),
style: GoogleFonts.kanit(
color: Color(0xff565656),
fontSize: 15,
),
),
SizedBox(
height: 10,
),
Container(
child: TextField(
keyboardType: TextInputType.emailAddress,
// inputFormatters: [
// FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
// ],
controller: _confirm_pass,
decoration: InputDecoration(
// hintText: 'อีเมลปัจจุบัน'.tr(),
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(horizontal: 16),
),
),
// margin: EdgeInsets.symmetric(horizontal: 20),
height: 48,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: Color(0xfff2f2f2),
),
),
Spacer(),
// Expanded(child: Container()),
InkWell(
onTap: () async {
/* String pattern = r'^(?=.*?[a-z])(?=.*?[0-9]).{6,}$';
RegExp regExp = RegExp(pattern);
if (!regExp.hasMatch(_new_pass.text)) {
Utils.showAlertDialog(context, "Password ต้องมีตัวเลขและตัวอักษรภาษาอังกฤษอย่างน้อย 1 ตัว".tr());
return;
}
if (_new_pass.text.length < 6) {
Utils.showAlertDialog(context, "Password ต้องมากกว่า 6 ตัว".tr());
return;
}
if (_new_pass.text != _confirm_pass.text) {
Utils.showAlertDialog(context, "Password ไม่ตรงกัน".tr());
return;
}*/
ChangePassword();
},
child: Container(
width: double.infinity,
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(40),
),
child: Container(
padding: EdgeInsets.all(10),
child: Text(
"Confirm".tr(),
textAlign: TextAlign.center,
style: GoogleFonts.kanit(
color: ColorCustom.greyBorder,
fontSize: 20,
fontWeight: FontWeight.w500,
),
),
),
),
),
)
]),
))));
}
}

View File

@@ -1,3 +1,4 @@
import 'package:cathaypay_mobile/Home/ChangePassword.dart';
import 'package:cathaypay_mobile/Pay/QrScanDialog.dart';
import 'package:cathaypay_mobile/Pay/ThaiQrDialog.dart';
import 'package:easy_localization/easy_localization.dart';
@@ -123,13 +124,12 @@ class _SettingPageState extends State<SettingPage> {
),
InkWell(
onTap: () {
showModalBottomSheet<void>(
context: context,
isScrollControlled: true,
useSafeArea: true,
builder: (BuildContext context) {
return ThaiQrDialog();
});
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangePasswordPage(),
),
);
},
child: Container(
height: 48,

View File

@@ -74,6 +74,8 @@ class Api {
static String callBackURL = "http://www.responseClient.com";
static String merchantId = "TCPPROD1600";
static String changeEmail = BaseUrlBuilding + "api/v2/Authentication/ChangeEmail";
static String changePassword = BaseUrlBuilding + "api/v2/Authentication/ChangePassword";
// static Profile? profile;
//
//