diff --git a/lib/backend/DataManager.dart b/lib/backend/DataManager.dart index 3b434d7..e246a82 100644 --- a/lib/backend/DataManager.dart +++ b/lib/backend/DataManager.dart @@ -5,6 +5,8 @@ import 'package:http/http.dart' as http; import 'DebugHelper.dart'; class DataManager{ + static int ClientVersion = 1; + static const String API_ENDPOINT = "http://vps.playpoolstudios.com/faucet/api/"; static Map Settings = {}; @@ -29,6 +31,18 @@ class DataManager{ GamesEarnings = CryptoEarnings = {}; } + static Future GetVersion() async{ + var response = (await http.post(Uri.parse('${API_ENDPOINT}get_version.php'))); + int v = -1; + try{ + v = int.parse(response.body.toString()); + }catch(e){ + v=-1; + } + + return v; + } + static Future Init() async{ bool isSettingsDone = await GetSettings(); bool isGamesDone = await GetGames(); diff --git a/lib/disabled_mode.dart b/lib/disabled_mode.dart new file mode 100644 index 0000000..209321a --- /dev/null +++ b/lib/disabled_mode.dart @@ -0,0 +1,121 @@ +import 'package:external_app_launcher/external_app_launcher.dart'; +import 'package:fhub/src/CustomWidgets.dart'; +import 'package:flutter/material.dart'; + +class UpdatePage extends StatefulWidget { + const UpdatePage({Key? key}) : super(key: key); + + @override + State createState() => _UpdatePageState(); +} + +class _UpdatePageState extends State { + + @override + void initState() { + // TODO: implement initState + super.initState(); + kickstartAnimations(); + } + + void kickstartAnimations() async { + await Future.delayed(const Duration(milliseconds: 500)); + + setState(() { + op1 = 0.5; + op2 = 0.5; + op3 = 0.5; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + body: CustomBody( + context: context, onAnimEnd: (){setState(() {});}, + child: SafeArea( + child: Center( + child: GlassCard(child: Container(width: 300,height: 300, child: Padding( + padding: const EdgeInsets.all(38.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GradientText(text: "New Update", gradient: LinearGradient(colors: [Colors.white.withOpacity(0.7), Colors.white.withOpacity(0.2),]),style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),), + Icon(Icons.upcoming_outlined,size: 70,), + GlassButton(onTap: () async{ + await LaunchApp.openApp( + androidPackageName: 'com.Xperience.FaucetHub', + // openStore: false + ); + }, child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.install_mobile,size: 20,), + SizedBox(width: 20,), + Text("Update"), + SizedBox(width: 15,) + ], + ), width: 200,height: 40,color: Colors.greenAccent) + ], + ), + ),)), + ), + ) + ) + ); + } +} + + +class MaintaincePage extends StatefulWidget { + const MaintaincePage({Key? key}) : super(key: key); + + @override + State createState() => _MaintaincePage(); +} + +class _MaintaincePage extends State { + + @override + void initState() { + // TODO: implement initState + super.initState(); + kickstartAnimations(); + } + + void kickstartAnimations() async { + await Future.delayed(const Duration(milliseconds: 500)); + + setState(() { + op1 = 0.5; + op2 = 0.5; + op3 = 0.5; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + body: CustomBody( + context: context, onAnimEnd: (){setState(() {});}, + child: SafeArea( + child: Center( + child: GlassCard(child: Container(width: 300,height: 300, child: Padding( + padding: const EdgeInsets.all(38.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GradientText(text: "Under Maintaince", gradient: LinearGradient(colors: [Colors.white.withOpacity(0.7), Colors.white.withOpacity(0.2),]),style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),), + Icon(Icons.construction,size: 60,), + Text("This app is currently under maintaince, Please check back shortly",textAlign: TextAlign.center,), + ], + ), + ),)), + ), + ) + ) + ); + } +} \ No newline at end of file diff --git a/lib/welcome.dart b/lib/welcome.dart index e715c54..c1af4c8 100644 --- a/lib/welcome.dart +++ b/lib/welcome.dart @@ -1,6 +1,7 @@ import 'package:fhub/backend/DataManager.dart'; import 'package:fhub/backend/Dialogs.dart'; import 'package:fhub/backend/login_mgr.dart'; +import 'package:fhub/disabled_mode.dart'; import 'package:fhub/home.dart'; import 'package:fhub/src/CustomWidgets.dart'; import 'package:flutter/material.dart'; @@ -27,6 +28,16 @@ class _MyHomePageState extends State { } void init() async{ + int serverVersion = await DataManager.GetVersion(); + if(serverVersion > 0 && serverVersion != DataManager.ClientVersion){ + Navigator.of(context).push(MaterialPageRoute(builder: (context)=> UpdatePage())); + return; + + }else if(serverVersion <= 0){ + Navigator.of(context).push(MaterialPageRoute(builder: (context)=> MaintaincePage())); + return; + } + if(await DataManager.Init() == false){ return; }