opt: check cellular

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-26 20:08:09 +08:00
parent 45a965135e
commit e4f4a088ce
3 changed files with 18 additions and 22 deletions

View File

@@ -1,6 +1,6 @@
// ignore_for_file: avoid_print // ignore_for_file: avoid_print
import 'package:PiliPalaX/utils/utils.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -76,8 +76,13 @@ class ApiInterceptor extends Interceptor {
case DioExceptionType.sendTimeout: case DioExceptionType.sendTimeout:
return '发送请求超时,请检查网络设置'; return '发送请求超时,请检查网络设置';
case DioExceptionType.unknown: case DioExceptionType.unknown:
final String res = (await Utils.checkConnectivity()).title; final String res =
(await Connectivity().checkConnectivity()).first.title;
return '$res网络异常 ${error.error}'; return '$res网络异常 ${error.error}';
} }
} }
} }
extension _ConnectivityResultExt on ConnectivityResult {
String get title => ['蓝牙', 'Wi-Fi', '局域', '流量', '', '代理', '其他'][index];
}

View File

@@ -1013,18 +1013,18 @@ class VideoDetailController extends GetxController
// 视频链接 // 视频链接
Future queryVideoUrl() async { Future queryVideoUrl() async {
if (cacheVideoQa == null) { if (cacheVideoQa == null) {
await Utils.checkConnectivity().then((res) { await Connectivity().checkConnectivity().then((res) {
cacheVideoQa = res == ConnectivityResult.mobile cacheVideoQa = res.contains(ConnectivityResult.wifi)
? setting.get(SettingBoxKey.defaultVideoQaCellular, ? setting.get(SettingBoxKey.defaultVideoQa,
defaultValue: VideoQuality.high1080.code) defaultValue: VideoQuality.values.last.code)
: setting.get(SettingBoxKey.defaultVideoQa, : setting.get(SettingBoxKey.defaultVideoQaCellular,
defaultValue: VideoQuality.values.last.code); defaultValue: VideoQuality.high1080.code);
cacheAudioQa = res == ConnectivityResult.mobile cacheAudioQa = res.contains(ConnectivityResult.wifi)
? setting.get(SettingBoxKey.defaultAudioQaCellular, ? setting.get(SettingBoxKey.defaultAudioQa,
defaultValue: AudioQuality.k192.code) defaultValue: AudioQuality.hiRes.code)
: setting.get(SettingBoxKey.defaultAudioQa, : setting.get(SettingBoxKey.defaultAudioQaCellular,
defaultValue: AudioQuality.hiRes.code); defaultValue: AudioQuality.k192.code);
}); });
} }
var result = await VideoHttp.videoUrl(cid: cid.value, bvid: bvid); var result = await VideoHttp.videoUrl(cid: cid.value, bvid: bvid);

View File

@@ -17,7 +17,6 @@ import 'package:PiliPalaX/pages/video/detail/introduction/widgets/group_panel.da
import 'package:PiliPalaX/utils/feed_back.dart'; import 'package:PiliPalaX/utils/feed_back.dart';
import 'package:PiliPalaX/utils/login.dart'; import 'package:PiliPalaX/utils/login.dart';
import 'package:PiliPalaX/utils/storage.dart'; import 'package:PiliPalaX/utils/storage.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:device_info_plus/device_info_plus.dart'; import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -31,17 +30,9 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart' as web;
import 'package:html/dom.dart' as dom; import 'package:html/dom.dart' as dom;
import 'package:html/parser.dart' as html_parser; import 'package:html/parser.dart' as html_parser;
extension ConnectivityResultExt on ConnectivityResult {
String get title => ['蓝牙', 'Wi-Fi', '局域', '流量', '', '代理', '其他'][index];
}
class Utils { class Utils {
static final Random random = Random(); static final Random random = Random();
static Future<ConnectivityResult> checkConnectivity() async {
return (await Connectivity().checkConnectivity()).first;
}
static Future<dynamic> getWwebid(mid) async { static Future<dynamic> getWwebid(mid) async {
try { try {
dynamic response = dynamic response =