[RoomState] Rename State to RoomState
This commit is contained in:
parent
fbbb90aac6
commit
8d563c9757
|
@ -36,7 +36,7 @@ export 'package:famedlysdk/src/Event.dart';
|
||||||
export 'package:famedlysdk/src/RawEvent.dart';
|
export 'package:famedlysdk/src/RawEvent.dart';
|
||||||
export 'package:famedlysdk/src/Room.dart';
|
export 'package:famedlysdk/src/Room.dart';
|
||||||
export 'package:famedlysdk/src/RoomList.dart';
|
export 'package:famedlysdk/src/RoomList.dart';
|
||||||
export 'package:famedlysdk/src/State.dart';
|
export 'package:famedlysdk/src/RoomState.dart';
|
||||||
export 'package:famedlysdk/src/Store.dart';
|
export 'package:famedlysdk/src/Store.dart';
|
||||||
export 'package:famedlysdk/src/Timeline.dart';
|
export 'package:famedlysdk/src/Timeline.dart';
|
||||||
export 'package:famedlysdk/src/User.dart';
|
export 'package:famedlysdk/src/User.dart';
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:famedlysdk/src/sync/EventUpdate.dart';
|
import 'package:famedlysdk/src/sync/EventUpdate.dart';
|
||||||
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import './Room.dart';
|
||||||
import './RawEvent.dart';
|
import './RawEvent.dart';
|
||||||
|
|
||||||
/// Defines a timeline event for a room.
|
/// Defines a timeline event for a room.
|
||||||
class Event extends State {
|
class Event extends RoomState {
|
||||||
/// The status of this event.
|
/// The status of this event.
|
||||||
/// -1=ERROR
|
/// -1=ERROR
|
||||||
/// 0=SENDING
|
/// 0=SENDING
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
import 'package:famedlysdk/src/Client.dart';
|
import 'package:famedlysdk/src/Client.dart';
|
||||||
import 'package:famedlysdk/src/Event.dart';
|
import 'package:famedlysdk/src/Event.dart';
|
||||||
import 'package:famedlysdk/src/RoomAccountData.dart';
|
import 'package:famedlysdk/src/RoomAccountData.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
||||||
import 'package:famedlysdk/src/sync/EventUpdate.dart';
|
import 'package:famedlysdk/src/sync/EventUpdate.dart';
|
||||||
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
|
@ -54,7 +54,7 @@ class Room {
|
||||||
int mJoinedMemberCount;
|
int mJoinedMemberCount;
|
||||||
int mInvitedMemberCount;
|
int mInvitedMemberCount;
|
||||||
|
|
||||||
Map<String, State> states = {};
|
Map<String, RoomState> states = {};
|
||||||
|
|
||||||
Map<String, RoomAccountData> roomAccountData = {};
|
Map<String, RoomAccountData> roomAccountData = {};
|
||||||
|
|
||||||
|
@ -431,11 +431,11 @@ class Room {
|
||||||
roomAccountData: {},
|
roomAccountData: {},
|
||||||
);
|
);
|
||||||
|
|
||||||
Map<String, State> newStates = {};
|
Map<String, RoomState> newStates = {};
|
||||||
if (states != null) {
|
if (states != null) {
|
||||||
List<Map<String, dynamic>> rawStates = await states;
|
List<Map<String, dynamic>> rawStates = await states;
|
||||||
for (int i = 0; i < rawStates.length; i++) {
|
for (int i = 0; i < rawStates.length; i++) {
|
||||||
State newState = State.fromJson(rawStates[i], newRoom);
|
RoomState newState = RoomState.fromJson(rawStates[i], newRoom);
|
||||||
newStates[newState.key] = newState;
|
newStates[newState.key] = newState;
|
||||||
}
|
}
|
||||||
newRoom.states = newStates;
|
newRoom.states = newStates;
|
||||||
|
@ -492,7 +492,7 @@ class Room {
|
||||||
return participants;
|
return participants;
|
||||||
|
|
||||||
for (num i = 0; i < res["chunk"].length; i++) {
|
for (num i = 0; i < res["chunk"].length; i++) {
|
||||||
User newUser = State.fromJson(res["chunk"][i], this).asUser;
|
User newUser = RoomState.fromJson(res["chunk"][i], this).asUser;
|
||||||
if (newUser.membership != Membership.leave) participants.add(newUser);
|
if (newUser.membership != Membership.leave) participants.add(newUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -507,7 +507,7 @@ class Room {
|
||||||
if (resp is ErrorResponse) return null;
|
if (resp is ErrorResponse) return null;
|
||||||
// Somehow we miss the mxid in the response and only get the content of the event.
|
// Somehow we miss the mxid in the response and only get the content of the event.
|
||||||
resp["matrix_id"] = mxID;
|
resp["matrix_id"] = mxID;
|
||||||
return State.fromJson(resp, this).asUser;
|
return RoomState.fromJson(resp, this).asUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Searches for the event in the store. If it isn't found, try to request it
|
/// Searches for the event in the store. If it isn't found, try to request it
|
||||||
|
@ -526,7 +526,7 @@ class Room {
|
||||||
/// Returns the user's own power level.
|
/// Returns the user's own power level.
|
||||||
int getPowerLevelByUserId(String userId) {
|
int getPowerLevelByUserId(String userId) {
|
||||||
int powerLevel = 0;
|
int powerLevel = 0;
|
||||||
State powerLevelState = states["m.room.power_levels"];
|
RoomState powerLevelState = states["m.room.power_levels"];
|
||||||
if (powerLevelState == null) return powerLevel;
|
if (powerLevelState == null) return powerLevel;
|
||||||
if (powerLevelState.content["users_default"] is int)
|
if (powerLevelState.content["users_default"] is int)
|
||||||
powerLevel = powerLevelState.content["users_default"];
|
powerLevel = powerLevelState.content["users_default"];
|
||||||
|
@ -541,7 +541,7 @@ class Room {
|
||||||
|
|
||||||
/// Returns the power levels from all users for this room or null if not given.
|
/// Returns the power levels from all users for this room or null if not given.
|
||||||
Map<String, int> get powerLevels {
|
Map<String, int> get powerLevels {
|
||||||
State powerLevelState = states["m.room.power_levels"];
|
RoomState powerLevelState = states["m.room.power_levels"];
|
||||||
if (powerLevelState.content["users"] is Map<String, int>)
|
if (powerLevelState.content["users"] is Map<String, int>)
|
||||||
return powerLevelState.content["users"];
|
return powerLevelState.content["users"];
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:core';
|
import 'dart:core';
|
||||||
|
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
|
|
||||||
import 'Client.dart';
|
import 'Client.dart';
|
||||||
import 'Room.dart';
|
import 'Room.dart';
|
||||||
|
@ -141,7 +141,7 @@ class RoomList {
|
||||||
final bool found = (j < rooms.length && rooms[j].id == eventUpdate.roomID);
|
final bool found = (j < rooms.length && rooms[j].id == eventUpdate.roomID);
|
||||||
if (!found) return;
|
if (!found) return;
|
||||||
|
|
||||||
State stateEvent = State.fromJson(eventUpdate.content, rooms[j]);
|
RoomState stateEvent = RoomState.fromJson(eventUpdate.content, rooms[j]);
|
||||||
if (rooms[j].states[stateEvent.key] != null &&
|
if (rooms[j].states[stateEvent.key] != null &&
|
||||||
rooms[j].states[stateEvent.key].time > stateEvent.time) return;
|
rooms[j].states[stateEvent.key].time > stateEvent.time) return;
|
||||||
rooms[j].states[stateEvent.key] = stateEvent;
|
rooms[j].states[stateEvent.key] = stateEvent;
|
||||||
|
|
|
@ -26,7 +26,7 @@ import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
import './Room.dart';
|
import './Room.dart';
|
||||||
import './RawEvent.dart';
|
import './RawEvent.dart';
|
||||||
|
|
||||||
class State extends RawEvent {
|
class RoomState extends RawEvent {
|
||||||
/// Optional. The previous content for this state.
|
/// Optional. The previous content for this state.
|
||||||
/// This will be present only for state events appearing in the timeline.
|
/// This will be present only for state events appearing in the timeline.
|
||||||
/// If this is not a state event, or there is no previous content, this key will be null.
|
/// If this is not a state event, or there is no previous content, this key will be null.
|
||||||
|
@ -38,7 +38,7 @@ class State extends RawEvent {
|
||||||
|
|
||||||
User get stateKeyUser => room.states[stateKey] ?? User(stateKey);
|
User get stateKeyUser => room.states[stateKey] ?? User(stateKey);
|
||||||
|
|
||||||
State(
|
RoomState(
|
||||||
{this.prevContent,
|
{this.prevContent,
|
||||||
this.stateKey,
|
this.stateKey,
|
||||||
dynamic content,
|
dynamic content,
|
||||||
|
@ -60,14 +60,14 @@ class State extends RawEvent {
|
||||||
room: room);
|
room: room);
|
||||||
|
|
||||||
/// Get a State event from a table row or from the event stream.
|
/// Get a State event from a table row or from the event stream.
|
||||||
factory State.fromJson(Map<String, dynamic> jsonPayload, Room room) {
|
factory RoomState.fromJson(Map<String, dynamic> jsonPayload, Room room) {
|
||||||
final Map<String, dynamic> content =
|
final Map<String, dynamic> content =
|
||||||
RawEvent.getMapFromPayload(jsonPayload['content']);
|
RawEvent.getMapFromPayload(jsonPayload['content']);
|
||||||
final Map<String, dynamic> unsigned =
|
final Map<String, dynamic> unsigned =
|
||||||
RawEvent.getMapFromPayload(jsonPayload['unsigned']);
|
RawEvent.getMapFromPayload(jsonPayload['unsigned']);
|
||||||
final Map<String, dynamic> prevContent =
|
final Map<String, dynamic> prevContent =
|
||||||
RawEvent.getMapFromPayload(jsonPayload['prev_content']);
|
RawEvent.getMapFromPayload(jsonPayload['prev_content']);
|
||||||
return State(
|
return RoomState(
|
||||||
stateKey: jsonPayload['state_key'],
|
stateKey: jsonPayload['state_key'],
|
||||||
prevContent: prevContent,
|
prevContent: prevContent,
|
||||||
content: content,
|
content: content,
|
|
@ -27,7 +27,7 @@ import 'dart:core';
|
||||||
|
|
||||||
import 'package:famedlysdk/src/AccountData.dart';
|
import 'package:famedlysdk/src/AccountData.dart';
|
||||||
import 'package:famedlysdk/src/Presence.dart';
|
import 'package:famedlysdk/src/Presence.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ class Store {
|
||||||
"SELECT * FROM States WHERE state_key=? AND room_id=?",
|
"SELECT * FROM States WHERE state_key=? AND room_id=?",
|
||||||
[matrixID, room.id]);
|
[matrixID, room.id]);
|
||||||
if (res.length != 1) return null;
|
if (res.length != 1) return null;
|
||||||
return State.fromJson(res[0], room).asUser;
|
return RoomState.fromJson(res[0], room).asUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Loads all Users in the database to provide a contact list
|
/// Loads all Users in the database to provide a contact list
|
||||||
|
@ -314,7 +314,8 @@ class Store {
|
||||||
[client.userID, exceptRoomID]);
|
[client.userID, exceptRoomID]);
|
||||||
List<User> userList = [];
|
List<User> userList = [];
|
||||||
for (int i = 0; i < res.length; i++)
|
for (int i = 0; i < res.length; i++)
|
||||||
userList.add(State.fromJson(res[i], Room(id: "", client: client)).asUser);
|
userList
|
||||||
|
.add(RoomState.fromJson(res[i], Room(id: "", client: client)).asUser);
|
||||||
return userList;
|
return userList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,7 +331,7 @@ class Store {
|
||||||
List<User> participants = [];
|
List<User> participants = [];
|
||||||
|
|
||||||
for (num i = 0; i < res.length; i++) {
|
for (num i = 0; i < res.length; i++) {
|
||||||
participants.add(State.fromJson(res[i], room).asUser);
|
participants.add(RoomState.fromJson(res[i], room).asUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
return participants;
|
return participants;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'package:famedlysdk/src/Room.dart';
|
import 'package:famedlysdk/src/Room.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
||||||
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
import 'package:famedlysdk/src/utils/MxContent.dart';
|
import 'package:famedlysdk/src/utils/MxContent.dart';
|
||||||
|
@ -32,7 +32,7 @@ import 'Connection.dart';
|
||||||
enum Membership { join, invite, leave, ban }
|
enum Membership { join, invite, leave, ban }
|
||||||
|
|
||||||
/// Represents a Matrix User which may be a participant in a Matrix Room.
|
/// Represents a Matrix User which may be a participant in a Matrix Room.
|
||||||
class User extends State {
|
class User extends RoomState {
|
||||||
factory User(
|
factory User(
|
||||||
String id, {
|
String id, {
|
||||||
String membership,
|
String membership,
|
||||||
|
|
|
@ -25,7 +25,7 @@ import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/src/RawEvent.dart';
|
import 'package:famedlysdk/src/RawEvent.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
import 'FakeMatrixApi.dart';
|
import 'FakeMatrixApi.dart';
|
||||||
|
@ -64,7 +64,7 @@ void main() {
|
||||||
expect(event.getBody(), body);
|
expect(event.getBody(), body);
|
||||||
expect(event.type, EventTypes.Text);
|
expect(event.type, EventTypes.Text);
|
||||||
jsonObj["state_key"] = "";
|
jsonObj["state_key"] = "";
|
||||||
State state = State.fromJson(jsonObj, null);
|
RoomState state = RoomState.fromJson(jsonObj, null);
|
||||||
expect(state.eventId, id);
|
expect(state.eventId, id);
|
||||||
expect(state.stateKey, "");
|
expect(state.stateKey, "");
|
||||||
expect(state.key, "m.room.message");
|
expect(state.key, "m.room.message");
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
import 'package:famedlysdk/src/Client.dart';
|
import 'package:famedlysdk/src/Client.dart';
|
||||||
import 'package:famedlysdk/src/Event.dart';
|
import 'package:famedlysdk/src/Event.dart';
|
||||||
import 'package:famedlysdk/src/Room.dart';
|
import 'package:famedlysdk/src/Room.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:famedlysdk/src/Timeline.dart';
|
import 'package:famedlysdk/src/Timeline.dart';
|
||||||
import 'package:famedlysdk/src/User.dart';
|
import 'package:famedlysdk/src/User.dart';
|
||||||
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
|
@ -85,7 +85,7 @@ void main() {
|
||||||
expect(room.mHeroes, heroes);
|
expect(room.mHeroes, heroes);
|
||||||
expect(room.displayname, "alice, bob, charley");
|
expect(room.displayname, "alice, bob, charley");
|
||||||
|
|
||||||
room.states["m.room.canonical_alias"] = State(
|
room.states["m.room.canonical_alias"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.canonical_alias",
|
typeKey: "m.room.canonical_alias",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
@ -96,7 +96,7 @@ void main() {
|
||||||
expect(room.displayname, "testalias");
|
expect(room.displayname, "testalias");
|
||||||
expect(room.canonicalAlias, "#testalias:example.com");
|
expect(room.canonicalAlias, "#testalias:example.com");
|
||||||
|
|
||||||
room.states["m.room.name"] = State(
|
room.states["m.room.name"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.name",
|
typeKey: "m.room.name",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
@ -107,7 +107,7 @@ void main() {
|
||||||
expect(room.displayname, "testname");
|
expect(room.displayname, "testname");
|
||||||
|
|
||||||
expect(room.topic, "");
|
expect(room.topic, "");
|
||||||
room.states["m.room.topic"] = State(
|
room.states["m.room.topic"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.topic",
|
typeKey: "m.room.topic",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
@ -118,7 +118,7 @@ void main() {
|
||||||
expect(room.topic, "testtopic");
|
expect(room.topic, "testtopic");
|
||||||
|
|
||||||
expect(room.avatar.mxc, "");
|
expect(room.avatar.mxc, "");
|
||||||
room.states["m.room.avatar"] = State(
|
room.states["m.room.avatar"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.avatar",
|
typeKey: "m.room.avatar",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
@ -129,7 +129,7 @@ void main() {
|
||||||
expect(room.avatar.mxc, "mxc://testurl");
|
expect(room.avatar.mxc, "mxc://testurl");
|
||||||
|
|
||||||
expect(room.lastEvent, null);
|
expect(room.lastEvent, null);
|
||||||
room.states["m.room.message"] = State(
|
room.states["m.room.message"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.message",
|
typeKey: "m.room.message",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
@ -191,7 +191,7 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("PowerLevels", () async {
|
test("PowerLevels", () async {
|
||||||
room.states["m.room.power_levels"] = State(
|
room.states["m.room.power_levels"] = RoomState(
|
||||||
senderId: "@test:example.com",
|
senderId: "@test:example.com",
|
||||||
typeKey: "m.room.power_levels",
|
typeKey: "m.room.power_levels",
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/RoomState.dart';
|
||||||
import 'package:famedlysdk/src/User.dart';
|
import 'package:famedlysdk/src/User.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ void main() {
|
||||||
"state_key": id
|
"state_key": id
|
||||||
};
|
};
|
||||||
|
|
||||||
User user = State.fromJson(jsonObj, null).asUser;
|
User user = RoomState.fromJson(jsonObj, null).asUser;
|
||||||
|
|
||||||
expect(user.id, id);
|
expect(user.id, id);
|
||||||
expect(user.membership, membership);
|
expect(user.membership, membership);
|
||||||
|
|
Loading…
Reference in a new issue