From 7eda0718a8cb971821e697a331a01c94d9d5f616 Mon Sep 17 00:00:00 2001 From: Andrei Duvakin Date: Mon, 27 Jan 2025 20:10:03 +0500 Subject: [PATCH] ._. --- .../example/russionroadsapp/MainActivity.kt | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Mobile/app/src/main/java/com/example/russionroadsapp/MainActivity.kt b/Mobile/app/src/main/java/com/example/russionroadsapp/MainActivity.kt index 4d93de9..956a524 100644 --- a/Mobile/app/src/main/java/com/example/russionroadsapp/MainActivity.kt +++ b/Mobile/app/src/main/java/com/example/russionroadsapp/MainActivity.kt @@ -1,7 +1,9 @@ package com.example.russionroadsapp import android.content.Context +import android.content.Intent import android.os.Bundle +import android.provider.CalendarContract import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -99,7 +101,7 @@ class MainActivity : ComponentActivity() { } @Composable -fun EventCard(event: Map) { +fun EventCard(event: Map, context: Context) { Column( Modifier .clip(RoundedCornerShape(10.dp)) @@ -118,7 +120,10 @@ fun EventCard(event: Map) { event["title"]?.let { Text(it) } event["description"]?.let { Text(it) } } - Icon(Icons.Default.Star, contentDescription = "") + Icon(Icons.Default.Star, contentDescription = "Добавить в календарь", + modifier = Modifier.clickable { + addEventToCalendar(context, event) + }) } Row( Modifier.fillMaxWidth(), @@ -130,6 +135,19 @@ fun EventCard(event: Map) { } } +fun addEventToCalendar(context: Context, event: Map) { + val intent = Intent(Intent.ACTION_INSERT).apply { + data = CalendarContract.Events.CONTENT_URI + putExtra(CalendarContract.Events.TITLE, event["title"]) + putExtra(CalendarContract.Events.DESCRIPTION, event["description"]) + putExtra( + CalendarContract.EXTRA_EVENT_BEGIN_TIME, + System.currentTimeMillis() + ) // Можно заменить на конкретную дату + } + context.startActivity(intent) +} + @Composable fun EventsPage(localContext: Context, setPageNews: () -> Unit, setPageEvents: () -> Unit) { @@ -267,7 +285,7 @@ fun EventsPage(localContext: Context, setPageNews: () -> Unit, setPageEvents: () verticalArrangement = Arrangement.spacedBy(20.dp) ) { items(eventsList.size) { index -> - EventCard(eventsList[index]) + EventCard(eventsList[index], localContext) } }