186 lines
5.9 KiB
Dart
Executable File
186 lines
5.9 KiB
Dart
Executable File
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../constant/box_name.dart';
|
|
import '../../constant/colors.dart';
|
|
import '../../constant/style.dart';
|
|
import '../../controller/auth/captin/login_captin_controller.dart';
|
|
import '../../controller/profile/profile_controller.dart';
|
|
import '../../main.dart';
|
|
import '../widgets/elevated_btn.dart';
|
|
import 'captin/login_captin.dart';
|
|
|
|
class CountryPicker extends StatelessWidget {
|
|
final ProfileController controller = Get.put(ProfileController());
|
|
|
|
final List<String> countryOptions = [
|
|
'Jordan',
|
|
'USA',
|
|
'Egypt',
|
|
'Turkey',
|
|
'Saudi Arabia',
|
|
'Qatar',
|
|
'Bahrain',
|
|
'Kuwait',
|
|
];
|
|
|
|
CountryPicker({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GetBuilder<ProfileController>(builder: (controller) {
|
|
return Padding(
|
|
padding: const EdgeInsets.all(20),
|
|
child: ListView(
|
|
children: [
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
Text(
|
|
"Select Your Country".tr,
|
|
style: AppStyle.headTitle2,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
// const SizedBox(
|
|
// height: 20,
|
|
// ),
|
|
Padding(
|
|
padding: const EdgeInsets.all(10),
|
|
child: Text(
|
|
"To ensure you receive the most accurate information for your location, please select your country below. This will help tailor the app experience and content to your country."
|
|
.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
SizedBox(
|
|
height: 200,
|
|
child: CupertinoPicker(
|
|
itemExtent: 32,
|
|
onSelectedItemChanged: (int index) {
|
|
controller.setCountry(countryOptions[index]);
|
|
box.write(BoxName.countryCode,
|
|
countryOptions[index]); // Save in English
|
|
},
|
|
children: List.generate(
|
|
countryOptions.length,
|
|
(index) => Center(
|
|
child: Text(
|
|
countryOptions[index]
|
|
.tr, // Display translated if not English
|
|
style: AppStyle.title,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
|
|
MyElevatedButton(
|
|
title: 'Select Country'.tr, // Use translated text for button
|
|
onPressed: () {
|
|
Get.find<LoginDriverController>().saveCountryCode(controller
|
|
.selectedCountry
|
|
.toString()); // No conversion needed
|
|
box.write(
|
|
BoxName.countryCode, //
|
|
controller.selectedCountry); // Already saved in English
|
|
Get.snackbar(controller.selectedCountry.toString().tr, '');
|
|
Get.off(LoginCaptin());
|
|
},
|
|
)
|
|
],
|
|
),
|
|
);
|
|
});
|
|
}
|
|
}
|
|
|
|
class CountryPickerFromSetting extends StatelessWidget {
|
|
final ProfileController controller = Get.put(ProfileController());
|
|
final LoginDriverController loginController =
|
|
Get.put(LoginDriverController());
|
|
|
|
final List<String> countryOptions = [
|
|
'Jordan',
|
|
'Egypt',
|
|
'Turkey',
|
|
'Saudi Arabia',
|
|
'Qatar',
|
|
'Bahrain',
|
|
'Kuwait',
|
|
'USA',
|
|
];
|
|
|
|
CountryPickerFromSetting({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GetBuilder<ProfileController>(builder: (controller) {
|
|
return Padding(
|
|
padding: const EdgeInsets.all(20.0),
|
|
child: ListView(
|
|
children: [
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
Text(
|
|
"Select Your Country".tr,
|
|
style: AppStyle.headTitle2,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
// const SizedBox(
|
|
// height: 20,
|
|
// ),
|
|
Padding(
|
|
padding: const EdgeInsets.all(10),
|
|
child: Text(
|
|
"To ensure you receive the most accurate information for your location, please select your country below. This will help tailor the app experience and content to your country."
|
|
.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
SizedBox(
|
|
height: 200,
|
|
child: CupertinoPicker(
|
|
itemExtent: 32,
|
|
onSelectedItemChanged: (int index) {
|
|
controller.setCountry(countryOptions[index]);
|
|
box.write(BoxName.countryCode,
|
|
countryOptions[index]); // Save in English
|
|
},
|
|
children: List.generate(
|
|
countryOptions.length,
|
|
(index) => Center(
|
|
child: Text(
|
|
countryOptions[index]
|
|
.tr, // Display translated if not English
|
|
style: AppStyle.title,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
|
|
MyElevatedButton(
|
|
title: 'Select Country'.tr, // Use translated text for button
|
|
onPressed: () async {
|
|
loginController.saveCountryCode(controller.selectedCountry
|
|
.toString()); // No conversion needed
|
|
box.write(
|
|
BoxName.countryCode, //
|
|
controller.selectedCountry); // Already saved in English
|
|
Get.snackbar(controller.selectedCountry.toString().tr, '',
|
|
backgroundColor: AppColor.greenColor);
|
|
// Get.back();//
|
|
// Get.back();
|
|
},
|
|
)
|
|
],
|
|
),
|
|
);
|
|
});
|
|
}
|
|
}
|