2020-09-26 20:27:15 +02:00
|
|
|
import 'dart:io';
|
|
|
|
|
2021-01-22 21:39:37 +01:00
|
|
|
import 'package:fluffychat/components/sentry_switch_list_tile.dart';
|
2020-09-26 20:27:15 +02:00
|
|
|
import 'package:flutter/foundation.dart';
|
2021-01-17 15:43:38 +01:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:package_info/package_info.dart';
|
|
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
|
|
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|
|
|
|
|
|
|
import '../app_config.dart';
|
2020-09-26 20:27:15 +02:00
|
|
|
|
|
|
|
abstract class PlatformInfos {
|
|
|
|
static bool get isWeb => kIsWeb;
|
2020-10-04 16:11:18 +02:00
|
|
|
|
2020-11-22 22:48:10 +01:00
|
|
|
static bool get isCupertinoStyle =>
|
|
|
|
!kIsWeb && (Platform.isIOS || Platform.isMacOS);
|
|
|
|
|
2020-09-26 20:27:15 +02:00
|
|
|
static bool get isMobile => !kIsWeb && (Platform.isAndroid || Platform.isIOS);
|
2020-10-04 16:11:18 +02:00
|
|
|
|
|
|
|
/// For desktops which don't support ChachedNetworkImage yet
|
|
|
|
static bool get isBetaDesktop =>
|
|
|
|
!kIsWeb && (Platform.isWindows || Platform.isLinux);
|
|
|
|
|
2020-10-28 08:05:10 +01:00
|
|
|
static bool get isDesktop =>
|
|
|
|
!kIsWeb && (Platform.isLinux || Platform.isWindows || Platform.isMacOS);
|
|
|
|
|
2020-09-26 20:27:15 +02:00
|
|
|
static bool get usesTouchscreen => !isMobile;
|
2021-01-17 15:43:38 +01:00
|
|
|
|
|
|
|
static Future<String> getVersion() async {
|
|
|
|
var version = kIsWeb ? 'Web' : 'Unknown';
|
|
|
|
try {
|
|
|
|
version = (await PackageInfo.fromPlatform()).version;
|
|
|
|
} catch (_) {}
|
|
|
|
return version;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void showDialog(BuildContext context) async {
|
|
|
|
var version = await PlatformInfos.getVersion();
|
|
|
|
showAboutDialog(
|
|
|
|
context: context,
|
|
|
|
children: [
|
|
|
|
Text('Version: $version'),
|
2021-01-19 21:40:46 +01:00
|
|
|
RaisedButton(
|
|
|
|
child: Text(L10n.of(context).privacy),
|
|
|
|
onPressed: () => launch(AppConfig.privacyUrl),
|
|
|
|
),
|
2021-01-17 15:43:38 +01:00
|
|
|
RaisedButton(
|
|
|
|
child: Text(L10n.of(context).sourceCode),
|
|
|
|
onPressed: () => launch(AppConfig.sourceCodeUrl),
|
|
|
|
),
|
|
|
|
RaisedButton(
|
2021-01-20 19:53:19 +01:00
|
|
|
child: Text(AppConfig.emojiFontName),
|
|
|
|
onPressed: () => launch(AppConfig.emojiFontUrl),
|
2021-01-17 15:43:38 +01:00
|
|
|
),
|
2021-01-22 21:39:37 +01:00
|
|
|
SentrySwitchListTile(label: L10n.of(context).sendBugReports),
|
2021-01-17 15:43:38 +01:00
|
|
|
],
|
2021-01-22 21:39:37 +01:00
|
|
|
applicationIcon: Image.asset('assets/logo.png', width: 64, height: 64),
|
2021-01-17 15:43:38 +01:00
|
|
|
applicationName: AppConfig.applicationName,
|
|
|
|
);
|
|
|
|
}
|
2020-09-26 20:27:15 +02:00
|
|
|
}
|