From ba4be87c09e2c4733ab1cde982b9084f6f4da79e Mon Sep 17 00:00:00 2001 From: ElEgEv <112943269+ElEgEv@users.noreply.github.com> Date: Mon, 27 Nov 2023 23:12:32 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=20=D0=BD=D0=B0=D0=B4=20=D0=BA=D0=BE=D0=BD=D1=81=D1=82?= =?UTF-8?q?=D1=80=D1=83=D0=BA=D1=82=D0=BE=D1=80=D0=BE=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.0/executionHistory/executionHistory.bin | Bin 2596750 -> 2661747 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes compose/.gradle/8.0/fileHashes/fileHashes.bin | Bin 312269 -> 354346 bytes .../.gradle/8.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.0/fileHashes/resourceHashesCache.bin | Bin 161371 -> 191055 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../ulstu/is/pmu/tank/composeui/TankList.kt | 17 +-- .../tank/composeui/edit/TankEditViewModel.kt | 96 +++++++++++++++ .../java/ru/ulstu/is/pmu/tank/model/Level.kt | 7 ++ .../java/ru/ulstu/is/pmu/tank/model/Nation.kt | 7 ++ .../java/ru/ulstu/is/pmu/tank/model/Tank.kt | 14 +++ .../is/pmu/tanks/composeui/Constructor.kt | 112 +++++++++++++++--- .../ru/ulstu/is/pmu/tanks/composeui/Hangar.kt | 19 ++- 13 files changed, 237 insertions(+), 35 deletions(-) create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/edit/TankEditViewModel.kt diff --git a/compose/.gradle/8.0/executionHistory/executionHistory.bin b/compose/.gradle/8.0/executionHistory/executionHistory.bin index 4ea19bbb9c262afae8b2fccbb84c3ebb38b4af28..5a7757685f2d08d55dbb943ab290b2c158504be8 100644 GIT binary patch delta 29048 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 delta 17756 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 K$W1?g`u_vek2n(m diff --git a/compose/.gradle/8.0/executionHistory/executionHistory.lock b/compose/.gradle/8.0/executionHistory/executionHistory.lock index e8ea7924142f77628eb3a0c06a820b2762618eb7..934b1b55fdfbc65ae96cc339989c503d30a4cb2d 100644 GIT binary patch literal 17 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≶v9fW-N3oH*p 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 QaQc%yG?<8p1gYr#f9E6mI{*Lx delta 12408 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 diff --git a/compose/.gradle/8.0/fileHashes/fileHashes.lock b/compose/.gradle/8.0/fileHashes/fileHashes.lock index 71fc5ff10b934c195c6d2fde4c347e03651f6bec..cb8c2c9159b2ffd483f0c01e953d2d7951463e9e 100644 GIT binary patch literal 17 VcmZQ(aBaLGm;b_n0Spek2LLJE1poj5 literal 17 VcmZQ(aBaLGm;b_n0Sxw;0{|%<1VjJ; diff --git a/compose/.gradle/8.0/fileHashes/resourceHashesCache.bin b/compose/.gradle/8.0/fileHashes/resourceHashesCache.bin index 27a514a2804b6e4d18f6c42eab11b9c6697b99c5..1f0112664db8c140b0caf18de7e7df2c2e02cfe6 100644 GIT binary patch delta 4973 zcmeH~`#)7#AIHzyC%HA&K^jzYD{{+i+>%=&xph)V4JnmdArsNXtqVp)o7qE+q6`kl zacsv{qZ&hsF3P1SB~e2&HS%=Rqdfbxww~u@oqnv@k&6yIGSEIvO;ty6ihKp3k;nnl*SJHuC?Q?vGfd+I@ zUo4B?yoMMRjUO@)LMOBK-R-;-#K`-&q2V|rx0)?2PTb3|HTZm^6lglz{cd5VEi+aI z&odf;N>P1U|I}(ntb7RHv7`f22_|z)?gs!#JThz3TFvlrPGn{Ep3f4%&-nb!YS`oa zlQ)$`=^jUa2Q5V*;v+&FB~t0AB}m_kI0!dI|F3^Wf1ej>y#HEgyyc+o1tKWw!KIrtpj4;LeB~qa5EGh`8co3% zv=H6#B;9cYNjW^>iU#!RS6=KhaSE}zO?b`~YZ%V=c-CJ-PfdR?-YUG2)+NRDdYTpX zAXb%$_tLsHx9%gRI&8!$t8nR-FvtTRJq$n9B39EzhPCu!P?x{s2%Me83?9X;TU&Kj z%w=n)UQj|zv}=<2D6Q5NP=9fo5FaTa$6IqSxKcB5Po3*}1O>ii%8eKR&BH!fN#13W zQ5jB-+>{5f$;4FcP~%Ia6n?^A-O_-%i7_ecx(A5GHImZpCKx>8_>ZunXbi!+Vcg`7 z5V{lE?=q_snQ6@N-aF%PoPDDF#hO0Ec)Db3#~CndYPBquN+Y@OuGbvgekBL*kL8go zUYuGAl&B}Vppgw%Y_HC+4Q@bV$qAys00?1oWrs9h^)Z5V^9UzHknGU<(O5e#Zy8er zBlc4hv`O>K@2%=5P!|jVeaarzdAm3sV9ryG6QySi&I9Ne z=bW?FG8$>?1Bv@4fD6ApY}fICJ&B-jEum=&!k}ca6<2aD2f+#}D%BJuNWq`(^lzFK zS%zr24K-#1=woVmdGbBBToF;hBTCN}WB~Z%M&2obuLx1m2a2~0i~wjiYP0s^tpP+! zi-}BokPmxqw>d7jDu-Z=I-%+SG$8AWp4v7SLjfePGcpv$#*+QN+7M!1KAR+!Z8vL>vasXWnYN;U#;0LOK3-)6Ty z`y!;RoIxl?0&8feqLz{UnmMP{>D2N_@natS2ftNRun|e)28q2pz&NbXzJ79{A>#@o zSBZ$7^v2#@ckHaR(>kOq+es-#0e`^p?78^V%Ch+YgR_Y((O_K1`)O{M|AzetR==Fu zR&Sr1+c#-hZ9|;@nDB|A6E)a)Ju_3CiBR864aR`5neg(UbnAQGJ0y+UKrP=R&i^qj zmtz|Zb|K1}Ni-$Udkr3Ia{|kT5G0KW*+e?i3i13cEhj<{tWPGi66qYoDfu7HFLXli zxgq6~2y_8w!;80xprd^S6W}`{b}yaVRIL{(S!uFNfMUvQpST29nIwlUOBWzo%_}{7 z0AT-dUX&e)cgdiZ6Y{o!P> z1fms%gjO23#@YTM_j^r+K*kd)7g2+0;_WK4Uc6WJ(HPRkOAvDp(FvUUL&l7ANzzQ% zw?xGudakAVHVRu#`Xb1SB$~uZ_wEZ}I^&E3RBIAGhv}rm@0V6;-PwthP=(V;ot$fV zvFFk0V6C>E;=h9-BR?%AbU|YLOO%Wv7RHA9&L90k*~^(Is)VWw7=R&X{`_sU_7;M1 z`-w3ZU?bONcWGIw3u4p>LerJDhTCJgXV!EYBUlqcq`J}@CS{8aja0TFSk^_=xB}Yo zGaT%Gc1 zdd?siuS1QgVO%!M^EjPn(9D>8l?!o!OP@F?2Q$gb!%T7Ts;N{>ET0Vx54_c15SxYq zRAv#0>p&Q>cM)c6?>T8L3gimqnrLJU)+L1uXf(gFhIJNVYLHDVjyd z_=44($)4gnt2S?HM)7Oah&8?-1%{4w?{X)=}RM|+qy+p#m5Q+h21;kwi*`P4Uyr8*$gFjgX53xFIUn1%7EDo5{aE1!6SkSMUx}$;@Q|q4&UG6^lz)oyUWF-Robo^FKg`>aAAoRK z4H4vljYBC-flW)_3IxlQ32#qq0Q!6CPsAEWGVlQTl~s-el;MaTN}PLwU|kC#@WC{o z1^BtL6HfJyl{kMH7e=@IK3VmVu~l9N1=nJ9lO)65d_zrTE*dWE!#y3Wq3z2?dGGrL zhz53xOo=auKg z_-mhApYHzKlPle>E+GfR*Tyu3`hA<$pg(RYt9u>PjDOT)^mj#wf6(K%3a<*s!rd!v zqEf^zi(=ra-=%$NVCUc|UA?f#s9PpzXg4jPjZm-$=XMKWp2()yzk_+#sQsB7?=AvR zLMJs~TPt(7i0bg1do^+`qMUlR5*kb0C9QjCT}Xdv#6d?U-L($nonE@GHjGMSUAoeU zly!FGzymtnyM0dQ)&_oN^efG6a-^>u)7dpV&mthY4k>HOrZQ`KRNcK;N|lK~y(csJ zg={F@PDa=oGOrfA*SN``5K86yu!}j3@@G#a$l0Ow$L{@uO!rv& z3^)1H2~*V&YK$Te5VyjF7c|`w}nE zaZyCk@N4`|lzGx86Sv8Xo!Tu2REEZ^CxjLBoYQL2Ev??a`})^keHFVaKPbUje92E! zR6Q*UUwb4|C!)X8s8eIExR05pxcP*8LG6dJhVIl%t0(Jse)B~^S1ZX0k(?R4xGcC} zPHM!ZL$}My=!Na!s7GiE^}OHA>RcBTJ`wru94Y@D4-m3CfX5Md#C6DVM;}jqA99-i z+?7SeD1knVS{(pP0f&SUOAoJ;Y1~TPP%qPUen$uMH7%I0KEv(EnXR6lz6+CB%X7cX zPyd3>Ir^`j*$RxPWjcSszI3L}Dl1&T@3<3*BHx#vIq+&{z2)p7OThYh@5QCpIF z%l#>jKY3~Y8*!yid-THLN#DMMfy(Ogfju=#_qwz;2tBT?Ev>j`99v4?8 zqez-soxsoU(YAR~UM|C|l#jKa-#VuSnV!Rc2bqfD-Eeunf+$KLXbE_Dsy9g75KN09 z!#3ENyOg=YS}k^JM)FHSNbrKEC| zuDipUbn$So&&4CI5?}0#L9&QnlELWz`{MtNzL;7ch+)c~uTk2|UYfq2ZL7$0&51k} oS~}QWI_UTJjh=q63GQv6sJLL);*x$FlYLE~B69D_Jn^u90b4zL3jhEB delta 774 zcmYjPS!|3^6rS%)tF=VBpnpkFwM^*p8zh(ztr~mELzB`66D5%vX|yxCzrbYvCj6Qkcd_1UpgpuUgusr5N+YGH1s+LRko)AQoWn_s6M z=69>8eVeRQDf7}h=sfqdrASo%UA~b;2a9EwxOO{!*D}u^Y_0o^sBjx>Y{~kP(P9TP zde=G}c0Y#$KlGN?dZ$hcTTWFNv2=B$l+=qGmP(7-YH8F`I}CP3eR|%_7%BIiupV)D zJL&5ktDp-zlcAQ!EWIb@BGuIuQhV;jb<=%@HKL*?#eb&xFZbETAAgJ2)zTwgSw|rm zRZsiD4>r&#UDj<6p!^=rZ^CGGxbn1~_3nTNiSojQYfiqLgAfODQ7cpPu$ClZqZz!@ zjXC_r4WE=xKvlB5@nABnIQJ80@ zlO-PuF?$T2vZn%>?5{vridG{DT<*tsIpa4&`P&-AIiV6EX|F^vc-&fi;04tP%BO1h zdWpZ@ka9x62wD*^bbAA^CjxjM~~rJZyXl=HkL%XV_ZN$M{pP1w60N&Gs6=F0q3^Y%YaYSPK) zlx#01_mP)bCMJn2#w|$AC`uvTR$|=zI>w0jT7nNm*2R{r(u`kY?R~STh-WN8k(?`_ VBMERwv6p&&{nFGy(i1axe*(+`F9ZMp diff --git a/compose/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/compose/.gradle/buildOutputCleanup/buildOutputCleanup.lock index f6a73f847549cc19f98ec7758534cb0f58073cc5..c306d6472b09e1c72eef247b8978f83af0ddd6ca 100644 GIT binary patch literal 17 VcmZQhF*rNr{gMY+3}Dc61^_&)1}*>q literal 17 VcmZQhF*rNr{gMY+3}DbR5db`K1@iy^ diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/TankList.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/TankList.kt index b1bf574..f7a84d9 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/TankList.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/TankList.kt @@ -72,18 +72,6 @@ fun ColumnItem( number: Int, tanks: List ) { - /* - val context = LocalContext.current - val tanks = remember { mutableStateListOf() } - LaunchedEffect(Unit) { - withContext(Dispatchers.IO) { - AppDatabase.getInstance(context).tankDao().getAll().collect() { data -> - tanks.clear() - tanks.addAll(data) - tanks.reverse() - } - } - }*/ Column( modifier = Modifier.padding(0.dp, 10.dp) ) { @@ -223,7 +211,10 @@ fun TankEmptyListPreview() { Surface( color = CustomDark ) { - TankList(numbers = listOf(1, 2, 3), listTanks = listOf()) + TankList( + numbers = listOf(1, 2, 3), + listTanks = listOf() + ) } } } \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/edit/TankEditViewModel.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/edit/TankEditViewModel.kt new file mode 100644 index 0000000..130942d --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/composeui/edit/TankEditViewModel.kt @@ -0,0 +1,96 @@ +package ru.ulstu.`is`.pmu.tank.composeui.edit + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.launch +import ru.ulstu.`is`.pmu.tank.model.Tank +import ru.ulstu.`is`.pmu.tank.repository.TankRepository + +class TankEditViewModel( + savedStateHandle: SavedStateHandle, + private val tankRepository: TankRepository +) : ViewModel() { + var tankUiState by mutableStateOf(TankUiState()) + private set + + private val tankUid: Long = checkNotNull(savedStateHandle["id"]) + + init { + viewModelScope.launch { + if (tankUid > 0) { + tankUiState = tankRepository.getTank(tankUid) + .filterNotNull() + .first() + .toUiState(true) + } + } + } + + fun updateUiState(tankDetails: TankDetails) { + tankUiState = TankUiState( + tankDetails = tankDetails, + isEntryValid = validateInput(tankDetails) + ) + } + + suspend fun saveTank() { + if (validateInput()) { + if (tankUid > 0) { + tankRepository.updateTank(tankUiState.tankDetails.toTank(tankUid)) + } else { + tankRepository.insertTank(tankUiState.tankDetails.toTank()) + } + } + } + + private fun validateInput(uiState: TankDetails = tankUiState.tankDetails): Boolean { + return with(uiState) { + name.isNotBlank() + && price > 0 + && image > 0 + && levelId!! > 0 + && nationId!! > 0 + } + } +} + +data class TankUiState( + val tankDetails: TankDetails = TankDetails(), + val isEntryValid: Boolean = false +) + +data class TankDetails( + val name: String = "", + val price: Int = 0, + val image: Int = 0, + val levelId: Long? = 0, + val nationId: Long? = 0, +) + +fun TankDetails.toTank(uid: Long = 0): Tank = Tank( + tankId = uid, + name = name, + price = price, + image = image, + levelId = levelId, + nationId = levelId +) + +fun Tank.toDetails(): TankDetails = TankDetails( + name = name, + price = price, + image = image, + levelId = levelId, + nationId = nationId +) + +fun Tank.toUiState(isEntryValid: Boolean = false): TankUiState = TankUiState( + tankDetails = this.toDetails(), + isEntryValid = isEntryValid +) \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Level.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Level.kt index 6f3278d..581bba9 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Level.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Level.kt @@ -27,6 +27,13 @@ data class Level( return true } + companion object { + val DEMO_LEVEL = Level( + 0, + 1 + ) + } + override fun hashCode(): Int { return (uid ?: -1) as Int } diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Nation.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Nation.kt index 73fb1c7..4b46b2b 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Nation.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Nation.kt @@ -28,6 +28,13 @@ data class Nation( override fun hashCode(): Int { return (uid ?: -1) as Int } + + companion object { + val DEMO_NATION = Nation( + 0, + "СССР" + ) + } } fun getNations(): List { diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Tank.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Tank.kt index d89b61b..65156de 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Tank.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/model/Tank.kt @@ -4,6 +4,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.Ignore import androidx.room.PrimaryKey +import ru.ulstu.`is`.pmu.R @Entity( tableName = "tanks" @@ -31,6 +32,19 @@ data class Tank( nation: Nation ) : this(null, name, price, image, level.uid, nation.uid) + companion object { + fun getTank(index: Long = 0): Tank { + return Tank( + index, + "Первый танк", + 100000, + R.drawable.t_34_85, + 1, + 1 + ) + } + } + override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Constructor.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Constructor.kt index b607968..7da8537 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Constructor.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Constructor.kt @@ -23,6 +23,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -33,25 +34,78 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController +import kotlinx.coroutines.launch import ru.ulstu.`is`.pmu.R import ru.ulstu.`is`.pmu.composeui.navigation.Screen +import ru.ulstu.`is`.pmu.tank.composeui.edit.LevelDropDownViewModel +import ru.ulstu.`is`.pmu.tank.composeui.edit.LevelUiState +import ru.ulstu.`is`.pmu.tank.composeui.edit.LevelsListUiState +import ru.ulstu.`is`.pmu.tank.composeui.edit.NationDropDownViewModel +import ru.ulstu.`is`.pmu.tank.composeui.edit.NationUiState +import ru.ulstu.`is`.pmu.tank.composeui.edit.NationsListUiState +import ru.ulstu.`is`.pmu.tank.composeui.edit.TankDetails +import ru.ulstu.`is`.pmu.tank.composeui.edit.TankEditViewModel +import ru.ulstu.`is`.pmu.tank.composeui.edit.TankUiState +import ru.ulstu.`is`.pmu.tank.composeui.edit.toUiState +import ru.ulstu.`is`.pmu.tank.composeui.list.TankListViewModel +import ru.ulstu.`is`.pmu.tank.model.Level +import ru.ulstu.`is`.pmu.tank.model.Nation +import ru.ulstu.`is`.pmu.tank.model.Tank import ru.ulstu.`is`.pmu.tank.model.getLevels import ru.ulstu.`is`.pmu.tank.model.getNations +import ru.ulstu.`is`.pmu.ui.AppViewModelProvider import ru.ulstu.`is`.pmu.ui.theme.CustomDark import ru.ulstu.`is`.pmu.ui.theme.CustomOrange import ru.ulstu.`is`.pmu.ui.theme.CustomYellow import ru.ulstu.`is`.pmu.ui.theme.PmudemoTheme +@Composable +fun Constructor( + navController: NavController, + tankEditViewModel: TankEditViewModel = viewModel(factory = AppViewModelProvider.Factory), + levelDropDownViewModel: LevelDropDownViewModel = viewModel(factory = AppViewModelProvider.Factory), + nationDropDownViewModel: NationDropDownViewModel = viewModel(factory = AppViewModelProvider.Factory) +){ + val coroutineScope = rememberCoroutineScope() + + levelDropDownViewModel.setCurrentLevel(tankEditViewModel.tankUiState.tankDetails.levelId ?: 1) + nationDropDownViewModel.setCurrentNation(tankEditViewModel.tankUiState.tankDetails.nationId ?: 1) + + Constructor( + tankUiState = tankEditViewModel.tankUiState, + levelUiState = levelDropDownViewModel.levelUiState, + levelsListUiState = levelDropDownViewModel.levelsListUiState, + onLevelUpdate = levelDropDownViewModel::updateUiState, + nationUiState = nationDropDownViewModel.nationUiState, + nationsListUiState = nationDropDownViewModel.nationsListUiState, + onNationUpdate = nationDropDownViewModel::updateUiState, + onClick = { + coroutineScope.launch { + tankEditViewModel.saveTank() + navController.popBackStack() + } + }, + onUpdate = tankEditViewModel::updateUiState + ) +} + @OptIn(ExperimentalMaterial3Api::class, ExperimentalTextApi::class) @Composable -fun Constructor(navController: NavController) { - val navBackStackEntry by navController.currentBackStackEntryAsState() - val currentDestination = navBackStackEntry?.destination - val currentScreen = currentDestination?.route?.let { Screen.getItem(it) } - +private fun Constructor( + tankUiState: TankUiState, + levelUiState: LevelUiState, + levelsListUiState: LevelsListUiState, + onLevelUpdate: (Level) -> Unit, + nationUiState: NationUiState, + nationsListUiState: NationsListUiState, + onNationUpdate: (Nation) -> Unit, + onClick: () -> Unit, + onUpdate: (TankDetails) -> Unit +) { var nationName by remember { mutableStateOf("") } var price by remember { mutableStateOf("") } @@ -69,7 +123,9 @@ fun Constructor(navController: NavController) { ) { Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.fillMaxWidth().background(CustomYellow) + modifier = Modifier + .fillMaxWidth() + .background(CustomYellow) ){ Column { Row( @@ -98,7 +154,7 @@ fun Constructor(navController: NavController) { TextField( value = nationName, placeholder = { Text(text = "Название", color = CustomDark) }, - onValueChange = { nationName = it }, + onValueChange = { onUpdate(tankUiState.tankDetails.copy(name = it)) }, modifier = Modifier .width(200.dp), ) @@ -108,7 +164,7 @@ fun Constructor(navController: NavController) { expanded = expandedLevels, onExpandedChange = { expandedLevels = !expandedLevels - } + }, ) { // textfield TextField( @@ -136,6 +192,7 @@ fun Constructor(navController: NavController) { text = { Text(selectionOption.level.toString()) }, onClick = { selectedLevel = selectionOption.level + onLevelUpdate(selectionOption) expandedLevels = false }, contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding, @@ -177,6 +234,7 @@ fun Constructor(navController: NavController) { text = { Text(selectionOption.nationName) }, onClick = { selectedNation = selectionOption.nationName + onNationUpdate(selectionOption) expandedNation = false }, contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding, @@ -188,7 +246,7 @@ fun Constructor(navController: NavController) { TextField( value = price, placeholder = { Text(text = "Стоимость", color = CustomDark) }, - onValueChange = { price = it }, + onValueChange = { onUpdate(tankUiState.tankDetails.copy(price = it.toInt())) }, modifier = Modifier .width(200.dp), ) @@ -196,7 +254,9 @@ fun Constructor(navController: NavController) { } Row( horizontalArrangement = Arrangement.Center, - modifier = Modifier.fillMaxWidth().padding(10.dp, 10.dp) + modifier = Modifier + .fillMaxWidth() + .padding(10.dp, 10.dp) ){ Button( modifier = Modifier @@ -208,14 +268,16 @@ fun Constructor(navController: NavController) { ), onClick = { }) { //"${student.firstName} ${student.lastName}" - Text(text = stringResource(id = R.string.create_account_button), fontSize = 20.sp, fontWeight = FontWeight.Bold) + Text(text = stringResource(id = R.string.save_account_button), fontSize = 20.sp, fontWeight = FontWeight.Bold) } } } } Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.fillMaxWidth().background(CustomYellow) + modifier = Modifier + .fillMaxWidth() + .background(CustomYellow) ){ Column { Row( @@ -246,7 +308,9 @@ fun Constructor(navController: NavController) { } Row( horizontalArrangement = Arrangement.Center, - modifier = Modifier.fillMaxWidth().padding(10.dp, 10.dp) + modifier = Modifier + .fillMaxWidth() + .padding(10.dp, 10.dp) ){ Button( modifier = Modifier @@ -265,7 +329,9 @@ fun Constructor(navController: NavController) { } Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.fillMaxWidth().background(CustomYellow) + modifier = Modifier + .fillMaxWidth() + .background(CustomYellow) ){ Column { Row( @@ -296,7 +362,9 @@ fun Constructor(navController: NavController) { } Row( horizontalArrangement = Arrangement.Center, - modifier = Modifier.fillMaxWidth().padding(10.dp, 10.dp) + modifier = Modifier + .fillMaxWidth() + .padding(10.dp, 10.dp) ){ Button( modifier = Modifier @@ -320,13 +388,23 @@ fun Constructor(navController: NavController) { @Preview(name = "Light Mode", showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_NO) @Preview(name = "Dark Mode", showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable -fun ConstructorPreview() { +fun ConstructorEditPreview() { PmudemoTheme { Surface( color = CustomDark ) { val navController = rememberNavController() - Constructor(navController) + Constructor( + tankUiState = Tank.getTank().toUiState(true), + levelUiState = Level.DEMO_LEVEL.toUiState(), + levelsListUiState = LevelsListUiState(listOf()), + onLevelUpdate = { }, + nationUiState = Nation.DEMO_NATION.toUiState(), + nationsListUiState = NationsListUiState(listOf()), + onNationUpdate = { }, + onClick = { }, + onUpdate = { }, + ) } } } \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Hangar.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Hangar.kt index 1d0e471..987b43d 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Hangar.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tanks/composeui/Hangar.kt @@ -170,15 +170,12 @@ private fun Hangar( } } } - index++ } } Spacer(Modifier.height(20.dp)) } } - - } } @@ -190,8 +187,20 @@ fun HangarPreview() { Surface( color = CustomDark ) { - val navController = rememberNavController() - Hangar(navController) + Hangar(tankList = listOf()) + } + } +} + +@Preview(name = "Light Mode", showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(name = "Dark Mode", showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +fun HangarEmptyPreview() { + PmudemoTheme { + Surface( + color = CustomDark + ) { + Hangar(tankList = listOf()) } } } \ No newline at end of file