* refa: jni

* refa: jni
This commit is contained in:
My-Responsitories
2026-05-30 12:10:35 +00:00
committed by GitHub
parent 6a75061dbb
commit d4d9fc3405
17 changed files with 1002 additions and 305 deletions

View File

@@ -12,6 +12,7 @@ import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/services/logger.dart';
import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/accounts/account.dart';
import 'package:PiliPlus/utils/android/android_helper.dart';
import 'package:PiliPlus/utils/cache_manager.dart';
import 'package:PiliPlus/utils/date_utils.dart';
import 'package:PiliPlus/utils/device_utils.dart';
@@ -177,7 +178,7 @@ Commit Hash: ${BuildConfig.commitHash}''',
),
if (Platform.isAndroid)
ListTile(
onTap: () => Utils.channel.invokeMethod('linkVerifySettings'),
onTap: PiliAndroidHelper.openLinkVerifySettings,
leading: const Icon(MdiIcons.linkBoxOutline),
title: const Text('打开受支持的链接'),
trailing: Icon(

View File

@@ -13,6 +13,7 @@ import 'package:PiliPlus/pages/home/view.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_status.dart';
import 'package:PiliPlus/utils/android/android_helper.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/size_ext.dart';
@@ -21,7 +22,6 @@ import 'package:PiliPlus/utils/mobile_observer.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
@@ -249,9 +249,10 @@ class _MainAppState extends PopScopeState<MainApp>
await trayManager.setContextMenu(trayMenu);
}
@pragma('vm:prefer-inline')
static void _onBack() {
if (Platform.isAndroid) {
Utils.channel.invokeMethod('back');
PiliAndroidHelper.back();
}
}

View File

@@ -32,6 +32,7 @@ import 'package:PiliPlus/pages/member_pgc/view.dart';
import 'package:PiliPlus/pages/member_shop/view.dart';
import 'package:PiliPlus/pages/member_video_web/archive/view.dart';
import 'package:PiliPlus/pages/member_video_web/season_series/view.dart';
import 'package:PiliPlus/utils/android/android_helper.dart';
import 'package:PiliPlus/utils/date_utils.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/string_ext.dart';
@@ -706,14 +707,11 @@ class _MemberPageState extends State<MemberPage> {
'${_userController.userAvatar!}@200w_200h.webp'.http2https,
));
SmartDialog.dismiss();
await Utils.channel.invokeMethod(
'createShortcut',
<String, String>{
'id': _userController.mid.toString(),
'uri': 'bilibili://space/${_userController.mid}',
'label': _userController.username!,
'icon': file.path,
},
PiliAndroidHelper.createShortcut(
_userController.mid.toString(),
'bilibili://space/${_userController.mid}',
_userController.username!,
file.path,
);
} catch (e) {
SmartDialog.showToast(e.toString());

View File

@@ -17,6 +17,7 @@ import 'package:PiliPlus/pages/common/dyn/common_dyn_page.dart';
import 'package:PiliPlus/pages/music/controller.dart';
import 'package:PiliPlus/pages/music/video/view.dart';
import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/android/android_helper.dart';
import 'package:PiliPlus/utils/date_utils.dart';
import 'package:PiliPlus/utils/extension/get_ext.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
@@ -691,16 +692,13 @@ class _MusicDetailPageState extends CommonDynPageState<MusicDetailPage> {
);
}
Future<void> _searchMusic(MusicDetail item) async {
final res =
Platform.isAndroid &&
(await Utils.channel.invokeMethod<bool>('music', {
'title': item.musicTitle,
'artist': item.originArtist ?? item.originArtistList,
'album': item.album,
}) ??
false);
if (!res) {
void _searchMusic(MusicDetail item) {
if (!Platform.isAndroid ||
!PiliAndroidHelper.openMusic(
item.musicTitle!,
item.originArtist ?? item.originArtistList,
item.album,
)) {
Utils.copyText(item.musicTitle!);
}
}