Skip to content

Commit 824a8d1

Browse files
committed
fix #182, ignore hidden fields during editing instead of removing them
1 parent 15316f0 commit 824a8d1

File tree

3 files changed

+93
-109
lines changed

3 files changed

+93
-109
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import java.util.*
3535
abstract class ContactActivity : SimpleActivity() {
3636
protected var contact: Contact? = null
3737
protected var currentContactPhotoPath = ""
38-
protected var showFields = 0
3938

4039
fun showPhotoPlaceholder(photoView: ImageView) {
4140
val placeholder = resources.getColoredBitmap(R.drawable.ic_person, config.primaryColor.getContrastColor())

app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt

Lines changed: 92 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ class EditContactActivity : ContactActivity() {
5858
super.onCreate(savedInstanceState)
5959
setContentView(R.layout.activity_edit_contact)
6060
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross)
61-
showFields = config.showContactFields
6261

6362
val action = intent.action
6463
isThirdPartyIntent = action == Intent.ACTION_EDIT || action == Intent.ACTION_INSERT_OR_EDIT || action == Intent.ACTION_INSERT
@@ -272,6 +271,7 @@ class EditContactActivity : ContactActivity() {
272271
}
273272

274273
private fun setupFieldVisibility() {
274+
val showFields = config.showContactFields
275275
if (showFields and (SHOW_PREFIX_FIELD or SHOW_FIRST_NAME_FIELD or SHOW_MIDDLE_NAME_FIELD or SHOW_SURNAME_FIELD or SHOW_SUFFIX_FIELD) == 0) {
276276
contact_name_image.beInvisible()
277277
}
@@ -352,161 +352,145 @@ class EditContactActivity : ContactActivity() {
352352
}
353353

354354
private fun setupPhoneNumbers() {
355-
if (showFields and SHOW_PHONE_NUMBERS_FIELD != 0) {
356-
contact!!.phoneNumbers.forEachIndexed { index, number ->
357-
var numberHolder = contact_numbers_holder.getChildAt(index)
358-
if (numberHolder == null) {
359-
numberHolder = layoutInflater.inflate(R.layout.item_edit_phone_number, contact_numbers_holder, false)
360-
contact_numbers_holder.addView(numberHolder)
361-
}
355+
contact!!.phoneNumbers.forEachIndexed { index, number ->
356+
var numberHolder = contact_numbers_holder.getChildAt(index)
357+
if (numberHolder == null) {
358+
numberHolder = layoutInflater.inflate(R.layout.item_edit_phone_number, contact_numbers_holder, false)
359+
contact_numbers_holder.addView(numberHolder)
360+
}
362361

363-
numberHolder!!.apply {
364-
contact_number.setText(number.value)
365-
setupPhoneNumberTypePicker(contact_number_type, number.type)
366-
}
362+
numberHolder!!.apply {
363+
contact_number.setText(number.value)
364+
setupPhoneNumberTypePicker(contact_number_type, number.type)
367365
}
368366
}
369367
}
370368

371369
private fun setupEmails() {
372-
if (showFields and SHOW_EMAILS_FIELD != 0) {
373-
contact!!.emails.forEachIndexed { index, email ->
374-
var emailHolder = contact_emails_holder.getChildAt(index)
375-
if (emailHolder == null) {
376-
emailHolder = layoutInflater.inflate(R.layout.item_edit_email, contact_emails_holder, false)
377-
contact_emails_holder.addView(emailHolder)
378-
}
370+
contact!!.emails.forEachIndexed { index, email ->
371+
var emailHolder = contact_emails_holder.getChildAt(index)
372+
if (emailHolder == null) {
373+
emailHolder = layoutInflater.inflate(R.layout.item_edit_email, contact_emails_holder, false)
374+
contact_emails_holder.addView(emailHolder)
375+
}
379376

380-
emailHolder!!.apply {
381-
contact_email.setText(email.value)
382-
setupEmailTypePicker(contact_email_type, email.type)
383-
}
377+
emailHolder!!.apply {
378+
contact_email.setText(email.value)
379+
setupEmailTypePicker(contact_email_type, email.type)
384380
}
385381
}
386382
}
387383

388384
private fun setupAddresses() {
389-
if (showFields and SHOW_ADDRESSES_FIELD != 0) {
390-
contact!!.addresses.forEachIndexed { index, address ->
391-
var addressHolder = contact_addresses_holder.getChildAt(index)
392-
if (addressHolder == null) {
393-
addressHolder = layoutInflater.inflate(R.layout.item_edit_address, contact_addresses_holder, false)
394-
contact_addresses_holder.addView(addressHolder)
395-
}
385+
contact!!.addresses.forEachIndexed { index, address ->
386+
var addressHolder = contact_addresses_holder.getChildAt(index)
387+
if (addressHolder == null) {
388+
addressHolder = layoutInflater.inflate(R.layout.item_edit_address, contact_addresses_holder, false)
389+
contact_addresses_holder.addView(addressHolder)
390+
}
396391

397-
addressHolder!!.apply {
398-
contact_address.setText(address.value)
399-
setupAddressTypePicker(contact_address_type, address.type)
400-
}
392+
addressHolder!!.apply {
393+
contact_address.setText(address.value)
394+
setupAddressTypePicker(contact_address_type, address.type)
401395
}
402396
}
403397
}
404398

405399
private fun setupNotes() {
406-
if (showFields and SHOW_NOTES_FIELD != 0) {
407-
contact_notes.setText(contact!!.notes)
408-
}
400+
contact_notes.setText(contact!!.notes)
409401
}
410402

411403
private fun setupOrganization() {
412-
if (showFields and SHOW_ORGANIZATION_FIELD != 0) {
413-
contact_organization_company.setText(contact!!.organization.company)
414-
contact_organization_job_position.setText(contact!!.organization.jobPosition)
415-
}
404+
contact_organization_company.setText(contact!!.organization.company)
405+
contact_organization_job_position.setText(contact!!.organization.jobPosition)
416406
}
417407

418408
private fun setupWebsites() {
419-
if (showFields and SHOW_WEBSITES_FIELD != 0) {
420-
contact!!.websites.forEachIndexed { index, website ->
421-
var websitesHolder = contact_websites_holder.getChildAt(index)
422-
if (websitesHolder == null) {
423-
websitesHolder = layoutInflater.inflate(R.layout.item_edit_website, contact_websites_holder, false)
424-
contact_websites_holder.addView(websitesHolder)
425-
}
426-
427-
websitesHolder!!.contact_website.setText(website)
409+
contact!!.websites.forEachIndexed { index, website ->
410+
var websitesHolder = contact_websites_holder.getChildAt(index)
411+
if (websitesHolder == null) {
412+
websitesHolder = layoutInflater.inflate(R.layout.item_edit_website, contact_websites_holder, false)
413+
contact_websites_holder.addView(websitesHolder)
428414
}
415+
416+
websitesHolder!!.contact_website.setText(website)
429417
}
430418
}
431419

432420
private fun setupEvents() {
433-
if (showFields and SHOW_EVENTS_FIELD != 0) {
434-
contact!!.events.forEachIndexed { index, event ->
435-
var eventHolder = contact_events_holder.getChildAt(index)
436-
if (eventHolder == null) {
437-
eventHolder = layoutInflater.inflate(R.layout.item_event, contact_events_holder, false)
438-
contact_events_holder.addView(eventHolder)
439-
}
421+
contact!!.events.forEachIndexed { index, event ->
422+
var eventHolder = contact_events_holder.getChildAt(index)
423+
if (eventHolder == null) {
424+
eventHolder = layoutInflater.inflate(R.layout.item_event, contact_events_holder, false)
425+
contact_events_holder.addView(eventHolder)
426+
}
440427

441-
(eventHolder as ViewGroup).apply {
442-
val contactEvent = contact_event.apply {
443-
getDateTime(event.value, this)
444-
tag = event.value
445-
alpha = 1f
446-
}
428+
(eventHolder as ViewGroup).apply {
429+
val contactEvent = contact_event.apply {
430+
getDateTime(event.value, this)
431+
tag = event.value
432+
alpha = 1f
433+
}
447434

448-
setupEventTypePicker(this, event.type)
435+
setupEventTypePicker(this, event.type)
449436

450-
contact_event_remove.apply {
451-
beVisible()
452-
applyColorFilter(getAdjustedPrimaryColor())
453-
background.applyColorFilter(config.textColor)
454-
setOnClickListener {
455-
resetContactEvent(contactEvent, this)
456-
}
437+
contact_event_remove.apply {
438+
beVisible()
439+
applyColorFilter(getAdjustedPrimaryColor())
440+
background.applyColorFilter(config.textColor)
441+
setOnClickListener {
442+
resetContactEvent(contactEvent, this)
457443
}
458444
}
459445
}
460446
}
461447
}
462448

463449
private fun setupGroups() {
464-
if (showFields and SHOW_GROUPS_FIELD != 0) {
465-
contact_groups_holder.removeAllViews()
466-
val groups = contact!!.groups
467-
groups.forEachIndexed { index, group ->
468-
var groupHolder = contact_groups_holder.getChildAt(index)
469-
if (groupHolder == null) {
470-
groupHolder = layoutInflater.inflate(R.layout.item_edit_group, contact_groups_holder, false)
471-
contact_groups_holder.addView(groupHolder)
450+
contact_groups_holder.removeAllViews()
451+
val groups = contact!!.groups
452+
groups.forEachIndexed { index, group ->
453+
var groupHolder = contact_groups_holder.getChildAt(index)
454+
if (groupHolder == null) {
455+
groupHolder = layoutInflater.inflate(R.layout.item_edit_group, contact_groups_holder, false)
456+
contact_groups_holder.addView(groupHolder)
457+
}
458+
459+
(groupHolder as ViewGroup).apply {
460+
contact_group.apply {
461+
text = group.title
462+
setTextColor(config.textColor)
463+
tag = group.id
464+
alpha = 1f
472465
}
473466

474-
(groupHolder as ViewGroup).apply {
475-
contact_group.apply {
476-
text = group.title
477-
setTextColor(config.textColor)
478-
tag = group.id
479-
alpha = 1f
480-
}
467+
setOnClickListener {
468+
showSelectGroupsDialog()
469+
}
481470

471+
contact_group_remove.apply {
472+
beVisible()
473+
applyColorFilter(getAdjustedPrimaryColor())
474+
background.applyColorFilter(config.textColor)
482475
setOnClickListener {
483-
showSelectGroupsDialog()
484-
}
485-
486-
contact_group_remove.apply {
487-
beVisible()
488-
applyColorFilter(getAdjustedPrimaryColor())
489-
background.applyColorFilter(config.textColor)
490-
setOnClickListener {
491-
removeGroup(group.id)
492-
}
476+
removeGroup(group.id)
493477
}
494478
}
495479
}
480+
}
496481

497-
if (groups.isEmpty()) {
498-
layoutInflater.inflate(R.layout.item_edit_group, contact_groups_holder, false).apply {
499-
contact_group.apply {
500-
alpha = 0.5f
501-
text = getString(R.string.no_groups)
502-
setTextColor(config.textColor)
503-
}
482+
if (groups.isEmpty()) {
483+
layoutInflater.inflate(R.layout.item_edit_group, contact_groups_holder, false).apply {
484+
contact_group.apply {
485+
alpha = 0.5f
486+
text = getString(R.string.no_groups)
487+
setTextColor(config.textColor)
488+
}
504489

505-
contact_groups_holder.addView(this)
506-
contact_group_remove.beGone()
507-
setOnClickListener {
508-
showSelectGroupsDialog()
509-
}
490+
contact_groups_holder.addView(this)
491+
contact_group_remove.beGone()
492+
setOnClickListener {
493+
showSelectGroupsDialog()
510494
}
511495
}
512496
}

app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import kotlinx.android.synthetic.main.item_website.view.*
2323

2424
class ViewContactActivity : ContactActivity() {
2525
private var isViewIntent = false
26+
private var showFields = 0
2627

2728
override fun onCreate(savedInstanceState: Bundle?) {
2829
super.onCreate(savedInstanceState)

0 commit comments

Comments
 (0)