Add persistence to matrix Client
This commit is contained in:
+2
-4
@@ -25,11 +25,10 @@ class _LoginPageState extends State<LoginPage> {
|
||||
});
|
||||
|
||||
final provider = Provider.of<ZenithClientProvider>(context, listen: false);
|
||||
final client = Client("zenith");
|
||||
|
||||
try {
|
||||
await client.checkHomeserver(Uri.parse(serverController.text));
|
||||
await client.login(
|
||||
await provider.client.checkHomeserver(Uri.parse(serverController.text));
|
||||
await provider.client.login(
|
||||
LoginType.mLoginPassword,
|
||||
password: passwordController.text,
|
||||
identifier: AuthenticationUserIdentifier(user: usernameController.text),
|
||||
@@ -54,7 +53,6 @@ class _LoginPageState extends State<LoginPage> {
|
||||
});
|
||||
}
|
||||
|
||||
provider.setClient(client);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
prefs.setString("homeserver", serverController.text);
|
||||
prefs.setString("username", usernameController.text);
|
||||
|
||||
+3
-5
@@ -50,16 +50,14 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
|
||||
if (!mounted) return;
|
||||
final provider = Provider.of<ZenithClientProvider>(context, listen: false);
|
||||
final client = Client("zenith");
|
||||
provider.setClient(client);
|
||||
setState(() {
|
||||
showRooms = true;
|
||||
});
|
||||
|
||||
try {
|
||||
await client.checkHomeserver(Uri.parse(homeserver));
|
||||
if (!client.isLogged())
|
||||
await client.login(LoginType.mLoginPassword,
|
||||
await provider.client.checkHomeserver(Uri.parse(homeserver));
|
||||
if (!provider.client.isLogged())
|
||||
await provider.client.login(LoginType.mLoginPassword,
|
||||
password: password,
|
||||
identifier: AuthenticationUserIdentifier(user: username));
|
||||
} catch (error) {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:matrix/matrix.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
class ZenithClientProvider extends ChangeNotifier {
|
||||
late Client _client;
|
||||
|
||||
Client get client => _client;
|
||||
|
||||
void setClient(Client value) {
|
||||
_client = value;
|
||||
notifyListeners();
|
||||
}
|
||||
final client = Client("zenith", databaseBuilder: (_) async {
|
||||
final dir =
|
||||
await getApplicationSupportDirectory(); // Recommend path_provider package
|
||||
final db = HiveCollectionsDatabase('matrix_example_chat', dir.path);
|
||||
await db.open();
|
||||
return db;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user