From 941f3dd97ee9acc050017985644b9c054cd263eb Mon Sep 17 00:00:00 2001 From: kodergen Date: Wed, 16 Sep 2026 00:31:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B5=20=D0=94=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- receiver/src/main/AndroidManifest.xml | 16 ++- .../activities/receiver/ReceiverActivity.kt | 33 +++++ sender/src/main/AndroidManifest.xml | 21 ++- .../activities/sender/SenderActivity.kt | 135 ++++++++++++++++++ .../src/main/res/layout/activity_sender.xml | 55 +++++++ 5 files changed, 256 insertions(+), 4 deletions(-) create mode 100644 sender/src/main/java/otus/gpb/homework/activities/sender/SenderActivity.kt create mode 100644 sender/src/main/res/layout/activity_sender.xml diff --git a/receiver/src/main/AndroidManifest.xml b/receiver/src/main/AndroidManifest.xml index e2f6ea6c..b29b7bf0 100644 --- a/receiver/src/main/AndroidManifest.xml +++ b/receiver/src/main/AndroidManifest.xml @@ -8,6 +8,20 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.Activities" /> + android:theme="@style/Theme.Activities" > + + + + + + + + + + + + \ No newline at end of file diff --git a/receiver/src/main/java/otus/gpb/homework/activities/receiver/ReceiverActivity.kt b/receiver/src/main/java/otus/gpb/homework/activities/receiver/ReceiverActivity.kt index b3fe360c..8d3bf8f1 100644 --- a/receiver/src/main/java/otus/gpb/homework/activities/receiver/ReceiverActivity.kt +++ b/receiver/src/main/java/otus/gpb/homework/activities/receiver/ReceiverActivity.kt @@ -2,11 +2,44 @@ package otus.gpb.homework.activities.receiver import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import android.graphics.drawable.Drawable +import android.widget.ImageView +import android.widget.TextView +import androidx.appcompat.content.res.AppCompatResources class ReceiverActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_receiver) + + val titleTextView = findViewById(R.id.titleTextView) + val yearTextView = findViewById(R.id.yearTextView) + val descriptionTextView = findViewById(R.id.descriptionTextView) + val posterImageView = findViewById(R.id.posterImageView) + + // Достаём extras из Intent + val title = intent.getStringExtra("title") ?: "" + val year = intent.getStringExtra("year") ?: "" + val description = intent.getStringExtra("description") ?: "" + + // Заполняем текстовые поля + titleTextView.text = title + yearTextView.text = year + descriptionTextView.text = description + +// - В зависимости от названия фильма отобразите картинку которая лежит в ресурсах(*res/drawable*) в `posterImageView` + val posterResId = when (title) { + "Славные парни" -> R.drawable.niceguys + "Интерстеллар" -> R.drawable.interstellar + else -> android.R.drawable.ic_menu_gallery // заглушка + } +// можно так, работает на всех версиях +// posterImageView.setImageResource(posterResId) +// делаем так по условию (с импортом Drawable): + val drawable = AppCompatResources.getDrawable(this, posterResId) + // Передаём Drawable в ImageView + drawable?.let { posterImageView.setImageDrawable(it) } + } } diff --git a/sender/src/main/AndroidManifest.xml b/sender/src/main/AndroidManifest.xml index 1bddc002..32a19033 100644 --- a/sender/src/main/AndroidManifest.xml +++ b/sender/src/main/AndroidManifest.xml @@ -1,12 +1,27 @@ - - + + + + + android:theme="@style/Theme.Activities" > + + + + + + + + \ No newline at end of file diff --git a/sender/src/main/java/otus/gpb/homework/activities/sender/SenderActivity.kt b/sender/src/main/java/otus/gpb/homework/activities/sender/SenderActivity.kt new file mode 100644 index 00000000..7fabce80 --- /dev/null +++ b/sender/src/main/java/otus/gpb/homework/activities/sender/SenderActivity.kt @@ -0,0 +1,135 @@ +package otus.gpb.homework.activities.sender + +import android.Manifest +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import android.widget.Button +import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.ContextCompat + +//import otus.gpb.homework.activities.sender.databinding.ActivitySenderBinding + +class SenderActivity : AppCompatActivity() { + // Координаты по умолчанию (центр Москвы), если GPS не отдаст ничего + private var geoLatitude = 55.7558 + private var geoLongitude = 37.6176 + private val intentGM = Intent(Intent.ACTION_VIEW, Uri.parse("geo:$geoLatitude,$geoLongitude?q=Рестораны")) + private val geoPermisson = registerForActivityResult(ActivityResultContracts.RequestPermission()) { + isGranted -> + if (isGranted) { + Toast.makeText( + this, + "Получено разрешение на геолокацию", + Toast.LENGTH_LONG + ).show() + // TODO geo из телефона + startActivity(intentGM) + } else { + Toast.makeText( + this, + "Для работы карт нужно разрешение на геолокацию", + Toast.LENGTH_LONG + ).show() + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_sender) + + // Находим кнопки + val buttonGM = findViewById