|
|
@ -1,28 +1,26 @@ |
|
|
|
package io.element.android.x.ui.screen.login |
|
|
|
package io.element.android.x.ui.screen.roomlist |
|
|
|
|
|
|
|
|
|
|
|
import android.os.Bundle |
|
|
|
import android.os.Bundle |
|
|
|
import androidx.activity.ComponentActivity |
|
|
|
import androidx.activity.ComponentActivity |
|
|
|
import androidx.activity.compose.setContent |
|
|
|
import androidx.activity.compose.setContent |
|
|
|
import androidx.activity.viewModels |
|
|
|
|
|
|
|
import androidx.compose.foundation.layout.Column |
|
|
|
import androidx.compose.foundation.layout.Column |
|
|
|
import androidx.compose.foundation.layout.fillMaxSize |
|
|
|
import androidx.compose.foundation.layout.fillMaxSize |
|
|
|
import androidx.compose.foundation.layout.padding |
|
|
|
import androidx.compose.foundation.layout.padding |
|
|
|
import androidx.compose.material3.MaterialTheme |
|
|
|
import androidx.compose.material3.* |
|
|
|
import androidx.compose.material3.Surface |
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
import androidx.compose.runtime.collectAsState |
|
|
|
|
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.unit.dp |
|
|
|
import androidx.compose.ui.unit.dp |
|
|
|
|
|
|
|
import com.airbnb.mvrx.compose.mavericksViewModel |
|
|
|
import io.element.android.x.ui.theme.ElementXTheme |
|
|
|
import io.element.android.x.ui.theme.ElementXTheme |
|
|
|
|
|
|
|
|
|
|
|
class RoomListActivity : ComponentActivity() { |
|
|
|
class RoomListActivity : ComponentActivity() { |
|
|
|
|
|
|
|
|
|
|
|
private val viewModel: RoomListViewModel by viewModels() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) { |
|
|
|
override fun onCreate(savedInstanceState: Bundle?) { |
|
|
|
super.onCreate(savedInstanceState) |
|
|
|
super.onCreate(savedInstanceState) |
|
|
|
|
|
|
|
|
|
|
|
setContent { |
|
|
|
setContent { |
|
|
|
ElementXTheme { |
|
|
|
ElementXTheme { |
|
|
|
|
|
|
|
val viewModel: RoomListViewModel = mavericksViewModel() |
|
|
|
// A surface container using the 'background' color from the theme |
|
|
|
// A surface container using the 'background' color from the theme |
|
|
|
Surface( |
|
|
|
Surface( |
|
|
|
modifier = Modifier |
|
|
|
modifier = Modifier |
|
|
@ -33,6 +31,7 @@ class RoomListActivity : ComponentActivity() { |
|
|
|
Column( |
|
|
|
Column( |
|
|
|
modifier = Modifier.fillMaxSize() |
|
|
|
modifier = Modifier.fillMaxSize() |
|
|
|
) { |
|
|
|
) { |
|
|
|
|
|
|
|
OptionMenu(viewModel) |
|
|
|
/* TODO |
|
|
|
/* TODO |
|
|
|
val state = viewModel.state.collectAsState().value |
|
|
|
val state = viewModel.state.collectAsState().value |
|
|
|
RoomListHeader() |
|
|
|
RoomListHeader() |
|
|
@ -44,4 +43,19 @@ class RoomListActivity : ComponentActivity() { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@OptIn(ExperimentalMaterial3Api::class) |
|
|
|
|
|
|
|
@Composable |
|
|
|
|
|
|
|
private fun OptionMenu(viewModel: RoomListViewModel) { |
|
|
|
|
|
|
|
TopAppBar( |
|
|
|
|
|
|
|
title = { Text("Room List") }, |
|
|
|
|
|
|
|
actions = { |
|
|
|
|
|
|
|
Button( |
|
|
|
|
|
|
|
onClick = { viewModel.handle(RoomListActions.Logout) } |
|
|
|
|
|
|
|
) { |
|
|
|
|
|
|
|
Text(text = "logout") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |