diff --git a/lib/pages/app.dart b/lib/pages/app.dart index 02bf1bb..4a222f7 100644 --- a/lib/pages/app.dart +++ b/lib/pages/app.dart @@ -1,7 +1,6 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:obtainium/components/generated_form.dart'; import 'package:obtainium/components/generated_form_modal.dart'; import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/main.dart'; @@ -268,8 +267,9 @@ class _AppPageState extends State { return row; }).toList(); return GeneratedFormModal( - title: tr('additionalOptions'), - items: items); + title: tr('additionalOptions'), + items: items, + ); }).then((values) { if (app != null && values != null) { var changedApp = app.app; @@ -290,7 +290,15 @@ class _AppPageState extends State { }); }, tooltip: tr('additionalOptions'), - icon: const Icon(Icons.settings)), + icon: const Icon(Icons.edit)), + if (app != null && app.installedInfo != null) + IconButton( + onPressed: () { + appsProvider.openAppSettings(app.app.id); + }, + icon: const Icon(Icons.settings), + tooltip: tr('settings'), + ), if (app != null && settingsProvider.showAppWebpage) IconButton( onPressed: () { diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index c4dbbaa..2fc89a3 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -678,6 +678,14 @@ class AppsProvider with ChangeNotifier { return false; } + Future openAppSettings(String appId) async { + final AndroidIntent intent = AndroidIntent( + action: 'action_application_details_settings', + data: 'package:$appId', + ); + await intent.launch(); + } + Future checkUpdate(String appId) async { App? currentApp = apps[appId]!.app; SourceProvider sourceProvider = SourceProvider();