feat: Add a button to delete all cookies #174
This commit is contained in:
parent
cddf7af7de
commit
cbd4519d08
3 changed files with 42 additions and 0 deletions
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:mangayomi/eval/dart/model/m_bridge.dart';
|
||||
import 'package:mangayomi/eval/dart/model/source_preference.dart';
|
||||
import 'package:mangayomi/main.dart';
|
||||
import 'package:mangayomi/models/source.dart';
|
||||
|
|
@ -9,6 +10,7 @@ import 'package:mangayomi/modules/browse/extension/providers/extension_preferenc
|
|||
import 'package:mangayomi/modules/browse/extension/widgets/source_preference_widget.dart';
|
||||
import 'package:mangayomi/providers/l10n_providers.dart';
|
||||
import 'package:mangayomi/services/get_source_preference.dart';
|
||||
import 'package:mangayomi/services/http/m_client.dart';
|
||||
import 'package:mangayomi/sources/source_test.dart';
|
||||
import 'package:mangayomi/utils/cached_network.dart';
|
||||
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
|
||||
|
|
@ -170,6 +172,32 @@ class _ExtensionDetailState extends ConsumerState<ExtensionDetail> {
|
|||
)),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: SizedBox(
|
||||
width: context.width(1),
|
||||
child: ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
padding: const EdgeInsets.all(0),
|
||||
backgroundColor: Colors.transparent,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(5)),
|
||||
elevation: 0,
|
||||
shadowColor: Colors.transparent),
|
||||
onPressed: () async {
|
||||
MClient.deleteAllCookies(source.baseUrl ?? "");
|
||||
botToast("Cookies deleted!");
|
||||
},
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10),
|
||||
child: Text(
|
||||
"Delete all cookies",
|
||||
style: TextStyle(
|
||||
fontSize: 20, fontWeight: FontWeight.bold),
|
||||
),
|
||||
)),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: SizedBox(
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ class _MangaWebViewState extends ConsumerState<MangaWebView> {
|
|||
url: Uri.parse(_url));
|
||||
} else if (value == 3) {
|
||||
CookieManager.instance().deleteAllCookies();
|
||||
MClient.deleteAllCookies(_url);
|
||||
}
|
||||
}),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -95,6 +95,19 @@ class MClient {
|
|||
isar.writeTxnSync(() => isar.settings.putSync(settings!..userAgent = ua));
|
||||
}
|
||||
}
|
||||
|
||||
static void deleteAllCookies(String url) {
|
||||
final cookiesList = isar.settings.getSync(227)!.cookiesList ?? [];
|
||||
List<MCookie>? cookieList = [];
|
||||
for (var cookie in cookiesList) {
|
||||
if (!(cookie.host == Uri.parse(url).host ||
|
||||
Uri.parse(url).host.contains(cookie.host!))) {
|
||||
cookieList.add(cookie);
|
||||
}
|
||||
}
|
||||
isar.writeTxnSync(() => isar.settings
|
||||
.putSync(isar.settings.getSync(227)!..cookiesList = cookieList));
|
||||
}
|
||||
}
|
||||
|
||||
class MCookieManager extends InterceptorContract {
|
||||
|
|
|
|||
Loading…
Reference in a new issue