diff --git a/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt b/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt index 21b1c6c..8659a3d 100644 --- a/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt +++ b/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt @@ -96,7 +96,6 @@ class MainActivity : FlutterActivity() { // 获取可以迁移数据地址 "androidGetExtendDirs" -> androidGetExtendDirs() "androidSecureFlag" -> androidSecureFlag(call.argument("flag")!!) - "convertToPNG" -> convertToPNG(call.argument("path")!!) else -> { notImplementedToken } @@ -347,28 +346,6 @@ class MainActivity : FlutterActivity() { } } - private fun convertToPNG(path: String): ByteArray { - BitmapFactory.decodeFile(path)?.let { bitmap -> - val maxWidth = - when { - Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> windowManager.currentWindowMetrics.bounds.width() - Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 -> { - val displayMetrics = DisplayMetrics() - windowManager.defaultDisplay.getRealMetrics(displayMetrics) - displayMetrics.widthPixels - } - else -> throw Exception("not support") - } - if (bitmap.width > maxWidth) { - val newHeight = maxWidth * bitmap.height / bitmap.width - val newImage = Bitmap.createScaledBitmap(bitmap, maxWidth, newHeight, true) - return compressBitMap(newImage) - } - return compressBitMap(bitmap) - } - throw Exception("error pic") - } - private fun compressBitMap(bitmap: Bitmap): ByteArray { val bos = ByteArrayOutputStream() bos.use { bos -> diff --git a/lib/basic/Method.dart b/lib/basic/Method.dart index 0d0035a..12fba35 100644 --- a/lib/basic/Method.dart +++ b/lib/basic/Method.dart @@ -684,11 +684,6 @@ class Method { return _flatInvoke("saveDownloadThreadCount", "$value"); } - /// 转化为PNG - Future convertToPNG(String path) async { - return await _channel.invokeMethod("convertToPNG", {"path": path}); - } - /// HTTP-GET-STRING Future defaultHttpClientGet(String url) async { return await _flatInvoke("defaultHttpClientGet", url); diff --git a/lib/basic/config/ConvertToPNG.dart b/lib/basic/config/ConvertToPNG.dart deleted file mode 100644 index 94cf85b..0000000 --- a/lib/basic/config/ConvertToPNG.dart +++ /dev/null @@ -1,48 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; - -import '../Common.dart'; -import '../Method.dart'; - -const _propertyName = "convertToPNG"; -var _convertToPNG = false; - -Future initConvertToPNG() async { - if (Platform.isAndroid) { - _convertToPNG = - (await method.loadProperty(_propertyName, "false")) == "true"; - } -} - -bool convertToPNG() { - return _convertToPNG; -} - -Future _chooseConvertToPNGSetting(BuildContext context) async { - String? result = await chooseListDialog(context, "超大图片缩放", ["是", "否"], - tips: "会增加耗电\n可以解决部分漫画崩溃的问题"); - if (result != null) { - var target = result == "是"; - await method.saveProperty(_propertyName, "$target"); - _convertToPNG = target; - } -} - -Widget convertToPNGSetting() { - if (Platform.isAndroid) { - return StatefulBuilder( - builder: (BuildContext context, void Function(void Function()) setState) { - return ListTile( - title: const Text("读取到超大图片时进行缩放(防止崩溃)"), - subtitle: Text(_convertToPNG ? "是" : "否"), - onTap: () async { - await _chooseConvertToPNGSetting(context); - setState(() {}); - }, - ); - }, - ); - } - return Container(); -} diff --git a/lib/screens/InitScreen.dart b/lib/screens/InitScreen.dart index 1705bf9..e87f586 100644 --- a/lib/screens/InitScreen.dart +++ b/lib/screens/InitScreen.dart @@ -6,7 +6,6 @@ import 'package:pikapika/basic/config/AutoClean.dart'; import 'package:pikapika/basic/config/AutoFullScreen.dart'; import 'package:pikapika/basic/config/ChooserRoot.dart'; import 'package:pikapika/basic/config/ContentFailedReloadAction.dart'; -import 'package:pikapika/basic/config/ConvertToPNG.dart'; import 'package:pikapika/basic/config/DownloadAndExportPath.dart'; import 'package:pikapika/basic/config/DownloadThreadCount.dart'; import 'package:pikapika/basic/config/FullScreenAction.dart'; @@ -80,7 +79,6 @@ class _InitScreenState extends State { await initDownloadAndExportPath(); await initAndroidSecureFlag(); await initDownloadThreadCount(); - await initConvertToPNG(); await initNoAnimation(); await initExportRename(); await initVersion(); diff --git a/lib/screens/SettingsScreen.dart b/lib/screens/SettingsScreen.dart index 5902a73..b9ca292 100644 --- a/lib/screens/SettingsScreen.dart +++ b/lib/screens/SettingsScreen.dart @@ -8,7 +8,6 @@ import 'package:pikapika/basic/config/AutoClean.dart'; import 'package:pikapika/basic/config/AutoFullScreen.dart'; import 'package:pikapika/basic/config/ChooserRoot.dart'; import 'package:pikapika/basic/config/ContentFailedReloadAction.dart'; -import 'package:pikapika/basic/config/ConvertToPNG.dart'; import 'package:pikapika/basic/config/DownloadAndExportPath.dart'; import 'package:pikapika/basic/config/DownloadThreadCount.dart'; import 'package:pikapika/basic/config/ExportRename.dart'; @@ -66,7 +65,6 @@ class SettingsScreen extends StatelessWidget { const NetworkSetting(), const Divider(), qualitySetting(), - convertToPNGSetting(), readerTypeSetting(), readerDirectionSetting(), readerSliderPositionSetting(), diff --git a/lib/screens/components/Images.dart b/lib/screens/components/Images.dart index c18c0a0..505263e 100644 --- a/lib/screens/components/Images.dart +++ b/lib/screens/components/Images.dart @@ -6,20 +6,12 @@ import 'package:pikapika/basic/Common.dart'; import 'package:pikapika/basic/Cross.dart'; import 'package:pikapika/basic/Method.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:pikapika/basic/config/ConvertToPNG.dart'; import 'package:pikapika/basic/config/ImageAddress.dart'; import 'dart:io'; import 'dart:ui' as ui show Codec; import '../FilePhotoViewScreen.dart'; -Future _loadImageFile(String path) { - if (convertToPNG()) { - return method.convertToPNG(path); - } - return File(path).readAsBytes(); -} - // 从本地加载图片 class ResourceFileImageProvider extends ImageProvider { @@ -46,7 +38,7 @@ class ResourceFileImageProvider Future _loadAsync(ResourceFileImageProvider key) async { assert(key == this); return PaintingBinding.instance! - .instantiateImageCodec(await _loadImageFile(path)); + .instantiateImageCodec(await File(path).readAsBytes()); } @override