Compare commits

..

5 Commits

Author SHA1 Message Date
bggRGjQaUbCoE
924fb4bf81 fix applinks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-01 15:30:26 +08:00
bggRGjQaUbCoE
f60c0b9a10 opt dyn topic
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-01 15:02:38 +08:00
bggRGjQaUbCoE
7c0d161b9a fix live room
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-01 14:27:35 +08:00
bggRGjQaUbCoE
0a8b632200 fix route
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-01 12:29:31 +08:00
bggRGjQaUbCoE
401f5268a6 fix appscheme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-01 11:49:10 +08:00
6 changed files with 88 additions and 59 deletions

View File

@@ -58,6 +58,9 @@
android:supportsPictureInPicture="true"
android:resizeableActivity="true"
>
<meta-data android:name="flutter_deeplinking_enabled" android:value="false" />
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues

View File

@@ -119,15 +119,17 @@ class _DynamicSliverAppBarMediumState extends State<DynamicSliverAppBarMedium> {
});
}
@override
void didChangeDependencies() {
_height = 0;
_updateHeight();
super.didChangeDependencies();
}
Orientation? _orientation;
@override
Widget build(BuildContext context) {
final orientation = MediaQuery.of(context).orientation;
if (orientation != _orientation) {
_orientation = orientation;
_height = 0;
_updateHeight();
}
//Needed to lay out the flexibleSpace the first time, so we can calculate its intrinsic height
if (_height == 0) {
return SliverToBoxAdapter(

View File

@@ -210,7 +210,7 @@ class MyApp extends StatelessWidget {
supportedLocales: const [Locale("zh", "CN"), Locale("en", "US")],
fallbackLocale: const Locale("zh", "CN"),
getPages: Routes.getPages,
home: const MainApp(),
initialRoute: '/',
builder: FlutterSmartDialog.init(
toastBuilder: (String msg) => CustomToast(msg: msg),
loadingBuilder: (msg) => LoadingWidget(msg: msg),

View File

@@ -22,7 +22,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:canvas_danmaku/canvas_danmaku.dart';
import 'package:floating/floating.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show MethodChannel;
import 'package:flutter/services.dart' show MethodChannel, SystemUiOverlayStyle;
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:screen_brightness/screen_brightness.dart';
@@ -207,57 +207,79 @@ class _LiveRoomPageState extends State<LiveRoomPage>
);
}
SystemUiOverlayStyle _systemOverlayStyleForBrightness(
Brightness brightness, [
Color? backgroundColor,
]) {
final SystemUiOverlayStyle style = brightness == Brightness.dark
? SystemUiOverlayStyle.light
: SystemUiOverlayStyle.dark;
// For backward compatibility, create an overlay style without system navigation bar settings.
return SystemUiOverlayStyle(
statusBarColor: backgroundColor,
statusBarBrightness: style.statusBarBrightness,
statusBarIconBrightness: style.statusBarIconBrightness,
systemStatusBarContrastEnforced: style.systemStatusBarContrastEnforced,
);
}
Widget childWhenDisabled(bool isPortrait) {
return ColoredBox(
color: Colors.black,
child: Stack(
clipBehavior: Clip.none,
children: [
Obx(
() => isFullScreen
? const SizedBox.shrink()
: Positioned.fill(
child: Opacity(
opacity: 0.6,
child: _liveRoomController.roomInfoH5.value?.roomInfo
?.appBackground?.isNotEmpty ==
true
? CachedNetworkImage(
fit: BoxFit.cover,
width: Get.width,
height: Get.height,
imageUrl: _liveRoomController.roomInfoH5.value!
.roomInfo!.appBackground!.http2https,
)
: Image.asset(
'assets/images/live/default_bg.webp',
fit: BoxFit.cover,
),
return AnnotatedRegion<SystemUiOverlayStyle>(
value: _systemOverlayStyleForBrightness(
Brightness.dark,
Theme.of(context).useMaterial3 ? const Color(0x00000000) : null,
),
child: ColoredBox(
color: Colors.black,
child: Stack(
clipBehavior: Clip.none,
children: [
Obx(
() => isFullScreen
? const SizedBox.shrink()
: Positioned.fill(
child: Opacity(
opacity: 0.6,
child: _liveRoomController.roomInfoH5.value?.roomInfo
?.appBackground?.isNotEmpty ==
true
? CachedNetworkImage(
fit: BoxFit.cover,
width: Get.width,
height: Get.height,
imageUrl: _liveRoomController.roomInfoH5.value!
.roomInfo!.appBackground!.http2https,
)
: Image.asset(
'assets/images/live/default_bg.webp',
fit: BoxFit.cover,
),
),
),
),
),
SafeArea(
top: !isFullScreen,
left: !isFullScreen,
right: !isFullScreen,
bottom: false,
child: isPortrait
? Obx(
() {
if (_liveRoomController.isPortrait.value) {
return _buildPP;
}
return _buildPH;
},
)
: Column(
children: [
Obx(() => _buildAppBar),
_buildBodyH,
],
),
),
],
),
SafeArea(
top: !isFullScreen,
left: !isFullScreen,
right: !isFullScreen,
bottom: false,
child: isPortrait
? Obx(
() {
if (_liveRoomController.isPortrait.value) {
return _buildPP;
}
return _buildPH;
},
)
: Column(
children: [
Obx(() => _buildAppBar),
_buildBodyH,
],
),
),
],
),
),
);
}

View File

@@ -21,6 +21,7 @@ import 'package:PiliPlus/pages/later/view.dart';
import 'package:PiliPlus/pages/later_search/view.dart';
import 'package:PiliPlus/pages/live_room/view.dart';
import 'package:PiliPlus/pages/login/view.dart';
import 'package:PiliPlus/pages/main/view.dart';
import 'package:PiliPlus/pages/media/view.dart';
import 'package:PiliPlus/pages/member/view.dart';
import 'package:PiliPlus/pages/member_dynamics/view.dart';
@@ -61,8 +62,9 @@ import 'package:get/get.dart';
class Routes {
static final List<GetPage<dynamic>> getPages = [
CustomGetPage(name: '/', page: () => const MainApp()),
// 首页(推荐)
CustomGetPage(name: '/', page: () => const HomePage()),
CustomGetPage(name: '/home', page: () => const HomePage()),
// 热门
CustomGetPage(name: '/hot', page: () => const HotPage()),
// 视频详情

View File

@@ -512,7 +512,7 @@ class PiliScheme {
}
void launchURL() {
if (selfHandle) {
if (!selfHandle) {
_toWebview(uri.toString(), off, parameters);
}
}