fix: internet permission

This commit is contained in:
Tien Do Nam
2022-12-30 04:09:32 +01:00
parent 61d31ba2d6
commit 965ae87fed
6 changed files with 49 additions and 35 deletions

View File

@@ -2,6 +2,7 @@
- feat(android): add media picker
- feat(iOS): merge image and video to common media picker
- fix(android): missing internet permission
## 1.0.0 (2022-12-29)

View File

@@ -1,6 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.localsend.localsend_app">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

View File

@@ -7,6 +7,7 @@ import 'package:localsend_app/pages/tabs/settings_tab.dart';
import 'package:localsend_app/provider/network/server_provider.dart';
import 'package:localsend_app/provider/settings_provider.dart';
import 'package:localsend_app/theme.dart';
import 'package:localsend_app/util/snackbar.dart';
enum _Tab {
receive(Icons.wifi),
@@ -53,10 +54,14 @@ class _HomePageState extends ConsumerState<HomePage> {
updateSystemOverlayStyle(context);
final settings = ref.read(settingsProvider);
await ref.read(serverProvider.notifier).startServer(
alias: settings.alias,
port: settings.port,
);
try {
await ref.read(serverProvider.notifier).startServer(
alias: settings.alias,
port: settings.port,
);
} catch (e) {
context.showSnackBar(e.toString());
}
}
@override

View File

@@ -8,6 +8,7 @@ import 'package:localsend_app/provider/settings_provider.dart';
import 'package:localsend_app/provider/version_provider.dart';
import 'package:localsend_app/theme.dart';
import 'package:localsend_app/util/sleep.dart';
import 'package:localsend_app/util/snackbar.dart';
import 'package:localsend_app/widget/custom_dropdown_button.dart';
import 'package:localsend_app/widget/local_send_logo.dart';
import 'package:routerino/routerino.dart';
@@ -126,10 +127,14 @@ class _SettingsTabState extends ConsumerState<SettingsTab> {
if (serverState == null)
IconButton(
onPressed: () async {
await ref.read(serverProvider.notifier).startServer(
alias: settings.alias,
port: settings.port,
);
try {
await ref.read(serverProvider.notifier).startServer(
alias: settings.alias,
port: settings.port,
);
} catch (e) {
context.showSnackBar(e.toString());
}
},
tooltip: t.general.start,
icon: const Icon(Icons.play_arrow),
@@ -137,17 +142,21 @@ class _SettingsTabState extends ConsumerState<SettingsTab> {
else
IconButton(
onPressed: () async {
final newServerState = await ref.read(serverProvider.notifier).restartServer(
alias: settings.alias,
port: settings.port,
);
try {
final newServerState = await ref.read(serverProvider.notifier).restartServer(
alias: settings.alias,
port: settings.port,
);
if (newServerState != null) {
// the new state is always valid, so we can "repair" user's setting
_aliasController.text = newServerState.alias;
_portController.text = newServerState.port.toString();
await ref.read(settingsProvider.notifier).setAlias(newServerState.alias);
await ref.read(settingsProvider.notifier).setPort(newServerState.port);
if (newServerState != null) {
// the new state is always valid, so we can "repair" user's setting
_aliasController.text = newServerState.alias;
_portController.text = newServerState.port.toString();
await ref.read(settingsProvider.notifier).setAlias(newServerState.alias);
await ref.read(settingsProvider.notifier).setPort(newServerState.port);
}
} catch (e) {
context.showSnackBar(e.toString());
}
},
tooltip: t.general.restart,

View File

@@ -84,20 +84,16 @@ class ServerNotifier extends StateNotifier<ServerState?> {
final securityContextResult = generateSecurityContext();
try {
newServerState = ServerState(
httpServer: await serve(router, '0.0.0.0', port, securityContext: SecurityContext()
..usePrivateKeyBytes(securityContextResult.privateKey.codeUnits)
..useCertificateChainBytes(securityContextResult.certificate.codeUnits)
),
alias: alias,
port: port,
receiveState: null,
);
print('Server started. (Port: ${newServerState.port})');
} catch (e) {
print(e);
}
newServerState = ServerState(
httpServer: await serve(router, '0.0.0.0', port, securityContext: SecurityContext()
..usePrivateKeyBytes(securityContextResult.privateKey.codeUnits)
..useCertificateChainBytes(securityContextResult.certificate.codeUnits)
),
alias: alias,
port: port,
receiveState: null,
);
print('Server started. (Port: ${newServerState.port})');
state = newServerState;
return newServerState;

View File

@@ -4,9 +4,10 @@ extension SnackbarExt on BuildContext {
void showSnackBar(String text) {
final scaffold = ScaffoldMessenger.of(this);
scaffold.removeCurrentSnackBar();
scaffold.showSnackBar(SnackBar(
content: Text(text),
backgroundColor: Colors.lightGreen.shade900),
scaffold.showSnackBar(
SnackBar(
content: Text(text),
),
);
}
}