# HG changeset patch # User David Barts # Date 1612889760 28800 # Node ID 21d2df45d35053942abdcf7b282e4ec32f7418ee # Parent 06825e49f7aa8ccfb7ebc78901b9d12efe6109dc Fix race condition. diff -r 06825e49f7aa -r 21d2df45d350 app/src/main/java/com/bartsent/simpleresizer/EditImage.kt --- a/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Sun Feb 07 21:08:34 2021 -0800 +++ b/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Tue Feb 09 08:56:00 2021 -0800 @@ -10,6 +10,7 @@ import android.os.Environment import android.provider.MediaStore import android.provider.OpenableColumns +import android.util.Log import android.view.MenuItem import android.view.View import android.widget.EditText @@ -36,6 +37,7 @@ super.onCreate(savedInstanceState) binding = ActivityEditImageBinding.inflate(layoutInflater) setContentView(binding.root) + Log.d("EditImage", "onCreate called") } // Cribbed from: https://stackoverflow.com/questions/5568874/how-to-extract-the-file-name-from-uri-returned-from-intent-action-get-content @@ -69,6 +71,7 @@ override fun onResume() { super.onResume() + Log.d("EditImage", "onResume called") // Read the URI, die if we can't. val imageUri = intent?.data diff -r 06825e49f7aa -r 21d2df45d350 app/src/main/java/com/bartsent/simpleresizer/MainActivity.kt --- a/app/src/main/java/com/bartsent/simpleresizer/MainActivity.kt Sun Feb 07 21:08:34 2021 -0800 +++ b/app/src/main/java/com/bartsent/simpleresizer/MainActivity.kt Tue Feb 09 08:56:00 2021 -0800 @@ -11,27 +11,34 @@ class MainActivity : AppCompatActivity() { val GET_IMAGE = 1 private lateinit var binding: ActivityMainBinding + private var showChooser = true override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) } override fun onResume() { super.onResume() - Intent(Intent.ACTION_GET_CONTENT).run { - type = "image/*" - addCategory(Intent.CATEGORY_OPENABLE) - startActivityForResult(this, GET_IMAGE) + if (showChooser) { + Intent(Intent.ACTION_GET_CONTENT).run { + type = "image/*" + addCategory(Intent.CATEGORY_OPENABLE) + startActivityForResult(this, GET_IMAGE) + } + } else { + showChooser = true } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + showChooser = false super.onActivityResult(requestCode, resultCode, data) - Log.d("MainActivity", "onActivityResult called") + Log.d("MainActivity", "onActivityResult called, requestCode=$requestCode, resultCode=$resultCode") if (requestCode == GET_IMAGE) { val imageUri = data?.data + Log.d("MainActivity", "imageUri=${imageUri ?: "(null)"}") if (resultCode == Activity.RESULT_OK && imageUri != null) { Intent(Intent.ACTION_SEND, imageUri, this, EditImage::class.java).run { startActivity(this)