mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-24 18:38:48 +01:00
Extract plaform constants
This commit is contained in:
parent
45e3140ea9
commit
13772ee742
7 changed files with 28 additions and 17 deletions
|
@ -6,12 +6,13 @@ import 'package:nc_photos/entity/file.dart';
|
|||
import 'package:nc_photos/exception.dart';
|
||||
import 'package:nc_photos/mobile/android/media_store.dart';
|
||||
import 'package:nc_photos/platform/downloader.dart' as itf;
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
class Downloader extends itf.Downloader {
|
||||
@override
|
||||
downloadFile(Account account, File file) {
|
||||
if (Platform.isAndroid) {
|
||||
if (platform_k.isAndroid) {
|
||||
return _downloadFileAndroid(account, file);
|
||||
} else {
|
||||
throw UnimplementedError();
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
import 'dart:io';
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
final isSupportMapView = kIsWeb || Platform.isAndroid;
|
||||
final isSupportMapView = platform_k.isWeb || platform_k.isAndroid;
|
||||
|
|
7
lib/platform/k.dart
Normal file
7
lib/platform/k.dart
Normal file
|
@ -0,0 +1,7 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
const isWeb = kIsWeb;
|
||||
// Platform n/a on web, need checking kIsWeb first
|
||||
final isAndroid = !kIsWeb && Platform.isAndroid;
|
|
@ -8,6 +8,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
|||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:nc_photos/k.dart' as k;
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
import 'package:nc_photos/session_storage.dart';
|
||||
import 'package:nc_photos/snack_bar_manager.dart';
|
||||
import 'package:nc_photos/theme.dart';
|
||||
|
@ -37,7 +38,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
BuildContext context, {
|
||||
@required Widget child,
|
||||
}) {
|
||||
if (kIsWeb) {
|
||||
if (platform_k.isWeb) {
|
||||
// support switching pages with keyboard on web
|
||||
return RawKeyboardListener(
|
||||
onKey: (ev) {
|
||||
|
@ -108,7 +109,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
return _SelectableItemWidget(
|
||||
isSelected: _selectedItems.contains(item),
|
||||
onTap: () => _onItemTap(item, index),
|
||||
onLongPress: isSelectionMode && kIsWeb
|
||||
onLongPress: isSelectionMode && platform_k.isWeb
|
||||
? null
|
||||
: () => _onItemLongPress(item, index),
|
||||
child: item.buildWidget(context),
|
||||
|
@ -159,7 +160,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
return;
|
||||
}
|
||||
final wasSelectionMode = isSelectionMode;
|
||||
if (!kIsWeb && wasSelectionMode && _lastSelectPosition != null) {
|
||||
if (!platform_k.isWeb && wasSelectionMode && _lastSelectPosition != null) {
|
||||
setState(() {
|
||||
_selectedItems.addAll(_items
|
||||
.sublist(math.min(_lastSelectPosition, index),
|
||||
|
@ -178,7 +179,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
if (!wasSelectionMode) {
|
||||
if (!SessionStorage().hasShowRangeSelectNotification) {
|
||||
SnackBarManager().showSnackBar(SnackBar(
|
||||
content: Text(kIsWeb
|
||||
content: Text(platform_k.isWeb
|
||||
? AppLocalizations.of(context).webSelectRangeNotification
|
||||
: AppLocalizations.of(context).mobileSelectRangeNotification),
|
||||
duration: k.snackBarDurationNormal,
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
|||
import 'package:logging/logging.dart';
|
||||
import 'package:nc_photos/account.dart';
|
||||
import 'package:nc_photos/list_extension.dart';
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
import 'package:nc_photos/pref.dart';
|
||||
import 'package:nc_photos/string_extension.dart';
|
||||
import 'package:nc_photos/theme.dart';
|
||||
|
@ -62,7 +63,7 @@ class _SignInState extends State<SignIn> {
|
|||
child: _buildForm(context),
|
||||
),
|
||||
),
|
||||
if (!kIsWeb) Expanded(child: Container()),
|
||||
if (!platform_k.isWeb) Expanded(child: Container()),
|
||||
Container(
|
||||
constraints: const BoxConstraints(
|
||||
maxWidth: AppTheme.widthLimitedContentMaxWidth),
|
||||
|
|
|
@ -18,6 +18,7 @@ import 'package:nc_photos/exception_util.dart' as exception_util;
|
|||
import 'package:nc_photos/k.dart' as k;
|
||||
import 'package:nc_photos/mobile/platform.dart'
|
||||
if (dart.library.html) 'package:nc_photos/web/platform.dart' as platform;
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
import 'package:nc_photos/snack_bar_manager.dart';
|
||||
import 'package:nc_photos/theme.dart';
|
||||
import 'package:nc_photos/use_case/remove.dart';
|
||||
|
@ -78,14 +79,15 @@ class _ViewerState extends State<Viewer> with TickerProviderStateMixin {
|
|||
return AppTheme(
|
||||
child: Scaffold(
|
||||
body: Builder(
|
||||
builder: (context) =>
|
||||
kIsWeb ? _buildWebContent(context) : _buildContent(context)),
|
||||
builder: (context) => platform_k.isWeb
|
||||
? _buildWebContent(context)
|
||||
: _buildContent(context)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildWebContent(BuildContext context) {
|
||||
assert(kIsWeb);
|
||||
assert(platform_k.isWeb);
|
||||
// support switching pages with keyboard on web
|
||||
return RawKeyboardListener(
|
||||
onKey: (ev) {
|
||||
|
@ -147,11 +149,11 @@ class _ViewerState extends State<Viewer> with TickerProviderStateMixin {
|
|||
controller: _pageController,
|
||||
itemCount: widget.streamFiles.length,
|
||||
itemBuilder: _buildPage,
|
||||
physics: !kIsWeb && _canSwitchPage()
|
||||
physics: !platform_k.isWeb && _canSwitchPage()
|
||||
? null
|
||||
: const NeverScrollableScrollPhysics(),
|
||||
),
|
||||
if (kIsWeb) ..._buildNavigationButtons(context),
|
||||
if (platform_k.isWeb) ..._buildNavigationButtons(context),
|
||||
_buildBottomAppBar(context),
|
||||
_buildAppBar(context),
|
||||
],
|
||||
|
@ -793,7 +795,7 @@ class _ViewerState extends State<Viewer> with TickerProviderStateMixin {
|
|||
/// Update the navigation state for [page]
|
||||
void _updateNavigationState(int page) {
|
||||
// currently useless to run on non-web platform
|
||||
if (!kIsWeb) {
|
||||
if (!platform_k.isWeb) {
|
||||
return;
|
||||
}
|
||||
final hasNext = page < widget.streamFiles.length - 1;
|
||||
|
|
|
@ -19,6 +19,7 @@ import 'package:nc_photos/k.dart' as k;
|
|||
import 'package:nc_photos/mobile/platform.dart'
|
||||
if (dart.library.html) 'package:nc_photos/web/platform.dart' as platform;
|
||||
import 'package:nc_photos/platform/features.dart' as features;
|
||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||
import 'package:nc_photos/snack_bar_manager.dart';
|
||||
import 'package:nc_photos/theme.dart';
|
||||
import 'package:nc_photos/use_case/remove.dart';
|
||||
|
@ -242,7 +243,7 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
|||
}
|
||||
|
||||
void _onMapTap() {
|
||||
if (Platform.isAndroid) {
|
||||
if (platform_k.isAndroid) {
|
||||
final intent = AndroidIntent(
|
||||
action: "action_view",
|
||||
data: Uri.encodeFull("geo:${_gps.item1},${_gps.item2}?z=16"),
|
||||
|
|
Loading…
Reference in a new issue