Use TargetPlatform for isDesktop/isAndroid.

This commit is contained in:
Dain Nilsson 2023-03-03 16:29:24 +01:00
parent 7c0814a8e0
commit 9d008bb0a6
No known key found for this signature in database
GPG Key ID: F04367096FBA95E8
6 changed files with 23 additions and 21 deletions

View File

@ -14,15 +14,15 @@
* limitations under the License. * limitations under the License.
*/ */
import 'dart:io';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
void launchFeedbackUrl() => _launchUrl(Platform.isAndroid import '../core/state.dart';
void launchFeedbackUrl() => _launchUrl(isAndroid
? 'https://yubi.co/ya-feedback-android' ? 'https://yubi.co/ya-feedback-android'
: 'https://yubi.co/ya-feedback-desktop'); : 'https://yubi.co/ya-feedback-desktop');
void launchHelpUrl() => _launchUrl(Platform.isAndroid void launchHelpUrl() => _launchUrl(isAndroid
? 'https://yubi.co/ya-help-android' ? 'https://yubi.co/ya-help-android'
: 'https://yubi.co/ya-help-desktop'); : 'https://yubi.co/ya-help-desktop');

View File

@ -14,8 +14,6 @@
* limitations under the License. * limitations under the License.
*/ */
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -115,14 +113,13 @@ class _DevicePickerContent extends ConsumerWidget {
_HeroAvatar( _HeroAvatar(
child: DeviceAvatar( child: DeviceAvatar(
radius: 64, radius: 64,
child: Icon(Platform.isAndroid ? Icons.no_cell : Icons.usb), child: Icon(isAndroid ? Icons.no_cell : Icons.usb),
), ),
), ),
ListTile( ListTile(
title: Center(child: Text(l10n.l_no_yk_present)), title: Center(child: Text(l10n.l_no_yk_present)),
subtitle: Center( subtitle: Center(
child: Text( child: Text(isAndroid ? l10n.l_insert_or_tap_yk : l10n.s_usb)),
Platform.isAndroid ? l10n.l_insert_or_tap_yk : l10n.s_usb)),
), ),
], ],
); );

View File

@ -16,12 +16,12 @@
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../android/views/settings_views.dart'; import '../../android/views/settings_views.dart';
import '../../core/state.dart';
import '../../widgets/list_title.dart'; import '../../widgets/list_title.dart';
import '../../widgets/responsive_dialog.dart'; import '../../widgets/responsive_dialog.dart';
import '../state.dart'; import '../state.dart';
@ -127,7 +127,7 @@ class SettingsPage extends ConsumerWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (defaultTargetPlatform == TargetPlatform.android) ...[ if (isAndroid) ...[
ListTitle(l10n.s_nfc_options), ListTitle(l10n.s_nfc_options),
const NfcTapActionView(), const NfcTapActionView(),
const NfcKbdLayoutView(), const NfcKbdLayoutView(),

View File

@ -14,14 +14,21 @@
* limitations under the License. * limitations under the License.
*/ */
import 'dart:io';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
final isDesktop = Platform.isWindows || Platform.isMacOS || Platform.isLinux; bool get isDesktop {
final isAndroid = Platform.isAndroid; return const [
TargetPlatform.windows,
TargetPlatform.macOS,
TargetPlatform.linux
].contains(defaultTargetPlatform);
}
bool get isAndroid {
return defaultTargetPlatform == TargetPlatform.android;
}
// This must be initialized before use, in main.dart. // This must be initialized before use, in main.dart.
final prefProvider = Provider<SharedPreferences>((ref) { final prefProvider = Provider<SharedPreferences>((ref) {

View File

@ -16,7 +16,6 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -177,7 +176,7 @@ class _OathAddAccountPageState extends ConsumerState<OathAddAccountPage> {
final l10n = AppLocalizations.of(context)!; final l10n = AppLocalizations.of(context)!;
try { try {
if (devicePath == null) { if (devicePath == null) {
assert(Platform.isAndroid, 'devicePath is only optional for Android'); assert(isAndroid, 'devicePath is only optional for Android');
await ref await ref
.read(addCredentialToAnyProvider) .read(addCredentialToAnyProvider)
.call(credUri, requireTouch: _touch); .call(credUri, requireTouch: _touch);
@ -334,7 +333,7 @@ class _OathAddAccountPageState extends ConsumerState<OathAddAccountPage> {
final devicePath = deviceNode?.path; final devicePath = deviceNode?.path;
if (devicePath != null) { if (devicePath != null) {
await _doAddCredential(devicePath: devicePath, credUri: cred.toUri()); await _doAddCredential(devicePath: devicePath, credUri: cred.toUri());
} else if (Platform.isAndroid) { } else if (isAndroid) {
// Send the credential to Android to be added to the next YubiKey // Send the credential to Android to be added to the next YubiKey
await _doAddCredential(devicePath: null, credUri: cred.toUri()); await _doAddCredential(devicePath: null, credUri: cred.toUri());
} else { } else {

View File

@ -14,8 +14,6 @@
* limitations under the License. * limitations under the License.
*/ */
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -24,6 +22,7 @@ import 'package:yubico_authenticator/oath/icon_provider/icon_pack_dialog.dart';
import '../../app/message.dart'; import '../../app/message.dart';
import '../../app/models.dart'; import '../../app/models.dart';
import '../../app/state.dart'; import '../../app/state.dart';
import '../../core/state.dart';
import '../../exception/cancellation_exception.dart'; import '../../exception/cancellation_exception.dart';
import '../../widgets/list_title.dart'; import '../../widgets/list_title.dart';
import '../models.dart'; import '../models.dart';
@ -59,7 +58,7 @@ Widget oathBuildActions(
? () async { ? () async {
Navigator.of(context).pop(); Navigator.of(context).pop();
CredentialData? otpauth; CredentialData? otpauth;
if (Platform.isAndroid) { if (isAndroid) {
final scanner = ref.read(qrScannerProvider); final scanner = ref.read(qrScannerProvider);
if (scanner != null) { if (scanner != null) {
try { try {