showPermissionDialog function

void showPermissionDialog(
  1. BuildContext context,
  2. String titleText, {
  3. required VoidCallback onPositiveButtonPress,
  4. required VoidCallback onNegativeButtonPress,
})

Implementation

void showPermissionDialog(BuildContext context, String titleText,
    {required VoidCallback onPositiveButtonPress,
    required VoidCallback onNegativeButtonPress}) {
  showDialog(
    context: context,
    builder: (_) => AlertDialog(
      backgroundColor: Colors.white,
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
      titlePadding: const EdgeInsets.only(top: 20, left: 20, right: 20),
      contentPadding: const EdgeInsets.symmetric(horizontal: 20),
      actionsPadding: const EdgeInsets.only(bottom: 2),
      title: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Row(
            children: [
              SvgPicture.asset(
                'assets/images/disclaimer_icon.svg',
                package: 'visit_flutter_sdk',
                width: 27,
                height: 27,
                placeholderBuilder: (context) =>
                    const CircularProgressIndicator(),
              ),
              const SizedBox(width: 10),
              const Text(
                'Permission required!',
                style: TextStyle(
                    fontFamily: 'Mulish',
                    fontWeight: FontWeight.w900,
                    fontSize: 16,
                    fontStyle: FontStyle.normal,
                    color: Color(0xFF17181A)),
              ),
            ],
          ),
          const SizedBox(height: 10),
          Text(
            titleText,
            style: const TextStyle(
                fontFamily: 'Mulish',
                fontWeight: FontWeight.w400,
                fontSize: 14,
                fontStyle: FontStyle.normal,
                color: Color(0xFF424242)),
          ),
        ],
      ),
      actions: [
        const SizedBox(height: 24),
        Column(
          children: [
            Padding(
              padding: const EdgeInsets.symmetric(horizontal: 16),
              child: Material(
                color: const Color(0xFFEC6625),
                borderRadius: BorderRadius.circular(8),
                child: InkWell(
                  borderRadius: BorderRadius.circular(8),
                  onTap: () {
                    onPositiveButtonPress();
                  },
                  child: Container(
                    width: double.infinity,
                    padding: const EdgeInsets.symmetric(
                        vertical: 10, horizontal: 17),
                    alignment: Alignment.center,
                    child: const Text(
                      'Settings',
                      style: TextStyle(
                        fontFamily: 'Mulish',
                        fontWeight: FontWeight.w600,
                        fontSize: 14,
                        fontStyle: FontStyle.normal,
                        color: Color(0xFFFFFFFF),
                      ),
                    ),
                  ),
                ),
              ),
            ),
            TextButton(
              onPressed: () => onNegativeButtonPress(),
              style: ButtonStyle(
                overlayColor: WidgetStateProperty.all(Colors.transparent),
                splashFactory: NoSplash.splashFactory,
              ),
              child: const Text(
                'Cancel',
                style: TextStyle(
                    fontFamily: 'Mulish',
                    fontWeight: FontWeight.w600,
                    fontSize: 14,
                    fontStyle: FontStyle.normal,
                    color: Color(0xFFEC6625)),
              ),
            ),
          ],
        ),
      ],
    ),
  );
}