mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-04 00:59:50 +08:00
@@ -25,10 +25,13 @@ import 'package:PiliPlus/common/widgets/image_viewer/image.dart';
|
||||
import 'package:PiliPlus/common/widgets/image_viewer/loading_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/image_viewer/viewer.dart';
|
||||
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
|
||||
import 'package:PiliPlus/main.dart' show tmpPadding;
|
||||
import 'package:PiliPlus/models/common/image_preview_type.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/utils/fullscreen.dart';
|
||||
import 'package:PiliPlus/utils/extension/num_ext.dart';
|
||||
import 'package:PiliPlus/utils/extension/string_ext.dart';
|
||||
import 'package:PiliPlus/utils/image_utils.dart';
|
||||
import 'package:PiliPlus/utils/max_screen_size.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/platform_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
@@ -76,6 +79,7 @@ class _GalleryViewerState extends State<GalleryViewer>
|
||||
late final int _quality;
|
||||
late final RxInt _currIndex;
|
||||
GlobalKey? _key;
|
||||
EdgeInsets? _padding;
|
||||
|
||||
late bool _hasInit = false;
|
||||
Player? _player;
|
||||
@@ -170,6 +174,45 @@ class _GalleryViewerState extends State<GalleryViewer>
|
||||
);
|
||||
}
|
||||
|
||||
late final bool _hideSystemBar;
|
||||
|
||||
void _initHideSystemBar() {
|
||||
if (Platform.isAndroid) {
|
||||
if (showSystemBar_) {
|
||||
final view = WidgetsBinding.instance.platformDispatcher.views.first;
|
||||
final size = view.physicalSize / view.devicePixelRatio;
|
||||
_hideSystemBar = !MaxScreenSize.isWindowMode(
|
||||
width: size.width,
|
||||
height: size.height,
|
||||
);
|
||||
} else {
|
||||
_hideSystemBar = false;
|
||||
}
|
||||
} else if (Platform.isIOS) {
|
||||
_hideSystemBar = showSystemBar_;
|
||||
} else {
|
||||
_hideSystemBar = false;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
if (_padding == null) {
|
||||
final padding = MediaQuery.viewPaddingOf(context);
|
||||
_padding = padding;
|
||||
_initHideSystemBar();
|
||||
if (_hideSystemBar) {
|
||||
tmpPadding = padding;
|
||||
hideSystemBar()!.whenComplete(
|
||||
() => WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => tmpPadding = null,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Matrix4 _onTransform(double val) {
|
||||
final scale = val.lerp(1.0, 0.25);
|
||||
|
||||
@@ -259,6 +302,9 @@ class _GalleryViewerState extends State<GalleryViewer>
|
||||
}
|
||||
Future.delayed(const Duration(milliseconds: 200), _currIndex.close);
|
||||
super.dispose();
|
||||
if (_hideSystemBar) {
|
||||
showSystemBar();
|
||||
}
|
||||
}
|
||||
|
||||
void _onPointerDown(PointerDownEvent event) {
|
||||
@@ -311,9 +357,7 @@ class _GalleryViewerState extends State<GalleryViewer>
|
||||
right: 0,
|
||||
child: IgnorePointer(
|
||||
child: Container(
|
||||
padding:
|
||||
MediaQuery.viewPaddingOf(context) +
|
||||
const EdgeInsets.fromLTRB(12, 8, 20, 8),
|
||||
padding: _padding! + const EdgeInsets.fromLTRB(12, 8, 20, 8),
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
|
||||
Reference in New Issue
Block a user