Various bugfixes + refactors

This commit is contained in:
Imran Remtulla
2022-08-27 01:07:48 -04:00
parent 7932b909c0
commit e7170aca48
9 changed files with 111 additions and 92 deletions

View File

@@ -1,7 +1,8 @@
import 'package:flutter/material.dart';
import 'package:obtainium/pages/app.dart';
import 'package:obtainium/services/apps_provider.dart';
import 'package:obtainium/services/source_service.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:obtainium/providers/source_provider.dart';
import 'package:provider/provider.dart';
class AddAppPage extends StatefulWidget {
@@ -52,20 +53,24 @@ class _AddAppPageState extends State<AddAppPage> {
setState(() {
gettingAppInfo = true;
});
SourceService()
sourceProvider()
.getApp(urlInputController.value.text)
.then((app) {
var appsProvider = context.read<AppsProvider>();
var settingsProvider =
context.read<SettingsProvider>();
if (appsProvider.apps.containsKey(app.id)) {
throw 'App already added';
}
appsProvider.saveApp(app).then((_) {
urlInputController.clear();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
AppPage(appId: app.id)));
settingsProvider.getInstallPermission().then((_) {
appsProvider.saveApp(app).then((_) {
urlInputController.clear();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
AppPage(appId: app.id)));
});
});
}).catchError((e) {
ScaffoldMessenger.of(context).showSnackBar(

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:obtainium/services/apps_provider.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:provider/provider.dart';
@@ -26,6 +26,7 @@ class _AppPageState extends State<AppPage> {
),
body: WebView(
initialUrl: app?.app.url,
javascriptMode: JavascriptMode.unrestricted,
),
bottomSheet: Padding(
padding: EdgeInsets.fromLTRB(

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:obtainium/pages/app.dart';
import 'package:obtainium/services/apps_provider.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:provider/provider.dart';
class AppsPage extends StatefulWidget {
@@ -25,9 +26,15 @@ class _AppsPageState extends State<AppsPage> {
.isNotEmpty
? null
: () {
for (var e in existingUpdateAppIds) {
appsProvider.downloadAndInstallLatestApp(e, context);
}
context
.read<SettingsProvider>()
.getInstallPermission()
.then((_) {
for (var e in existingUpdateAppIds) {
appsProvider.downloadAndInstallLatestApp(
e, context);
}
});
},
icon: const Icon(Icons.update),
label: const Text('Update All')),

View File

@@ -1,8 +1,8 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:obtainium/services/apps_provider.dart';
import 'package:obtainium/services/settings_provider.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher_string.dart';