mirror of
https://github.com/Steffo99/twom.git
synced 2024-11-26 01:54:24 +00:00
Use LiveData for the rooms list
This commit is contained in:
parent
8c468a6d78
commit
293de92ccb
3 changed files with 11 additions and 17 deletions
|
@ -69,6 +69,7 @@ dependencies {
|
||||||
implementation("androidx.compose.ui:ui")
|
implementation("androidx.compose.ui:ui")
|
||||||
implementation("androidx.compose.ui:ui-graphics")
|
implementation("androidx.compose.ui:ui-graphics")
|
||||||
implementation("androidx.compose.ui:ui-tooling-preview")
|
implementation("androidx.compose.ui:ui-tooling-preview")
|
||||||
|
implementation("androidx.compose.runtime:runtime-livedata:1.5.4")
|
||||||
testImplementation("junit:junit:4.13.2")
|
testImplementation("junit:junit:4.13.2")
|
||||||
androidTestImplementation("androidx.test.ext:junit:1.1.5")
|
androidTestImplementation("androidx.test.ext:junit:1.1.5")
|
||||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
|
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
|
||||||
|
|
|
@ -1,20 +1,17 @@
|
||||||
package eu.steffo.twom.main
|
package eu.steffo.twom.main
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.livedata.observeAsState
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import eu.steffo.twom.R
|
import eu.steffo.twom.R
|
||||||
import eu.steffo.twom.matrix.LocalSession
|
import eu.steffo.twom.matrix.LocalSession
|
||||||
|
import eu.steffo.twom.matrix.TwoMMatrix
|
||||||
import eu.steffo.twom.theme.TwoMPadding
|
import eu.steffo.twom.theme.TwoMPadding
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
import org.matrix.android.sdk.api.session.room.model.Membership
|
||||||
import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
|
import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -23,18 +20,12 @@ fun MainActivityRoomList(
|
||||||
onClickRoom: (roomId: String) -> Unit = {},
|
onClickRoom: (roomId: String) -> Unit = {},
|
||||||
) {
|
) {
|
||||||
val session = LocalSession.current
|
val session = LocalSession.current
|
||||||
var roomSummaries by remember { mutableStateOf<List<RoomSummary>?>(null) }
|
val roomSummaries by session!!.roomService().getRoomSummariesLive(
|
||||||
|
roomSummaryQueryParams {
|
||||||
LaunchedEffect(session) GetRoomSummaries@{
|
this.memberships = listOf(Membership.JOIN)
|
||||||
if (session == null) {
|
this.includeType = listOf(TwoMMatrix.ROOM_TYPE)
|
||||||
Log.d("RoomList", "Not doing anything, session is null.")
|
|
||||||
return@GetRoomSummaries
|
|
||||||
}
|
|
||||||
Log.d("RoomList", "Getting room summaries...")
|
|
||||||
val queryParamsBuilder = roomSummaryQueryParams()
|
|
||||||
roomSummaries = session.roomService().getRoomSummaries(queryParamsBuilder)
|
|
||||||
Log.d("RoomList", "Obtained room summaries: $roomSummaries")
|
|
||||||
}
|
}
|
||||||
|
).observeAsState()
|
||||||
|
|
||||||
Column(modifier) {
|
Column(modifier) {
|
||||||
if (roomSummaries == null) {
|
if (roomSummaries == null) {
|
||||||
|
|
|
@ -36,4 +36,6 @@ object TwoMMatrix {
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const val ROOM_TYPE = "eu.steffo.twom.happening"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue