Compare commits
3 Commits
51d96153bb
...
32f39471b8
Author | SHA1 | Date |
---|---|---|
Pascal Abresch | 32f39471b8 | |
Pascal Abresch | 3426f397ba | |
Pascal Abresch | 365f1794c0 |
|
@ -3,6 +3,7 @@ import 'dart:convert';
|
|||
import 'package:meta/meta.dart';
|
||||
|
||||
class Matrix {
|
||||
|
||||
// TODO Error handeling
|
||||
static Future<String> request({@required Uri uri, @required final String method, final String accessToken, final String jsonPayload}) async {
|
||||
final client = new HttpClient();
|
||||
|
@ -23,7 +24,7 @@ class Matrix {
|
|||
}
|
||||
}
|
||||
|
||||
static Future<String> requestsend({@required Uri uri, @required final function, final String accessToken, final String jsonPayload}) async {
|
||||
static Future<String> requestsend({@required Uri uri, @required final function, final String accessToken, final String jsonPayload}) async {
|
||||
return await function(uri).then((req) {
|
||||
if (accessToken != null) {
|
||||
req.headers.add("Authorization", "Bearer " + accessToken);
|
||||
|
@ -66,4 +67,9 @@ class Matrix {
|
|||
return json["versions"].cast<String>();
|
||||
});
|
||||
}
|
||||
|
||||
static Future<void> logout({@required Uri uri, @required final String accessToken}) async {
|
||||
request(uri: uri.replace(path:"/_matrix/client/r0/logout"), method: "POST", accessToken: accessToken);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'dart:io';
|
|||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'main.dart';
|
||||
import 'roomlist';
|
||||
|
||||
|
||||
class LoginPage extends StatefulWidget {
|
||||
|
@ -24,10 +24,10 @@ class _LoginPageState extends State<LoginPage> {
|
|||
String _failureMessage = "";
|
||||
|
||||
void _showMainView() {
|
||||
|
||||
Navigator.pushReplacement(
|
||||
context, MaterialPageRoute(builder: (BuildContext context) => MyHomePage(settings: widget.settings)));
|
||||
Navigator.pushReplacement(
|
||||
context, MaterialPageRoute(builder: (BuildContext context) => MyHomePage(settings: widget.settings)));
|
||||
}
|
||||
|
||||
void _doLogin() async {
|
||||
var client = new HttpClient();
|
||||
await client.postUrl(Uri.parse(_homeServer)
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'login.dart';
|
||||
import 'matrix/cs-r0.5.0';
|
||||
import 'page/room.dart';
|
||||
import 'login';
|
||||
import '../matrix/cs-r0.5.0';
|
||||
import 'room';
|
||||
|
||||
void main() async {
|
||||
var settings = await SharedPreferences.getInstance();
|
||||
|
@ -63,7 +63,10 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||
var set = widget.settings;
|
||||
set.setBool("logged_in", false);
|
||||
// TODO Actually invalidate access_token
|
||||
Matrix.logout(uri: Uri.parse(set.getString("home_server")) , accessToken: set.getString("access_token"));
|
||||
set.setString("access_token", "");
|
||||
Navigator.pushReplacement(
|
||||
context, MaterialPageRoute(builder: (BuildContext context) => LoginPage(settings: widget.settings)));
|
||||
}
|
||||
|
||||
void initState() {
|
||||
|
@ -75,26 +78,21 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||
List<Widget> roomEntries(roomMap) {
|
||||
List<Widget> newWidgets = new List<Widget>();
|
||||
roomMap.forEach((roomid, roomname) {
|
||||
if (roomname != null && roomname != "") {
|
||||
newWidgets.add(
|
||||
ListTile(
|
||||
title: Text(roomname),
|
||||
onTap: () {
|
||||
print(roomid);
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => RoomPage(settings: widget.settings, roomid: roomid, roomname: roomname),
|
||||
),
|
||||
);
|
||||
if (roomname == null || roomname == "") { roomname = roomid; }
|
||||
newWidgets.add(
|
||||
ListTile(
|
||||
title: Text((roomname)),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => RoomPage(settings: widget.settings, roomid: roomid, roomname: roomname),
|
||||
),
|
||||
);
|
||||
|
||||
}
|
||||
)
|
||||
);
|
||||
} else {
|
||||
newWidgets.add(ListTile( title: Text(roomid), onTap: () { print(roomid); }));
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
});
|
||||
return newWidgets;
|
||||
}
|
Reference in New Issue