@@ -17,9 +17,8 @@ use std::{fmt::Debug, sync::Arc};
17
17
use futures_util:: { pin_mut, StreamExt } ;
18
18
use matrix_sdk_common:: { SendOutsideWasm , SyncOutsideWasm } ;
19
19
use matrix_sdk_ui:: spaces:: {
20
- room_list:: SpaceServiceRoomListPaginationState as UISpaceServiceRoomListPaginationState ,
21
- SpaceService as UISpaceService , SpaceServiceRoom as UISpaceServiceRoom ,
22
- SpaceServiceRoomList as UISpaceServiceRoomList ,
20
+ room_list:: SpaceRoomListPaginationState , SpaceRoom as UISpaceRoom ,
21
+ SpaceRoomList as UISpaceRoomList , SpaceService as UISpaceService ,
23
22
} ;
24
23
use ruma:: RoomId ;
25
24
@@ -38,14 +37,14 @@ pub struct SpaceService {
38
37
}
39
38
40
39
impl SpaceService {
41
- pub fn new ( inner : UISpaceService ) -> Self {
40
+ pub ( crate ) fn new ( inner : UISpaceService ) -> Self {
42
41
Self { inner }
43
42
}
44
43
}
45
44
46
45
#[ matrix_sdk_ffi_macros:: export]
47
46
impl SpaceService {
48
- pub async fn joined_spaces ( & self ) -> Vec < SpaceServiceRoom > {
47
+ pub async fn joined_spaces ( & self ) -> Vec < SpaceRoom > {
49
48
self . inner . joined_spaces ( ) . await . into_iter ( ) . map ( Into :: into) . collect ( )
50
49
}
51
50
@@ -77,51 +76,51 @@ impl SpaceService {
77
76
pub async fn space_room_list (
78
77
& self ,
79
78
space_id : String ,
80
- ) -> Result < Arc < SpaceServiceRoomList > , ClientError > {
79
+ ) -> Result < Arc < SpaceRoomList > , ClientError > {
81
80
let space_id = RoomId :: parse ( space_id) ?;
82
- Ok ( Arc :: new ( SpaceServiceRoomList :: new ( self . inner . space_room_list ( space_id) ) ) )
81
+ Ok ( Arc :: new ( SpaceRoomList :: new ( self . inner . space_room_list ( space_id) ) ) )
83
82
}
84
83
}
85
84
86
85
#[ derive( uniffi:: Object ) ]
87
- pub struct SpaceServiceRoomList {
88
- inner : UISpaceServiceRoomList ,
86
+ pub struct SpaceRoomList {
87
+ inner : UISpaceRoomList ,
89
88
}
90
89
91
- impl SpaceServiceRoomList {
92
- pub fn new ( inner : UISpaceServiceRoomList ) -> Self {
90
+ impl SpaceRoomList {
91
+ fn new ( inner : UISpaceRoomList ) -> Self {
93
92
Self { inner }
94
93
}
95
94
}
96
95
97
96
#[ matrix_sdk_ffi_macros:: export]
98
- impl SpaceServiceRoomList {
99
- pub fn pagination_state ( & self ) -> SpaceServiceRoomListPaginationState {
100
- self . inner . pagination_state ( ) . into ( )
97
+ impl SpaceRoomList {
98
+ pub fn pagination_state ( & self ) -> SpaceRoomListPaginationState {
99
+ self . inner . pagination_state ( )
101
100
}
102
101
103
102
pub fn subscribe_to_pagination_state_updates (
104
103
& self ,
105
- listener : Box < dyn SpaceServiceRoomListPaginationStateListener > ,
104
+ listener : Box < dyn SpaceRoomListPaginationStateListener > ,
106
105
) -> Arc < TaskHandle > {
107
106
let pagination_state = self . inner . subscribe_to_pagination_state_updates ( ) ;
108
107
109
108
Arc :: new ( TaskHandle :: new ( get_runtime_handle ( ) . spawn ( async move {
110
109
pin_mut ! ( pagination_state) ;
111
110
112
111
while let Some ( state) = pagination_state. next ( ) . await {
113
- listener. on_update ( state. into ( ) ) ;
112
+ listener. on_update ( state) ;
114
113
}
115
114
} ) ) )
116
115
}
117
116
118
- pub fn rooms ( & self ) -> Vec < SpaceServiceRoom > {
117
+ pub fn rooms ( & self ) -> Vec < SpaceRoom > {
119
118
self . inner . rooms ( ) . into_iter ( ) . map ( Into :: into) . collect ( )
120
119
}
121
120
122
121
pub fn subscribe_to_room_update (
123
122
& self ,
124
- listener : Box < dyn SpaceServiceRoomListEntriesListener > ,
123
+ listener : Box < dyn SpaceRoomListEntriesListener > ,
125
124
) -> Arc < TaskHandle > {
126
125
let entries_stream = self . inner . subscribe_to_room_updates ( ) ;
127
126
@@ -139,44 +138,23 @@ impl SpaceServiceRoomList {
139
138
}
140
139
}
141
140
142
- #[ derive( uniffi:: Enum ) ]
143
- pub enum SpaceServiceRoomListPaginationState {
144
- Idle { end_reached : bool } ,
145
- Loading ,
146
- }
147
-
148
- impl From < UISpaceServiceRoomListPaginationState > for SpaceServiceRoomListPaginationState {
149
- fn from ( state : UISpaceServiceRoomListPaginationState ) -> Self {
150
- match state {
151
- UISpaceServiceRoomListPaginationState :: Idle { end_reached } => {
152
- SpaceServiceRoomListPaginationState :: Idle { end_reached }
153
- }
154
- UISpaceServiceRoomListPaginationState :: Loading => {
155
- SpaceServiceRoomListPaginationState :: Loading
156
- }
157
- }
158
- }
159
- }
160
-
161
141
#[ matrix_sdk_ffi_macros:: export( callback_interface) ]
162
- pub trait SpaceServiceRoomListPaginationStateListener :
163
- SendOutsideWasm + SyncOutsideWasm + Debug
164
- {
165
- fn on_update ( & self , pagination_state : SpaceServiceRoomListPaginationState ) ;
142
+ pub trait SpaceRoomListPaginationStateListener : SendOutsideWasm + SyncOutsideWasm + Debug {
143
+ fn on_update ( & self , pagination_state : SpaceRoomListPaginationState ) ;
166
144
}
167
145
168
146
#[ matrix_sdk_ffi_macros:: export( callback_interface) ]
169
- pub trait SpaceServiceRoomListEntriesListener : SendOutsideWasm + SyncOutsideWasm + Debug {
170
- fn on_update ( & self , rooms : Vec < SpaceServiceRoom > ) ;
147
+ pub trait SpaceRoomListEntriesListener : SendOutsideWasm + SyncOutsideWasm + Debug {
148
+ fn on_update ( & self , rooms : Vec < SpaceRoom > ) ;
171
149
}
172
150
173
151
#[ matrix_sdk_ffi_macros:: export( callback_interface) ]
174
152
pub trait SpaceServiceJoinedSpacesListener : SendOutsideWasm + SyncOutsideWasm + Debug {
175
- fn on_update ( & self , rooms : Vec < SpaceServiceRoom > ) ;
153
+ fn on_update ( & self , rooms : Vec < SpaceRoom > ) ;
176
154
}
177
155
178
156
#[ derive( uniffi:: Record ) ]
179
- pub struct SpaceServiceRoom {
157
+ pub struct SpaceRoom {
180
158
pub room_id : String ,
181
159
pub canonical_alias : Option < String > ,
182
160
pub name : Option < String > ,
@@ -193,8 +171,8 @@ pub struct SpaceServiceRoom {
193
171
pub heroes : Option < Vec < RoomHero > > ,
194
172
}
195
173
196
- impl From < UISpaceServiceRoom > for SpaceServiceRoom {
197
- fn from ( room : UISpaceServiceRoom ) -> Self {
174
+ impl From < UISpaceRoom > for SpaceRoom {
175
+ fn from ( room : UISpaceRoom ) -> Self {
198
176
Self {
199
177
room_id : room. room_id . into ( ) ,
200
178
canonical_alias : room. canonical_alias . map ( |alias| alias. into ( ) ) ,
0 commit comments