You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			80 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			80 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Dart
		
	
| import 'dart:io';
 | |
| 
 | |
| import 'package:easy_localization/easy_localization.dart';
 | |
| import 'package:flutter/material.dart';
 | |
| import 'package:in_app_update/in_app_update.dart';
 | |
| import 'package:mohem_flutter_app/extensions/int_extensions.dart';
 | |
| import 'package:mohem_flutter_app/extensions/string_extensions.dart';
 | |
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
 | |
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
 | |
| import 'package:mohem_flutter_app/widgets/button/default_button.dart';
 | |
| import 'package:url_launcher/url_launcher.dart';
 | |
| 
 | |
| class AppUpdateScreen extends StatefulWidget {
 | |
|   const AppUpdateScreen({Key? key}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   State<AppUpdateScreen> createState() => _UnsafeDeviceScreenState();
 | |
| }
 | |
| 
 | |
| class _UnsafeDeviceScreenState extends State<AppUpdateScreen> {
 | |
|   String? dynamicParams;
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     dynamicParams ??= ModalRoute.of(context)!.settings.arguments as String;
 | |
|     return Scaffold(
 | |
|       body: SafeArea(
 | |
|         child: Column(
 | |
|           mainAxisSize: MainAxisSize.min,
 | |
|           crossAxisAlignment: CrossAxisAlignment.center,
 | |
|           mainAxisAlignment: MainAxisAlignment.center,
 | |
|           children: [
 | |
|             21.height,
 | |
|             Center(child: Image.asset("assets/images/logos/main_mohemm_logo.png", width: 200, height: 50)),
 | |
|             50.height,
 | |
|             "Please Update Your App".toText24(isBold: true),
 | |
|             48.height,
 | |
|             dynamicParams.toString().toText14(isCenter: true).paddingOnly(left: 20.0, right: 20.0),
 | |
|             21.height,
 | |
|             DefaultButton(LocaleKeys.ok.tr(), () async {
 | |
|               if (Platform.isAndroid) {
 | |
|                 // _launchURL("https://play.google.com/store/apps/details?id=com.ejada.hmg");
 | |
|                 InAppUpdate.checkForUpdate().then((info) {
 | |
|                   print("checkForUpdate!!!");
 | |
|                   print(info.toString());
 | |
|                   if (info.immediateUpdateAllowed) {
 | |
|                     print("Immediate Allowed!!!");
 | |
|                     InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString()));
 | |
|                   }
 | |
|                 }).catchError((e) {
 | |
|                   print(e.toString());
 | |
|                 });
 | |
|               }
 | |
|               if (Platform.isIOS) {
 | |
|                 var url = Uri.parse(
 | |
|                   "https://apps.apple.com/app/id1468856602",
 | |
|                 );
 | |
|                 launchUrl(
 | |
|                   url,
 | |
|                   mode: LaunchMode.externalApplication,
 | |
|                 );
 | |
|               }
 | |
|               // if (Platform.isAndroid || Platform.isIOS) {
 | |
|               //   var appId = Platform.isAndroid ? 'hmg.cloudSolutions.mohem' : '1468856602';
 | |
|               //   var url = Uri.parse(
 | |
|               //     Platform.isAndroid ? "market://details?id=$appId" : "https://apps.apple.com/app/id$appId",
 | |
|               //   );
 | |
|               //   launchUrl(
 | |
|               //     url,
 | |
|               //     mode: LaunchMode.externalApplication,
 | |
|               //   );
 | |
|               // }
 | |
|             }).paddingAll(24)
 | |
|           ],
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |