Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
a739a997
Commit
a739a997
authored
Feb 08, 2018
by
Leonardo Aramaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change async/await constructs for withContext
parent
de501c7c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
19 deletions
+20
-19
GetChatRoomsInteractor.kt
...at/rocket/android/server/domain/GetChatRoomsInteractor.kt
+20
-19
No files found.
app/src/main/java/chat/rocket/android/server/domain/GetChatRoomsInteractor.kt
View file @
a739a997
...
...
@@ -2,23 +2,27 @@ package chat.rocket.android.server.domain
import
chat.rocket.core.model.ChatRoom
import
kotlinx.coroutines.experimental.CommonPool
import
kotlinx.coroutines.experimental.
async
import
kotlinx.coroutines.experimental.
withContext
import
javax.inject.Inject
class
GetChatRoomsInteractor
@Inject
constructor
(
private
val
repository
:
ChatRoomsRepository
)
{
fun
get
(
url
:
String
)
=
repository
.
get
(
url
)
suspend
fun
getByName
(
url
:
String
,
name
:
String
):
List
<
ChatRoom
>
{
val
chatRooms
=
async
{
val
allChatRooms
=
repository
.
get
(
url
)
if
(
name
.
isEmpty
())
{
return
@async
allChatRooms
}
return
@async
allChatRooms
.
filter
{
it
.
name
.
contains
(
name
,
true
)
}
/**
* Get a list of chat rooms that contains the name parameter.
*
* @param url The server url.
* @param name The name of chat room to look for or a chat room that contains this name.
* @return A list of ChatRoom objects with the given name.
*/
suspend
fun
getByName
(
url
:
String
,
name
:
String
):
List
<
ChatRoom
>
=
withContext
(
CommonPool
)
{
val
allChatRooms
=
repository
.
get
(
url
)
if
(
name
.
isEmpty
())
{
return
@withContext
allChatRooms
}
return
@withContext
allChatRooms
.
filter
{
it
.
name
.
contains
(
name
,
true
)
}
return
chatRooms
.
await
()
}
/**
...
...
@@ -26,15 +30,12 @@ class GetChatRoomsInteractor @Inject constructor(private val repository: ChatRoo
*
* @param serverUrl The server url where the room is.
* @param roomId The id of the room to get.
*
* @return The ChatRoom object or null if we couldn't find any.
*/
suspend
fun
getById
(
serverUrl
:
String
,
roomId
:
String
):
ChatRoom
?
{
return
async
(
CommonPool
)
{
val
allChatRooms
=
repository
.
get
(
serverUrl
)
return
@async
allChatRooms
.
first
{
it
.
id
==
roomId
}
}.
await
()
suspend
fun
getById
(
serverUrl
:
String
,
roomId
:
String
):
ChatRoom
?
=
withContext
(
CommonPool
)
{
val
allChatRooms
=
repository
.
get
(
serverUrl
)
return
@withContext
allChatRooms
.
first
{
it
.
id
==
roomId
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment