From d7f4dcd656c56796496cbd4cd438686644ef642b Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 26 Oct 2020 16:13:23 +0100 Subject: [PATCH] set up the new Menu at Edit screen --- .../pro/activities/EditContactActivity.kt | 69 +++++++++++-------- .../main/res/layout/activity_edit_contact.xml | 27 ++++++++ 2 files changed, 67 insertions(+), 29 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt index 9d7e0716..b9bfe0de 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt @@ -12,9 +12,12 @@ import android.os.Bundle import android.provider.ContactsContract.CommonDataKinds import android.provider.ContactsContract.CommonDataKinds.* import android.provider.MediaStore -import android.view.* +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager import android.widget.EditText import android.widget.ImageView +import android.widget.RelativeLayout import android.widget.TextView import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* @@ -69,6 +72,7 @@ class EditContactActivity : ContactActivity() { contact_wrapper.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN contact_wrapper.background = ColorDrawable(config.backgroundColor) + setupMenu() val action = intent.action isThirdPartyIntent = action == Intent.ACTION_EDIT || action == Intent.ACTION_INSERT || action == ADD_NEW_CONTACT_NUMBER @@ -99,33 +103,6 @@ class EditContactActivity : ContactActivity() { window.statusBarColor = Color.TRANSPARENT } - override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.menu_edit_contact, menu) - if (wasActivityInitialized) { - menu.findItem(R.id.delete).isVisible = contact?.id != 0 - menu.findItem(R.id.share).isVisible = contact?.id != 0 - menu.findItem(R.id.open_with).isVisible = contact?.id != 0 && contact?.isPrivate() == false - } - - updateMenuItemColors(menu, true) - return true - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - if (contact == null) { - return true - } - - when (item.itemId) { - R.id.save -> saveContact() - R.id.share -> shareContact(contact!!) - R.id.open_with -> openWith() - R.id.delete -> deleteContact() - else -> return super.onOptionsItemSelected(item) - } - return true - } - override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { super.onActivityResult(requestCode, resultCode, resultData) if (resultCode == RESULT_OK) { @@ -267,7 +244,41 @@ class EditContactActivity : ContactActivity() { numberViewToColor?.setTextColor(adjustedPrimaryColor) emailViewToColor?.setTextColor(adjustedPrimaryColor) wasActivityInitialized = true - invalidateOptionsMenu() + + contact_toolbar.menu.apply { + findItem(R.id.delete).isVisible = contact?.id != 0 + findItem(R.id.share).isVisible = contact?.id != 0 + findItem(R.id.open_with).isVisible = contact?.id != 0 && contact?.isPrivate() == false + } + } + + private fun setupMenu() { + (contact_appbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight + contact_toolbar.menu.apply { + findItem(R.id.save).setOnMenuItemClickListener { + saveContact() + true + } + + findItem(R.id.share).setOnMenuItemClickListener { + shareContact(contact!!) + true + } + + findItem(R.id.open_with).setOnMenuItemClickListener { + openWith() + true + } + + findItem(R.id.delete).setOnMenuItemClickListener { + deleteContact() + true + } + } + + contact_toolbar.setNavigationOnClickListener { + finish() + } } private fun openWith() { diff --git a/app/src/main/res/layout/activity_edit_contact.xml b/app/src/main/res/layout/activity_edit_contact.xml index 4f9f8375..d566b9ee 100644 --- a/app/src/main/res/layout/activity_edit_contact.xml +++ b/app/src/main/res/layout/activity_edit_contact.xml @@ -1,5 +1,6 @@ + + + + + + + +