From 7ed6a7e9b9aaec6108724b38660976a9c423f4cb Mon Sep 17 00:00:00 2001 From: Stranni15k Date: Mon, 8 Jan 2024 22:05:09 +0400 Subject: [PATCH] lab4 --- ...156e9da7-35d6-4588-835c-5bd654859b61.vsidx | Bin 0 -> 111556 bytes .vs/Lection5/v17/.wsuo | Bin 0 -> 15872 bytes .vs/ProjectSettings.json | 3 + .vs/VSWorkspaceState.json | 6 + .vs/slnx.sqlite | Bin 0 -> 90112 bytes app/build.gradle.kts | 1 + .../ulstu/is/pmu/ui/student/edit/TaskEdit.kt | 153 +++++++++++++++--- .../ulstu/is/pmu/ui/student/list/TaskList.kt | 23 ++- .../pmu/ui/student/list/TaskListViewModel.kt | 4 +- 9 files changed, 157 insertions(+), 33 deletions(-) create mode 100644 .vs/Lection5/FileContentIndex/156e9da7-35d6-4588-835c-5bd654859b61.vsidx create mode 100644 .vs/Lection5/v17/.wsuo create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/slnx.sqlite diff --git a/.vs/Lection5/FileContentIndex/156e9da7-35d6-4588-835c-5bd654859b61.vsidx b/.vs/Lection5/FileContentIndex/156e9da7-35d6-4588-835c-5bd654859b61.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..4ea579ea386da3e320b6e675734a4c90850afeb7 GIT binary patch literal 111556 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 Y-;N&XT-TL2vdx@!Yu)0y)b|(u1#p5t%>V!Z literal 0 HcmV?d00001 diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..6b61141 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..ead5ee75065b8c515d5499f2ae07a79231274e65 GIT binary patch literal 90112 zcmeHP3ve69dBzbSfCF%Md_xo^5fmkpka!dc5C9=rk|_`rAwI>29;Rvf030Ytc+dbS zi4!L+rPxjF#Cf#I#A(t=S~ugQttYQ$k~WDucH?B6Owy!z)|td^n`hHBO*@I5SG&7+ zdoLVBMQ+qoS9!|F`$=9p+C?W-FpEQ!M3$iZ5tsuuzoc4xi6rvC!aO z8~BI+n!yJf{sR7|G@omIq%Hj^svatHKZ80=+|N9Zc^cdku7~M|oXALz@W?Vk-H#1$WzwGN>(hs}r-)vqMjR$+#-Q#z+88pBkBqjgQRr20|gfVz2>M++=J$m)khGF66SAte7_IK))Wi-30Iw z6)!wvEFDRu#Bw>C%;w+}6Uy25C+QpM!6#96$p(i2&GSLeIr;-7E=O@ z&$;5I+7rM^v0`pLU#Qk&T>i}iZijaT#MKIlD`aU(C=|p}Oh}y*SE@~yqRgo1(MOq4 zT(cid%o*DN->V*d*?)D>g(B{OWfXD7R>tpceZ(2XV0;{LMv*pVt|Q{)1vRs|%5!uP zhsNF7VP2ZQ;IP(C3j4dx8my=|FJ@H5zj=@^Y^;GSi8B=*0!Q9LHZPVdLVj)82b0G_ zVhUtZkguR8^0dQyz)xM_kSF3{VSg)-V1{IvOJ3H+>BPxJ<;sI~ltvo&!ZLYc;2MKD zlF5cdqDW7Pr7{S#s?2}I;&gcZe(LHWQQPr<(%*b=<744)`NY?gh;64l$lNugYsNtVUZMG z)#>_JlDQg}lQ}od(@qJwb+C>G?_31;YK<-i(0V3s;l9HL*$(Cf@R9rx1PB5I0fGQQ zfFM8+AP5iy2m%BFg1}2fVAEM&Z;5R#gYwvUF;$5b3z_WddI{Ct=fS;nHYL6c-m~wP z6^^ZEb7`GcdG|rz(lRQ3?w+p*rONu6tPAhewbGb$=dD))tqb4)gmJyR%Vx908b`(C z`s#vES`{nhMQ}GS-gO;RC~iDSjvw zPV+)Q803TL;mA-jBLvbzX+Dw+CexvGkRJ|)1N=}RlIDk_!Vn)B3S-? z8IC5SDPD}GK~DpbAm}L==7VA+8HfyLLW8LYp9%+t!;w^q4@ZPyekhs>^FlN|zz33I zCK!&Uhm#qgl*|kbhlV2jKvE0?o6-R=FqlVbFp$m!LupZrM)`C!Fc?UM(tI=$5|7V4kt6o%s?c?t3rQy-9n506~BtKoB4Z5CjMU1Ob8oL4Y7Y5FiK;1a1}rZpzw0 z$%P#Fg~H&}ofP*LW7B9?Gxrh=#4zdVs2WKEv8!Jw(-bHlwb=+C%Fe z0)Wr|=dC}taR0`Am3xAFjQa!bcexAP1Q+63*k7>!#6H13%0A5I*)wd2?PBYhA2QD} zPc!dl-o`x0Tx2Gg9;V6jOV7W0zUX<<^SI}Yo`PrG6Y{jWf9(Fc`x*BK+>f|l;ZC_H z+(Ea?^}Oo|*V|mb=UQ=%y82vg^e^ad&>yGYL;n%|JM^9OAl>Txq4Uemk2&Aze2w#h zbH*8TwmDvKeAV%!<8jAT#~H`4qsjgs_Gj$xvR|P9zsGLr2BLDM z1YUeY{VKBd6{%UOm@Ag_qP=(9Em6=cn_9^U>jm&6S81gL9>`1gUlNmR)42D}Wyvy) znqFb=UDxVoO6h0GydOnj@157`XHx0sta(3*!rn92>Ssdf=d^i0io)Jg*Xrkl($AuK zKZ?Sh1-m6;iZgJ41ny?nyxp>2uLT`Mk^ATDmJz*t1^md4xGF6fP#woz`A=4>LccOm zZJL#$05tE!&0A;emUiID7vWoeWre+S+HUa!c0Rk77uNX8moJ}7uVoeSjw!pPM=RDz zJ0|Uxy&9=bxP1cpuhMf~+wJxfI+?DWFJZSFP}>QG4bYOm7zisydB^RRoj@a95-!0X zKT!m2$6?~2?eI->kQEN%xqHW81Hgw-rW3>^0r;VcVo59L9tAlMwh+n}CbQ+rsjPTu zs+bmYKI>rHXo6gB2ZSC+YZ|;oxrB~R7n&IppRj!zT?X} z%!=r?h~07sj6brrrho)4H|Qs1z<`QgOIR9EfR-p+UkG}Pg!P=bRxD>L#nJ|7$77Rx zLy`tuDRYgUptN2ynM^KQ5aF`bPz>l4YxmeTC^;kS3fR(zZD|{jofO!j<+mS@ays%D zp$J6#ag+9bNdyNQHHdf#)RHpqeYjOip9EGO`mMrk+ArmXv`|!dZToa9wg>mH(+`sa zT9#38txF1J7(I%3SFe=Zz^Z|#&nv)p&`cG1V~=z_UC(yo9{1cPWzBiXH$cl=R{B91 z(6OSmcdwMAp*zNkd9b452)M*v1izZ2RrBtV^MGud(!Qx%*#+#zBRB5GyMQjtYU$GK z0(_X;=)=2!U6|F>DfL$p%dME#yi45~D9qhE?Uo<}tdK4hv*{_Jkj=my3P{9?j(>-g z$K_p2q5v-N>v<3;Vp`tKbl@?XI+S^A$GpbvcpmMT)zYq+$2QDu+=l1j#jIwpYIBRi zY?GK3U}&?#Y?YXKumTEmdyAB{1!;EBT1D2>ESXv^rR=zqt|n=}26lm~>q05bOZy-2 zRZ(efl*Y+rlVye3*&tnelkmNUerZby)?HO-;iL&81*KU#D@95FD)!#BHwX_^gxQ@gkW>`5X0MACT4->|wK(N2 zF?W{}%nmd&&JN3)9bj^x6_R6SqaDBtm|$CtSDT{-3Aa7Vd}K^V}WW7r9SyFEUooU$K|i z?{ZHu-(|k!`8NF&_hBx~J<4@?9Q03^C+R<9qweQDuV!CMi`*mhF?tVomAk~Pg8TdT zx;9-WU0v=5cg(%V^|b3vu8b?}vb%oFevqA}U&(%kEzob}wt23y&#}8af9n2}`)}NT z?tY8=Rql1>L!PfNr>~XTQ)V9W9A+5zdHSq7X>#L3SOfur06~Bt zKoB4Z5CkLywpl~?G)7kn&F{1xrE1ncb8Xf^qZHIUFSx-|m~x%-JXEQ!ZDt+TW(w3Z z&)KbwRJOcITfG#jTV^1m1j?7zRtnZ9)6jsLHOW*9c&^h}hfK28E=sLE3Y@i@($pL8 zfnv4BxU$_Er8EUYOt2 zDhrm)rW&k!6%J%f!Znmz!J6BI<~x+1fTw}7T&=AoJl35QuBVMdr<7}G$Dsh%&Bovt zTq}#iK)|IhrD_B2(?;QlSOC7qc32Nnwd!EUa4*K%*9h)Ku6Nx5-5l1qj=~SHu62a5 zc2Y_$>o9~ySHHR)T8nE|hhW$sPd^A}C)cK;(81Mu)G#~~txrWDi&t6B!2nR4xD5G{yQFB*U*t2Lqn@GERA)rI=uSG5+zL!(jsrw{rU zsQK*I%zhtqFfd(BZO0EC8?dzXoL-n`*0Vh@8cgdpx52nFuhr~DekIpu_Q;v6Tgqg+ zl}y$pWilU>gBnXG&S<;5)*xk4OW6rysdoKjhdfS)G|qNqoOWrPZMc6g`~d47ZSVuE zb+kgS)6_RwU{|1~(F}8QbseJ#wu7~cMwma0ck~T#V8rC$vZy!TES#4~ErNlgYYGq^ zxLERcH}o&*v!>MGg6Try(q<+&6%!nACZK#^ha6NhsE57Fg#w%2Kr5UVw71S~ZKgpT z0NwvHn-=cp+)ub4fu{hz!~HY&b?_{}7r4)I&u|~-{+8L~{+jy$_c(Yq;7_=>GH>AC z#J!Gtkb5O}4|gZGzy7q^XTVxM9Ej{O+>A@+TohqH4Q_NVNBu|HtH1D-bc8v7;o@7cd#-^sq6eGB`C z>>7KXO@rqTUd3Kv?_)2rz3gsw2iwLrur5#s_$Bzg!XGi;XTHTe$NVGn1?Dr%Cz&Ui zk1+3H-pxG9{4w)p=GDvtWP3vpAP5iy2m%BFf&f8)AV3fx2oMB*LlCf8X)0fDrKs~c zL@z)}pNI5Z7Sh#okY-jP6*G{gMM&Gykj|zMO+q>&AbJm?E09j#jp#C@Q+FY{1nK0R zh@ORX;tZmvAw6*l(M3oT3y97`IzET!Nk}_q5uHJF8qq04ClQ@M^aP>_M8_dLcpT9& zMB|Vi9Yr(->5*fIjv#smq|u{@9)WcDFrv3Z8a@PR&p||^hz=tfK{O00A3}5p(IBD$ zNc#p69e{NI0Yv*D-Nz%^hv?z=rZ*|hWR-0Peh&a>PGxc^@QPxUv@ zU!xzRE3Qkf$6c>+_0a!GKS4i4pLQ*=uVuZ?r`W$_k2;^{tez(JDdu_4uzSosQM$lKHXFkHdne{n8&Fo?hx}WyE$Msd`8(g3L4T*DN20?%zKoB4Z z5Cm==1lnyO+WgSG({>c>U2DEIl-p(-tdhfbg)T6*4ho-~)8~;|_1XEkENyG1;OY75 zIj60W0_W$MRkzJcNhj!H1~I|=KBCLk3ij6E6um8tOsaW~KAUQ@@f2k|NuNzN*t#gq zS^A97XzQl5r|C2IAQkmIeP(5cEedQhe^cjfG>%3ny`QsujW$zvnYNi)x<;GHJ5Ae6 zp1nq!i8H2cCQe_Y&52W{ZB8t9*dk^afV1$#LaS}RPKMr{nfKX7bX>zp`}kayg8r<1 z{3P-UFhb|7$JS2C=k1*{EjB-e&&KhaFw@Pp9t{({sxsAN+pF>rYZ9%t=G?t=Ld!uq zC%m=;N;CEBy)(huc7oeA{5H!ta&7z$%W)*cC-4Wy&{up0e=xq?7NXGkZ`E5WqiB41 zGz>-H9R6r*m+dfB^CbSrF{Ll#S^SX^r7!t3{>U9DV9+}!N6|-kA|E}%**YopOn&$< z0#A1;KYTly0X~-xA41`XPUd?KqM76OMxrQO)YJK%;hnZaRIT&*o(SqldNU-9kghtT z=R=4OG10%=F@%t*bxzL*wc_g50c5s(R^K-$EuVB+-#36Jp`O?8KY$pp6ZuV!e#B7E z?Dz3#BGOwMeaKVcyBhno*zDPdTvdN|zsHZl#c+DRrx)co@D4@~iZs&`{O;ROVv>_kyp`&7SU z2Of8Ohdgfkc6Hos?ee(ZZOUjZUi1;Y+0ceQ!ZZHnR^-i^Q~u@_)HQr}p&4CCs!#gu zO{hJ3PoWWIGUI8#y#X16*me#rs(RvYXSdmc7Sl8T23xlUAM(Su4m=)Phr)2T*$&_@ z+GBsWtsS%JRvT}rdiKESvUz2$!)a@_pre1plg|FpAo%c~vvpZCk0)4ZTdVZF&Hh z0t5kq06~BtKoB4Z5CjMU1Ob8oLBJdVa{h0Q3*iz32m%BFf&f8)AV3fx2oMAa0t5kq z072kZLV(==-%6`V=0Xr42oMAa0t5kq06~BtKoB4Z5CjMU1Oamd$n*c^xDYNufFM8+ zAP5iy2m%BFf&f8)AV3fx2oMBrB?RF8zsq5@aAEde*s|v_PlJ2H^)UUA^I3=0e$x8- zx)Q3BBGbVHSbt7PVulF=hZJx{)(&FX$jeN408x=FzLbj4E7FMK>h1IcaPE4d% z5@t$VY%V^s5cegfN8@LFOV`!MGUM`rznST3{bgV8l784_|7I)W@Wz0d$IZ>07V@IG zaqJexsV%oK2`Vo8Vl$JIaIVucv61<>|Ng@shnMH62l$2V(#rtfh4}IKoNsn6F*P!G);AG9>l;~Im`O~7Zl~hY3&1MyZ*g+6Pwr*5 zRJ@o?izRJqtRtzwMVO0^#pmMFvG}}i3AczBD%r}$a<9SwUHH`|VBHpHM6@v}9;wEG3x!lIdbs?9{WW}^u2m1BE?IwVi zsCeNSW9djLC6>$CWHtwl?vxvX~NJ ze9jdw)t&%WiWPI~`9ifG$SLZKj*VnXVixKeGp6lF$5k3Pzb z;+p+vV$RqG_+Its%l@m2E);POETf1swlaQq>m$x62IJ$1Gm5k^a~%;UFQ}Q#Ri2}Z zI5h6o4)fCd1&6hEQrO>h)?h`&c`>6Z{>_7YVPg$sNt~(h5IFJ{vU#yw5%O!xKA1cf z5>p_Pf_w!%k*6Kr1AgiXhddDv3;SDv1T!SVT=KFmPA5(-Dpww?qcqaE7naEr1J@YL zkxVuu5=DASER{i^Rb~Dw7N^7O_fuC7AwR^ON!{ze(Rv@$3pE~y1=>Zr4$qT3LoryI zj+$l%w#>44TxF`)(-;NH(ipejPiJ znroouI+VxYehU8Gz?R^pW%xuHVzcZ!mZ;taP73A9OtLJNE{b4Vq-I`ux9A&gvRTR_mep}+$^!`+>hujEl_oW84g4RD< zXZP;kPn|`cQ@$7M(ZrRqc<;Jc0J}E*SF6r%48q<5aQ;5f(!Y6}a(FvBs4F7sQ?^b1 zuTIy;lFZe(oXojto_0#et%G$mc&BucMEC!ehb`Q+=VAAc-80TX$9?us*e0#-0L+{I z_dr97qm}2K51qc46)(ZP`m9hnhpvEGv26S<<9sR+KkYNhd_tLVolY!_gSd$;&dn!I z#jABj=H;y#jIVicixFG!Rp$fW$h_~EP}c3i6X`x*tpJAlG0E>G73m5No4_=o6Iagp z#^z?Gszy~K7wku7rq!>KmFjnB`E0+5d3u$x`Tk$s+^Q~+`S;!D>$$7P2mYJwSEdQ( zp`CT*oZ42JpJ6GX_N=Otn4SiAp(nt7XB84qb8H^m)~niJGA65ZSZfbVIv944au^q0 z-TD4~eFnSBieoUYYZ-ezMgmi7*;c(qz(L2sZL+zu_!9GIBfHt#?C>u6sm-&7UB#$S z5o+EAsrW#(Hhn793v2dadYOjZ!9=U}fni?uzw&Yu+Q9z)e#12yHc}hFZ>{rvxo+Sx`x5WG@n%^&JA9j?yXs>_X&Tq6q+IJxO1%thy^p_v zZH;`fS%{y}7mgN$(yCZ7y9(8))WnK~ig@{YTEH8JKqII+1a(yhv^|^?Ga^U^DRD*l z1pNUQ9#!8^#4WXgMbR+t$~0V*Hej`s&yoS)h9S_fmC>W(npj8+g~}F2H*amUX;)hs zZD_UZf1rbNc!NReAx*VJkF*J<4Yk5u!NfG?6=`+gUdLT5uAktrF^ezrxW_HF4zypn zWNF0ne>W4U)47onpaQq-psH>Ew>Kg>yWoa!*{7tJ8p-3=m~E8GlfEt`*PQmS4s!UB zfM+_I)M7lesClPG4nN4@#|>3FUg8!EpKJW~9e$Aa|8IJcgA7OzAP5iy2m%BFf&f8) zAV3fx2oMAa0tA7ZjsUs;zv+;Z0SN*G0fGQQfFM8+AP5iy2m%BFf&f8)AaK(WAiw{2 z(;+7V5(EeW1Ob8oL4Y7Y5FiK;1PB5I0fGQQ;HD!$&i`*Z + onUpdate(taskUiState.taskDetails.copy(endDate = SimpleDateFormat("dd.MM.yyyy").format(selectedDate))) + showDatePicker = false + }, + onDismissRequest = { + showDatePicker = false + } + ) + } + + Button( + onClick = { showDatePicker = true }, + modifier = Modifier.fillMaxWidth() + ) { + Text("Выбрать дату окончания") + } OutlinedTextField( modifier = Modifier.fillMaxWidth(), value = taskUiState.taskDetails.endDate, onValueChange = { newDate -> onUpdate(taskUiState.taskDetails.copy(endDate = newDate)) }, label = { Text(stringResource(id = R.string.task_endDate)) }, singleLine = true, - keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number) + keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), + enabled = false ) // UserDropDown( // userUiState = userUiState, @@ -169,7 +210,6 @@ private fun TaskEdit( } }, enabled = taskUiState.isEntryValid, - shape = MaterialTheme.shapes.small, modifier = Modifier.fillMaxWidth() ) { Text(text = stringResource(R.string.task_save_button)) @@ -183,7 +223,7 @@ private fun TaskEdit( text = { Text("Введите дату по шаблону: 01.12.2023") }, confirmButton = { Button(onClick = { showInvalidDateDialog = false }) { - Text("ОК") + Text("Подтвердить") } } ) @@ -195,22 +235,99 @@ fun isValidDate(date: String): Boolean { return regex.matches(date) } -@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 TaskEditPreview() { - PmudemoTheme { - Surface( - color = MaterialTheme.colorScheme.background +fun CustomCalendarView(onDateSelected: (Date) -> Unit) { + AndroidView( + modifier = Modifier.wrapContentSize(), + factory = { context -> + // Используем стандартный контекст, без применения кастомной темы + CalendarView(context).apply { + // Настройки CalendarView + val calendar = Calendar.getInstance() + + setOnDateChangeListener { _, year, month, dayOfMonth -> + calendar.set(Calendar.YEAR, year) + calendar.set(Calendar.MONTH, month) + calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth) + onDateSelected(calendar.time) + } + } + } + ) +} + +@Composable +fun DatePicker(onDateSelected: (Date) -> Unit, onDismissRequest: () -> Unit) { + val selDate = remember { mutableStateOf(Date()) } + + //todo - add strings to resource after POC + Dialog(onDismissRequest = { onDismissRequest() }, properties = DialogProperties()) { + Column( + modifier = Modifier + .wrapContentSize() + .background( + color = Color.White + ) ) { - TaskEdit( - taskUiState = Task.getTask().toUiState(true), - userUiState = User.DEMO_User.toUiState(), - usersListUiState = UsersListUiState(listOf()), - onClick = {}, - onUpdate = {}, - onUserUpdate = {} - ) + Column( + Modifier + .defaultMinSize(minHeight = 72.dp) + .fillMaxWidth() + .background( + color = MaterialTheme.colorScheme.primary + ) + .padding(16.dp) + ) { + Text( + text = "Выберите дату" + ) + + Spacer(modifier = Modifier.size(24.dp)) + + Text( + text = SimpleDateFormat("MMM d, yyyy", Locale.getDefault()).format(selDate.value) + ) + + Spacer(modifier = Modifier.size(16.dp)) + } + + CustomCalendarView(onDateSelected = { + selDate.value = it + }) + + Spacer(modifier = Modifier.size(8.dp)) + + Row( + modifier = Modifier + .align(Alignment.End) + .padding(bottom = 16.dp, end = 16.dp) + .background( + color = Color.White, + shape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp) + ) + ) { + TextButton( + onClick = onDismissRequest + ) { + //TODO - hardcode string + Text( + text = "Отмена" + ) + } + + TextButton( + onClick = { + onDateSelected(selDate.value) + onDismissRequest() + } + ) { + //TODO - hardcode string + Text( + text = "Подтвердить" + ) + } + + } } } } \ No newline at end of file diff --git a/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskList.kt b/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskList.kt index b0cbec9..65f9ee6 100644 --- a/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskList.kt +++ b/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskList.kt @@ -73,7 +73,7 @@ fun TaskList( } } ) { innerPadding -> - TaskListContent( // Изменил имя, чтобы избежать путаницы с функцией TaskList + TaskListContent( modifier = Modifier .padding(innerPadding) .fillMaxSize(), @@ -82,12 +82,12 @@ fun TaskList( val route = Screen.TaskEdit.route.replace("{id}", uid.toString()) navController.navigate(route) }, - onSwipeLeft = { task: Task -> // Обработка свайпа влево (удаление) + onSwipeLeft = { task: Task -> coroutineScope.launch { viewModel.deleteTask(task) } }, - onSwipeRight = { task: Task -> // Обработка свайпа вправо (добавить в избранное) + onSwipeRight = { task: Task -> coroutineScope.launch { viewModel.favoriteTask(task) } @@ -102,20 +102,20 @@ private fun SwipeToAction( dismissState: DismissState, task: Task, onClick: (uid: Int) -> Unit, - onSwipeRight: (task: Task) -> Unit, // Для добавления в избранное - onSwipeLeft: (task: Task) -> Unit // Для удаления + onSwipeRight: (task: Task) -> Unit, + onSwipeLeft: (task: Task) -> Unit ) { SwipeToDismiss( state = dismissState, directions = setOf( - DismissDirection.EndToStart, // Для удаления - DismissDirection.StartToEnd // Для добавления в избранное + DismissDirection.EndToStart, + DismissDirection.StartToEnd ), background = { val backgroundColor by animateColorAsState( when (dismissState.targetValue) { DismissedToStart -> Color.Red.copy(alpha = 0.8f) - DismissValue.DismissedToEnd -> Color.Green.copy(alpha = 0.8f) // Цвет фона для избранного + DismissValue.DismissedToEnd -> Color.Green.copy(alpha = 0.8f) else -> Color.White }, label = "" ) @@ -132,7 +132,7 @@ private fun SwipeToAction( ) { Icon( modifier = Modifier.scale(iconScale), - imageVector = if (dismissState.targetValue == DismissedToStart) Icons.Outlined.Delete else Icons.Default.Star, // Иконка для избранного + imageVector = if (dismissState.targetValue == DismissedToStart) Icons.Outlined.Delete else Icons.Default.Star, contentDescription = if (dismissState.targetValue == DismissedToStart) "Delete" else "Favorite", tint = Color.White ) @@ -160,7 +160,6 @@ private fun TaskListContent( modifier = modifier ) { if (taskList.isEmpty()) { - // Код для отображения пустого списка } else { LazyColumn(modifier = Modifier.padding(all = 10.dp)) { items(items = taskList, key = { it.uid }) { task -> @@ -169,14 +168,14 @@ private fun TaskListContent( if (dismissState.isDismissed(DismissDirection.EndToStart)) { LaunchedEffect(task) { onSwipeLeft(task) - dismissState.reset() // Сбросить состояние после обработки свайпа + dismissState.reset() } } if (dismissState.isDismissed(DismissDirection.StartToEnd)) { LaunchedEffect(task) { onSwipeRight(task) - dismissState.reset() // Сбросить состояние после обработки свайпа + dismissState.reset() } } diff --git a/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskListViewModel.kt b/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskListViewModel.kt index 1511d52..cbab0bb 100644 --- a/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskListViewModel.kt +++ b/app/src/main/java/ru/ulstu/is/pmu/ui/student/list/TaskListViewModel.kt @@ -17,7 +17,7 @@ class TaskListViewModel( val taskListFavoriteUiState: StateFlow = taskRepository.getAllTasks() .map { tasks -> val filteredTasks = tasks.filter { task -> - task.favorite // Оставить только задачи, у которых favorite = true + task.favorite } val sortedTasks = filteredTasks.sortedByDescending { task -> parseDate(task.endDate)?.timeInMillis ?: Long.MIN_VALUE @@ -26,7 +26,6 @@ class TaskListViewModel( } .stateIn(viewModelScope, SharingStarted.WhileSubscribed(AppDataContainer.TIMEOUT), TaskListUiState()) - // Для TaskListEndDate (Сортировка по endDate) val taskListEndDateUiState: StateFlow = taskRepository.getAllTasks() .map { tasks -> val sortedTasks = tasks.sortedByDescending { task -> @@ -36,7 +35,6 @@ class TaskListViewModel( } .stateIn(viewModelScope, SharingStarted.WhileSubscribed(AppDataContainer.TIMEOUT), TaskListUiState()) - // Для TaskList (Сортировка по uid) val taskListUiState: StateFlow = taskRepository.getAllTasks() .map { tasks -> val sortedTasks = tasks.sortedBy { task ->