mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
differentiate between creating a new contact and editing one
This commit is contained in:
@ -2,35 +2,113 @@ package com.simplemobiletools.contacts.activities
|
||||
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.WindowManager
|
||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.getContrastColor
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS
|
||||
import com.simplemobiletools.contacts.R
|
||||
import com.simplemobiletools.contacts.extensions.config
|
||||
import com.simplemobiletools.contacts.helpers.CONTACT_ID
|
||||
import com.simplemobiletools.contacts.helpers.ContactsHelper
|
||||
import com.simplemobiletools.contacts.models.Contact
|
||||
import kotlinx.android.synthetic.main.activity_contact.*
|
||||
|
||||
class ContactActivity : SimpleActivity() {
|
||||
private var wasActivityInitialized = false
|
||||
private var contact: Contact? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_contact)
|
||||
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross)
|
||||
|
||||
handlePermission(PERMISSION_WRITE_CONTACTS) {
|
||||
if (it) {
|
||||
initContact()
|
||||
} else {
|
||||
toast(R.string.no_contacts_permission)
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initContact() {
|
||||
val contactId = intent.getIntExtra(CONTACT_ID, 0)
|
||||
if (contactId != 0) {
|
||||
contact = ContactsHelper(this).getContactWithId(contactId)
|
||||
if (contact == null) {
|
||||
toast(R.string.unknown_error_occurred)
|
||||
finish()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if (contact != null) {
|
||||
setupEditContact()
|
||||
} else {
|
||||
setupNewContact()
|
||||
}
|
||||
|
||||
contact_photo.applyColorFilter(config.primaryColor.getContrastColor())
|
||||
contact_photo.background = ColorDrawable(config.primaryColor)
|
||||
|
||||
val textColor = config.textColor
|
||||
contact_sms.applyColorFilter(textColor)
|
||||
contact_call.applyColorFilter(textColor)
|
||||
contact_email.applyColorFilter(textColor)
|
||||
contact_send_sms.applyColorFilter(textColor)
|
||||
contact_start_call.applyColorFilter(textColor)
|
||||
contact_send_email.applyColorFilter(textColor)
|
||||
contact_name_image.applyColorFilter(textColor)
|
||||
contact_number_image.applyColorFilter(textColor)
|
||||
contact_email_image.applyColorFilter(textColor)
|
||||
|
||||
contact_photo.setOnClickListener { }
|
||||
contact_sms.setOnClickListener { }
|
||||
contact_call.setOnClickListener { }
|
||||
contact_send_sms.setOnClickListener { }
|
||||
contact_start_call.setOnClickListener { }
|
||||
contact_email.setOnClickListener { }
|
||||
|
||||
updateTextColors(contact_scrollview)
|
||||
wasActivityInitialized = true
|
||||
invalidateOptionsMenu()
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.menu_contact, menu)
|
||||
if (wasActivityInitialized) {
|
||||
menu.findItem(R.id.delete).isVisible = contact?.id != 0
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.save -> saveContact()
|
||||
R.id.delete -> deleteContact()
|
||||
else -> return super.onOptionsItemSelected(item)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
private fun setupEditContact() {
|
||||
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
|
||||
supportActionBar?.title = resources.getString(R.string.edit_contact)
|
||||
contact_name.setText(contact!!.name)
|
||||
contact_number.setText(contact!!.number)
|
||||
contact_email.setText(contact!!.email)
|
||||
}
|
||||
|
||||
private fun setupNewContact() {
|
||||
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
|
||||
supportActionBar?.title = resources.getString(R.string.new_contact)
|
||||
}
|
||||
|
||||
private fun saveContact() {
|
||||
|
||||
}
|
||||
|
||||
private fun deleteContact() {
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user