mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-06 05:49:03 +08:00
Update
This commit is contained in:
@@ -2,6 +2,9 @@ import 'dart:io';
|
||||
import 'package:cookie_jar/cookie_jar.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:dio_cookie_manager/dio_cookie_manager.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'api/client.dart';
|
||||
@@ -39,6 +42,29 @@ void initApi(String baseUrl) {
|
||||
_api = EHApi(dio, baseUrl: baseUrl);
|
||||
}
|
||||
|
||||
bool tryInitApi(BuildContext context) {
|
||||
bool? skipBaseUrl = const bool.fromEnvironment("skipBaseUrl");
|
||||
if (skipBaseUrl == true) {
|
||||
if (_api != null) {
|
||||
return true;
|
||||
}
|
||||
initApi("/api");
|
||||
return true;
|
||||
}
|
||||
String? baseUrl = prefs.getString("baseUrl");
|
||||
if (baseUrl == null) {
|
||||
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||
context.go("/set_server");
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (_api != null && _api!.baseUrl == baseUrl) {
|
||||
return true;
|
||||
}
|
||||
initApi(baseUrl);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool get apiInited {
|
||||
return _api != null;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
@@ -15,20 +14,11 @@ class HomePage extends HookWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
useEffect(() {
|
||||
String? baseUrl = prefs.getString("baseUrl");
|
||||
if (baseUrl == null) {
|
||||
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||
context.go("/set_server");
|
||||
});
|
||||
return;
|
||||
}
|
||||
initApi(baseUrl);
|
||||
if (!tryInitApi(context)) return;
|
||||
if (!auth.isAuthed) {
|
||||
auth.checkAuth().then((re) {
|
||||
if (!re) {
|
||||
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||
context.go(auth.status!.noUser ? "/create_root_user" : "/login");
|
||||
});
|
||||
context.go(auth.status!.noUser ? "/create_root_user" : "/login");
|
||||
}
|
||||
}).catchError((err) {
|
||||
_log.log(Level.SEVERE, "Failed to check auth info:", err);
|
||||
|
||||
@@ -70,6 +70,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
tryInitApi(context);
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 100),
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'globals.dart';
|
||||
@@ -61,6 +62,12 @@ class _SetServerPageState extends State<SetServerPage> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
bool? skipBaseUrl = const bool.fromEnvironment("skipBaseUrl");
|
||||
if (skipBaseUrl == true) {
|
||||
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||
context.go("/");
|
||||
});
|
||||
}
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 100),
|
||||
|
||||
Reference in New Issue
Block a user