Untitled

version & connection checkers
mail@pastecode.io avatar
unknown
dart
2 years ago
6.1 kB
1
Indexable
Never
  
  bool versionCheck = false;
  bool connectionCheck = false;

  if (Platform.isAndroid) {
    await WebServices.versionControl('6', '100').then((value) {
      if (value != null) {
        versionCheck = value;
        connectionCheck = true;
      }
    }).timeout(Duration(seconds: 5), onTimeout: () {
      connectionCheck = false;
    });
  }

---------------------------------
!connectionCheck
          ? ConnectionCheckFailed()
          : !versionCheck
              ? VersionCheckFailed()
              : 
-------------------------
connection_check_failed.dart:
--------------------------

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class ConnectionCheckFailed extends StatelessWidget {
  const ConnectionCheckFailed({Key key}) : super(key: key);


  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    return Scaffold(
      body: Container(
        color: Colors.grey[700],
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Padding(
                padding: EdgeInsets.all(width * .075),
                child: Container(
                  padding: EdgeInsets.all(width * .075),
                  decoration: BoxDecoration(
                    color: Colors.grey[200],
                    boxShadow: [
                      BoxShadow(
                        color: Colors.black.withOpacity(0.45),
                        spreadRadius: 4,
                        blurRadius: 2,
                      ),
                    ],
                    borderRadius: BorderRadius.circular(5),
                    // border: Border.all(width: 1),
                  ),
                  child: const Text(
                    "Uygulamayı kullanabilmek için lütfen internet bağlantınızı kontrol edip uygulamayı yeniden çalıştırın.",
                    style: TextStyle(fontSize: 25),
                  ),
                ),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Platform.isAndroid
                      ? RawMaterialButton(
                          onPressed: () {
                            SystemNavigator.pop();
                          },
                          child: const Text(
                            "Çıkış",
                            style: TextStyle(color: Colors.white),
                          ),
                          fillColor: Colors.amber[800],
                        )
                      : const SizedBox(),                
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

-------------------------
version_check_failed.dart:
--------------------------

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';

class VersionCheckFailed extends StatelessWidget {
  const VersionCheckFailed({Key key}) : super(key: key);

  void _launchURL(String _url) async {
    if (!await launch(_url)) throw 'Could not launch $_url';
  }

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    return Scaffold(
      body: Container(        
        color: Colors.grey[700],
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Padding(
                padding: EdgeInsets.all(width * .075),
                child: Container(
                  padding: EdgeInsets.all(width * .075),
                  decoration: BoxDecoration(
                    color: Colors.grey[200],
                    boxShadow: [
                      BoxShadow(
                        color: Colors.black.withOpacity(0.45),
                        spreadRadius: 4,
                        blurRadius: 2,
                      ),
                    ],
                    borderRadius: BorderRadius.circular(5),
                    // border: Border.all(width: 1),
                  ),
                  child: const Text(
                    "Uygulamayı kullanabilmek için lütfen en son sürüme güncelleyin.",
                    style: TextStyle(fontSize: 25),
                  ),
                ),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Platform.isAndroid
                      ? RawMaterialButton(
                          onPressed: () {
                            SystemNavigator.pop();
                          },
                          child: const Text(
                            "Çıkış",
                            style: TextStyle(color: Colors.white),
                          ),
                          fillColor: Colors.amber[800],
                        )
                      : const SizedBox(),
                  Padding(
                    padding: EdgeInsets.only(
                        left: Platform.isAndroid ? width * .035 : 0),
                    child: RawMaterialButton(
                      onPressed: () {
                        if (Platform.isAndroid) {
                          _launchURL(
                              "https://play.google.com/store/apps/details?id=com.pars.taksim");
                        }
                        if (Platform.isIOS) {
                          _launchURL(
                              "https://apps.apple.com/us/app/pars-taksim/id1596088641");
                        }
                      },
                      child: const Text(
                        "Güncelle",
                        style: TextStyle(color: Colors.white),
                      ),
                      fillColor: Colors.green[900],
                    ),
                  ),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}