From 170d7438f824e05544772d5beff89bbadbd882ef Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 19 Jun 2018 14:51:19 +0200 Subject: [PATCH] fixing a couple crashes --- .../contacts/activities/ContactActivity.kt | 4 +--- .../contacts/activities/EditContactActivity.kt | 12 ++++++++++-- .../contacts/activities/MainActivity.kt | 12 ++++++++---- .../contacts/activities/ViewContactActivity.kt | 4 ++++ .../contacts/adapters/ContactsAdapter.kt | 5 ++++- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt index da49b099..a7c2629d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt @@ -104,9 +104,7 @@ abstract class ContactActivity : SimpleActivity() { } fun shareContact() { - if (contact != null) { - shareContacts(arrayListOf(contact!!)) - } + shareContacts(arrayListOf(contact!!)) } fun trySendSMS() { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt index a1c655a3..deb3dddb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -94,6 +94,10 @@ class EditContactActivity : ContactActivity() { } override fun onOptionsItemSelected(item: MenuItem): Boolean { + if (contact == null) { + return true + } + when (item.itemId) { R.id.save -> saveContact() R.id.share -> shareContact() @@ -232,7 +236,11 @@ class EditContactActivity : ContactActivity() { Intent().apply { action = Intent.ACTION_EDIT data = getContactPublicUri(contact!!) - startActivity(this) + if (resolveActivity(packageManager) != null) { + startActivity(this) + } else { + toast(R.string.no_app_found) + } } } @@ -713,7 +721,7 @@ class EditContactActivity : ContactActivity() { } private fun saveContact() { - if (isSaving || contact == null) { + if (isSaving) { return } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index 90f0f9e4..806fa429 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -354,10 +354,14 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { return } - val inputStream = contentResolver.openInputStream(uri) - val out = FileOutputStream(tempFile) - inputStream.copyTo(out) - showImportContactsDialog(tempFile.absolutePath) + try { + val inputStream = contentResolver.openInputStream(uri) + val out = FileOutputStream(tempFile) + inputStream.copyTo(out) + showImportContactsDialog(tempFile.absolutePath) + } catch (e: Exception) { + showErrorToast(e) + } } else -> toast(R.string.invalid_file_format) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt index a0cd2ade..9050b7ea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt @@ -57,6 +57,10 @@ class ViewContactActivity : ContactActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { + if (contact == null) { + return true + } + when (item.itemId) { R.id.edit -> editContact(contact!!) R.id.share -> shareContact() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index 6e360228..581e811d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -145,7 +145,10 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList() selectedPositions.sortedDescending().forEach { - contactsToRemove.add(contactItems[it]) + val contact = contactItems.getOrNull(it) + if (contact != null) { + contactsToRemove.add(contact) + } } contactItems.removeAll(contactsToRemove)