mirror of
https://github.com/haorendashu/nowser.git
synced 2025-12-17 09:54:19 +01:00
app delete
This commit is contained in:
@@ -32,4 +32,9 @@ class AuthLogDB {
|
|||||||
db = await DB.getDB(db);
|
db = await DB.getDB(db);
|
||||||
return await db.insert("auth_log", o.toJson());
|
return await db.insert("auth_log", o.toJson());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<void> deleteByAppId(int appId, {DatabaseExecutor? db}) async {
|
||||||
|
db = await DB.getDB(db);
|
||||||
|
db.execute("delete from auth_log where app_id = ?", [appId]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:nowser/const/app_type.dart';
|
|||||||
import 'package:nowser/const/auth_type.dart';
|
import 'package:nowser/const/auth_type.dart';
|
||||||
import 'package:nowser/const/connect_type.dart';
|
import 'package:nowser/const/connect_type.dart';
|
||||||
import 'package:nowser/data/app_db.dart';
|
import 'package:nowser/data/app_db.dart';
|
||||||
|
import 'package:nowser/data/auth_log_db.dart';
|
||||||
|
|
||||||
import '../const/auth_result.dart';
|
import '../const/auth_result.dart';
|
||||||
import '../data/app.dart';
|
import '../data/app.dart';
|
||||||
@@ -118,6 +119,19 @@ class AppProvider extends ChangeNotifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> deleteApp(App app) async {
|
||||||
|
await AppDB.delete(app.id!);
|
||||||
|
reload();
|
||||||
|
|
||||||
|
try {
|
||||||
|
await AuthLogDB.deleteByAppId(app.id!);
|
||||||
|
} catch (e) {
|
||||||
|
print(e.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
App? getAppById(int appId) {
|
App? getAppById(int appId) {
|
||||||
return _appMap[appId];
|
return _appMap[appId];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
import 'package:bot_toast/bot_toast.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
import 'package:nostr_sdk/client_utils/keys.dart';
|
import 'package:nostr_sdk/client_utils/keys.dart';
|
||||||
import 'package:nostr_sdk/nip19/nip19.dart';
|
import 'package:nostr_sdk/nip19/nip19.dart';
|
||||||
import 'package:nostr_sdk/utils/string_util.dart';
|
import 'package:nostr_sdk/utils/string_util.dart';
|
||||||
@@ -43,14 +45,62 @@ class _AppsRouter extends CustState<AppsRouter> {
|
|||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
var app = appList[i];
|
var app = appList[i];
|
||||||
widgets.add(Container(
|
widgets.add(Container(
|
||||||
child: MeRouterAppItemComponent(app),
|
child: Slidable(
|
||||||
|
child: MeRouterAppItemComponent(app),
|
||||||
|
endActionPane: ActionPane(
|
||||||
|
motion: ScrollMotion(),
|
||||||
|
extentRatio: 0.25,
|
||||||
|
children: [
|
||||||
|
// GestureDetector(
|
||||||
|
// onTap: () {},
|
||||||
|
// child: Container(
|
||||||
|
// color: Colors.red,
|
||||||
|
// alignment: Alignment.center,
|
||||||
|
// padding: EdgeInsets.only(
|
||||||
|
// left: Base.BASE_PADDING,
|
||||||
|
// right: Base.BASE_PADDING,
|
||||||
|
// top: 3,
|
||||||
|
// bottom: 3,
|
||||||
|
// ),
|
||||||
|
// child: Row(
|
||||||
|
// // mainAxisSize: MainAxisSize.min,
|
||||||
|
// children: [
|
||||||
|
// Icon(
|
||||||
|
// Icons.delete_forever,
|
||||||
|
// color: Colors.white,
|
||||||
|
// ),
|
||||||
|
// Text(
|
||||||
|
// "Delete",
|
||||||
|
// style: TextStyle(color: Colors.white),
|
||||||
|
// )
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
SlidableAction(
|
||||||
|
onPressed: (context) {
|
||||||
|
var cancelFunc = BotToast.showLoading();
|
||||||
|
try {
|
||||||
|
appProvider.deleteApp(app);
|
||||||
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
|
cancelFunc.call();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
backgroundColor: Color(0xFFFE4A49),
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
icon: Icons.delete,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
));
|
));
|
||||||
if (i + 1 < length) {
|
if (i + 1 < length) {
|
||||||
widgets.add(Divider());
|
widgets.add(Divider());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (widgets.isNotEmpty) {
|
if (widgets.isNotEmpty) {
|
||||||
var listWidget = Container(
|
Widget listWidget = Container(
|
||||||
padding: EdgeInsets.all(Base.BASE_PADDING),
|
padding: EdgeInsets.all(Base.BASE_PADDING),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: themeData.cardColor,
|
color: themeData.cardColor,
|
||||||
|
|||||||
Submodule packages/nostr_sdk updated: 592064d434...6d3ac632cd
@@ -403,6 +403,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.2"
|
||||||
|
flutter_slidable:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_slidable
|
||||||
|
sha256: "2c5611c0b44e20d180e4342318e1bbc28b0a44ad2c442f5df16962606fd3e8e3"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.1"
|
||||||
flutter_socks_proxy:
|
flutter_socks_proxy:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ dependencies:
|
|||||||
flutter_secure_storage: ^9.2.2
|
flutter_secure_storage: ^9.2.2
|
||||||
pretty_qr_code: ^3.3.0
|
pretty_qr_code: ^3.3.0
|
||||||
qr_code_scanner: ^1.0.1
|
qr_code_scanner: ^1.0.1
|
||||||
|
flutter_slidable: ^3.1.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_launcher_icons: ^0.13.1
|
flutter_launcher_icons: ^0.13.1
|
||||||
|
|||||||
Reference in New Issue
Block a user