diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e3d3319b..62cdb406 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/activities/EditProfileActivity.kt b/app/src/main/java/otus/gpb/homework/activities/EditProfileActivity.kt index d55ee922..a2d7a72c 100644 --- a/app/src/main/java/otus/gpb/homework/activities/EditProfileActivity.kt +++ b/app/src/main/java/otus/gpb/homework/activities/EditProfileActivity.kt @@ -1,20 +1,69 @@ package otus.gpb.homework.activities +import android.Manifest import android.graphics.BitmapFactory import android.net.Uri import android.os.Bundle import android.widget.ImageView +import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import android.widget.TextView +import android.content.Intent +import android.widget.Button class EditProfileActivity : AppCompatActivity() { + private val requestCameraPermissionLauncher = + registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGanted -> + if (isGanted) { + imageView.setImageResource(R.drawable.cat) + } else { + showCameraRationaleDialog() + } + } + private var selectedImageUri: Uri? = null + + private val pickImageLauncher = + registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> + uri?.let { + selectedImageUri = it + populateImage(it) + } + } + + private val fillFormLauncher = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == RESULT_OK) { + val data = result.data + findViewById(R.id.textview_name).text = data?.getStringExtra("name") + findViewById(R.id.textview_surname).text = data?.getStringExtra("surname") + findViewById(R.id.textview_age).text = data?.getStringExtra("age") + } + } + + private lateinit var imageView: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit_profile) imageView = findViewById(R.id.imageview_photo) + imageView.setOnClickListener { + val items = arrayOf("Сделать фото", "Выбрать фото") + MaterialAlertDialogBuilder(this).setTitle("Выберите действие") + .setItems(items) { dialog, which -> + when (which) { + 0 -> requestCameraPermissionLauncher.launch(Manifest.permission.CAMERA) + 1 -> pickImageLauncher.launch("image/*") + } + }.show() + findViewById