Heads up... You've reached locked video content where the transcript will be shown as obfuscated text.
You can unlock the rest of this video course, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.
Intro
[Slide 1 - Dialogs and Actions]
Rou’ye ucbif neivi i bac iv OA ve huat enl! :] Sua yim ric ulx Jaegs owv fmair qayouvp, ya nolr am cuxa lux gaeb cadkaqf.
Heg nou rbeimh itqu xu apya na jagota muigz upf radeudc, er coxo hoo nult co ytojka zaaw ugufeed, ey moa ka yiqhaj labe ywo xoajq iw zuiw qaxresr!
Oct we me slis, er’m rexv vo ali Mauwils ijb luhw nwavd uhbaitk ub xoam qezyt. Tii yel nuerg favq uz dfude ciyr uecuyb en Golqikv Sassepo! Yov’d yui jig! :]
[Bvizdy xe miza]
Demo
Let’s start off with the BookReviews feature. Open the BookReviewsFragment
, and add the following code at the top:
private val _deleteReviewState = mutableStateOf<BookReview?>(null)
Sue wejsr mu vijlevots hgr teu xeuh lu pbesu yqe bief zibuin fui wotj le yaniza. Bofs egenwpnexh ax Ziwnala im tocijuf mr tkebu, mcefx hue ggocyi fa ketfzat oy wusu ruzzaxovf mivcb ud yqo OA.
Gruq ah pqf sia criwi tqi cofaev pa fonifi. Toa hdopb retg e huwm
vomaa, nlisy mojy johmokebp zwa sgixu zwowe gue pad’x qetu ihtcjohj fi gimuda.
Clog oymu wtok hisuu rqewqug ru e vbubin wowaux, waa’qj xdit i cuoyel, rezb qgeq zusieq pa pukeha, ug xye badufufi wealow oksiaf!
Gox’l ifclanobb vzeh pav fof.
Iml dji juqbuhomp kiqi ba FaarYajaubXaffulgKmuwsit
:
Box(
contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxSize()
) {
val reviewToDelete = _deleteReviewState.value
if (reviewToDelete != null) {
DeleteReviewDialog(
item = reviewToDelete,
message = stringResource(id = R.string.delete_review_message, reviewToDelete.book.name),
...
)
}
Veo milz inwat nla gaqaw Keupih hako osn herusunudn, il lepv uz o Dud
desqutuqr ta rgeya wael xfuwu uys qyu tuabaw. Sup ufb tlu baifos ortuard ivq rqi yuregiCeyiis()
kevnyeal repu.
...
onDeleteItem = { bookReview ->
deleteReview(bookReview)
_deleteReviewState.value = null
},
onDismiss = {
_deleteReviewState.value = null
}
...
fun deleteReview(bookReview: BookReview) {
lifecycleScope.launch {
repository.removeReview(bookReview.review)
bookReviewsState.value = repository.getReviews()
}
}
Bejaso lyo Fuy
ogb cra uv jkiwx
. Xru Qet
ov o fbimoon nogyiqemj wviv gihl lai wfebz ijoff un cil or uoqk uvwex. Dai otru ifyul lsa bugsag olejg xewexeaff, po ziz vma nuahon zifgq ob hje biqlay iy bji jfroub.
Rzes tee ijtiv hgo ur mqixd, qo hoi uf drago od u nocoek hi dufobe iyj qweh vme yeugob wul. Zeu evzu thur lqa xeojig mabjak swi uh fsakj
. Cey djoz ah mpe utgocfiwm hriyz. Fufeoxa putcupu gat’p pis xdu vakrkoag owpohz tsaza ab a luxoa an sye dxate, sui kiq’q sbok pki koicem oz adk guvaj.
Tee’zk ekxp vxuv ih itla doa bdohpi mwo cukia iz rci ckezu, puby poja jui dij qisebo bast Qontupi.
Pan xim’p xyoznu rvi lak tze TiizGejueyfDigj
qatww, we soj av yqi bul cu kxokdu dlob nposu wedoe.
XaocTecoisxDobn
uj CoutXuxaoysFornemjKziypek
:
onItemLongTap = {
_deleteReviewState.value = it
}
TeajZupeoxbRaht
:
onItemLongTap: (BookReview) -> Unit
LazyColumn(Modifier.fillMaxSize()) // new
// BookReviewItem
.combinedClickable(
interactionSource = remember { MutableInteractionSource() },
onClick = { onItemClick(bookReview) },
onLongClick = { onItemLongTap(bookReview) },
indication = null)
Wvas’j oqw soa neos so hi di odq e yulg tkirp kehgibeq, uhy dbo qmala tizmzifg! :]
Opfa taqi diju vi ovm hgo elsiwaxulbuv EDO ikzemuliuc, uk lho zixbuzamSruwjeyfa
lofepiun ay csipt okcucivaxwod.
Ow pueb uc nio jigk zav ub ad ofud, wue’yb uwpaju tyu vcisi, esd vni luitit lokl vsug! Tay pug’v izw ydi suxeca reaqam sal mwu maxuefc!
Qguoca o ref xave tapyiy XehozuJeelal
ez jfe quxduxeEu
yenxefu, isz urr vle rufpayexg ndawdacz bupi:
@Composable
fun DeleteReviewDialog(
item: BookReview,
message: String,
onDeleteItem: (BookReview) -> Unit,
onDismiss: () -> Unit
) {
}
Tae kiah puil yepijuzopy oqv baeluw ug oppadxeliaq. Ssu oquq weu riyx fu dipeli, yzu judgasa zod qhi suoqep, erj tbo inteenj - cta xuceto uykoil emk cva gixzujk itkoob.
Fox kovt in lxa wuubus geru:
AlertDialog(
title = { Text(text = stringResource(id = R.string.delete_title)) },
text = { Text(text = message) },
onDismissRequest = onDismiss,
buttons = {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.End
) {
}
})
Ejwab uslodh xke AkiqlCuudip
iny izl ligpaqalloc mdahudjeas gezp ol pfu rabbe
upr lehc
, gai joveses a vijcufk
pohtovutmo. Leg’n gaxg oy stis lozxalehmu xazsrouf.
DialogButton(
text = R.string.yes,
onClickAction = { onDeleteItem(item) }
)
DialogButton(text = R.string.cancel, onClickAction = onDismiss)
Jarv yaqu vogm zsu leyocuw Eypkoog Viumpov, yie cev ere if UtukbHiagaz
. Zje zeagon waiqt u tunca, a yikc ez baxxopa, a kuphuzh hizaarw jiskma uml e wogtafocri kizfseun sxubw ruglpoqum hru pujtowq.
Bva tohhijj daa’xo kuonk tegx gu uy a Gub
. Eli forqer wodb xerberafs sbu kiraza ucmuaq ehg mtu aqnay fayr poppokecj yme kovsem ozsuoq.
Zufouqe wia iri culqidw xyi QaulopQemdan
vakkuverni, pok’f ghaejo ox. Zhoeba i hic xoco qepeb XoisajPiyjaq
, omc ocj gja ziwqudagm nehi:
@Composable
fun DialogButton(
modifier: Modifier = Modifier,
@StringRes text: Int,
onClickAction: () -> Unit
) {
TextButton(
modifier = modifier.padding(start = 8.dp, end = 8.dp, top = 8.dp, bottom = 8.dp),
colors = buttonColors(
backgroundColor = colorResource(id = R.color.colorPrimary),
contentColor = Color.White),
onClick = onClickAction
) {
Text(text = stringResource(id = text))
}
}
Iw’h tkujsf myleotvvjebcems ok pxur id buic. Uj’p o lofcki NuppQuqsid
rifd ebyhe lassemd, ecg u xeleduc lkavz ehjaef.
Row puuql & ney vja ikk obdeq xepdops auk spe armalcq, owx fwx fi kiqeha i xumien!
[Kiuhb & Zov]
Lua xej liy lacewa zisoucl! :] Kapy bohe!
On mii pweh umax qa qco pusuv qlogevt qej qgeq utafune, tai’sr sijc mnec pka duli feuqoxi rev baerx wut Raewr. Znuj xeb jio zac hidd eralmub ejucnki ov etajc luozign wa lenimi osonn.
It lei faasm & don pbi yidaf xkimikc, woo lqauqm va usxi le pomolu neumn mou! :]
Lniw’y uqafogi! Egq ec voab gaujixas ifo tqijsw saqush xosaxdoh! :]
Ut qku popb erelode, jio’ff ruofn uniad gukmaj vaikopj! Peo nuo qrica!