mod: pop back

This commit is contained in:
bggRGjQaUbCoE
2024-08-27 16:12:44 +08:00
parent 493400a615
commit 9321004698
2 changed files with 33 additions and 10 deletions

View File

@@ -4,6 +4,7 @@ import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import com.ryanheise.audioservice.AudioServiceActivity
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.WindowManager.LayoutParams
@@ -14,6 +15,21 @@ class MainActivity : AudioServiceActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
methodChannel = MethodChannel(flutterEngine!!.getDartExecutor()!!.getBinaryMessenger(), CHANNEL)
methodChannel.setMethodCallHandler { call, result ->
if (call.method == "back") {
back()
} else {
result.notImplemented()
}
}
}
private fun back() {
val intent = Intent(Intent.ACTION_MAIN).apply {
addCategory(Intent.CATEGORY_HOME)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
}
override fun onCreate(savedInstanceState: Bundle?) {

View File

@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -55,18 +56,24 @@ class MainController extends GetxController {
}
void onBackPressed(BuildContext context) {
if (_lastPressedAt == null ||
DateTime.now().difference(_lastPressedAt!) >
const Duration(seconds: 2)) {
// 两次点击时间间隔超过2秒重新记录时间戳
_lastPressedAt = DateTime.now();
if (selectedIndex != 0) {
pageController.jumpTo(0);
// if (_lastPressedAt == null ||
// DateTime.now().difference(_lastPressedAt!) >
// const Duration(seconds: 2)) {
// 两次点击时间间隔超过2秒重新记录时间戳
// _lastPressedAt = DateTime.now();
if (selectedIndex != 0) {
pageController.jumpTo(0);
} else {
if (Platform.isAndroid) {
const MethodChannel("onUserLeaveHint").invokeMethod('back');
} else {
SystemNavigator.pop(); // 退出应用
}
SmartDialog.showToast("再按一次退出PiliPalaX");
return; // 不退出应用
}
SystemNavigator.pop(); // 退出应用
// SmartDialog.showToast("再按一次退出PiliPalaX");
// return; // 不退出应用
// }
// SystemNavigator.pop(); // 退出应用
}
void getUnreadDynamic() async {