Skip to content

Commit

Permalink
fix/645-658-ordered-country-code-can-turn-off-guardian-angel (#659)
Browse files Browse the repository at this point in the history
  • Loading branch information
manit101 authored Feb 5, 2025
1 parent b81dcd4 commit 5e89aa1
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import 'package:ultimate_alarm_clock/app/utils/audio_utils.dart';
import 'package:ultimate_alarm_clock/app/utils/utils.dart';
import 'package:ultimate_alarm_clock/app/utils/constants.dart';
import 'package:uuid/uuid.dart';
import 'package:intl_phone_number_input/src/models/country_model.dart';
import '../../settings/controllers/settings_controller.dart';

class AddOrUpdateAlarmController extends GetxController {
Expand Down Expand Up @@ -1352,3 +1353,11 @@ class AddOrUpdateAlarmController extends GetxController {
homeController.writeProfileName(profileModel.profileName);
}
}

int orderedCountryCode(Country countryA, Country countryB) {
// `??` for null safety of 'dialCode'
String dialCodeA = countryA.dialCode ?? '0';
String dialCodeB = countryB.dialCode ?? '0';

return int.parse(dialCodeA).compareTo(int.parse(dialCodeB));
}
139 changes: 71 additions & 68 deletions lib/app/modules/addOrUpdateAlarm/views/guardian_angel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,80 @@ class GaurdianAngel extends StatelessWidget {
return Column(
children: [
ListTile(
onTap: () {},
title: Row(
children: [
FittedBox(
fit: BoxFit.scaleDown,
alignment: Alignment.centerLeft,
child: Obx(
() => Text(
'Gaurdian Angel'.tr,
style: TextStyle(
color: themeController.primaryTextColor.value,
onTap: () async {
var phonePerm =
await Permission.phone.request().isGranted;
var smsPerm = await Permission.sms.request().isGranted;

if (phonePerm && smsPerm) {
Get.dialog(
Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18),
),
backgroundColor: themeController
.secondaryBackgroundColor.value,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: InternationalPhoneNumberInput(
textFieldController: controller
.contactTextEditingController,
onInputChanged: (value) {},
onInputValidated: (value) {},
spaceBetweenSelectorAndTextField: 0,
selectorConfig: const SelectorConfig(
showFlags: true,
setSelectorButtonAsPrefixIcon: true,
leadingPadding: 0,
trailingSpace: false,
countryComparator: orderedCountryCode,
),
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: controller
.homeController.scalingFactor *
8,
horizontal: controller
.homeController.scalingFactor *
4,
),
child: Row(
children: [
Option(0, Icons.sms, 'Text'),
Option(1, Icons.call, 'Call'),
const Spacer(),
Submit(),
],
),
),
],
),
),
),
);
}
},
title: Row(
children: [
FittedBox(
fit: BoxFit.scaleDown,
alignment: Alignment.centerLeft,
child: Obx(
() => Text(
'Gaurdian Angel'.tr,
style: TextStyle(
color: themeController.primaryTextColor.value,
),
),
),
),
Obx(
() => IconButton(
icon: Icon(
Expand Down Expand Up @@ -75,63 +134,7 @@ class GaurdianAngel extends StatelessWidget {
activeColor: ksecondaryColor,
onChanged: (value) async {
Utils.hapticFeedback();
var phonePerm =
await Permission.phone.request().isGranted;
var smsPerm = await Permission.sms.request().isGranted;

if (phonePerm && smsPerm) {
Get.dialog(
Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18),
),
backgroundColor: themeController
.secondaryBackgroundColor.value,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: InternationalPhoneNumberInput(
textFieldController: controller
.contactTextEditingController,
onInputChanged: (value) {},
onInputValidated: (value) {},
spaceBetweenSelectorAndTextField: 0,
selectorConfig: const SelectorConfig(
showFlags: false,
setSelectorButtonAsPrefixIcon: true,
leadingPadding: 0,
trailingSpace: false,
),
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: controller
.homeController.scalingFactor *
8,
horizontal: controller
.homeController.scalingFactor *
4,
),
child: Row(
children: [
Option(0, Icons.sms, 'Text'),
Option(1, Icons.call, 'Call'),
const Spacer(),
Submit(),
],
),
),
],
),
),
),
);
}
controller.isGuardian.value = value;
},
);
},
Expand Down

0 comments on commit 5e89aa1

Please sign in to comment.