diff --git a/CHANGELOG.md b/CHANGELOG.md index 26af8c2d..0b682a31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ Changelog ========== -Version 6.10.1 *(2020-05-06)* +Version 6.10.2 *(2020-05-06)* ---------------------------- * Removing the READ_CALL_LOG permission diff --git a/app/build.gradle b/app/build.gradle index 40d1e1e1..6eb98b50 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,9 +57,8 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.27.7' + implementation 'com.simplemobiletools:commons:5.28.2' implementation 'joda-time:joda-time:2.10.1' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt index 28671ddb..fe03b1cb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt @@ -16,7 +16,7 @@ import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.Target import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.getContactLetterIcon +import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.extensions.sendEmailIntent @@ -31,7 +31,7 @@ abstract class ContactActivity : SimpleActivity() { protected var currentContactPhotoPath = "" fun showPhotoPlaceholder(photoView: ImageView) { - val placeholder = BitmapDrawable(resources, getContactLetterIcon(contact?.getNameToDisplay() ?: "A")) + val placeholder = BitmapDrawable(resources, SimpleContactsHelper(this).getContactLetterIcon(contact?.getNameToDisplay() ?: "A")) photoView.setImageDrawable(placeholder) currentContactPhotoPath = "" contact?.photo = null diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialpadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialpadActivity.kt index a7e09793..45562442 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialpadActivity.kt @@ -14,6 +14,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.KEY_PHONE import com.simplemobiletools.commons.helpers.REQUEST_CODE_SET_DEFAULT_DIALER import com.simplemobiletools.commons.helpers.isOreoPlus import com.simplemobiletools.contacts.pro.R @@ -21,7 +22,6 @@ import com.simplemobiletools.contacts.pro.adapters.ContactsAdapter import com.simplemobiletools.contacts.pro.dialogs.CallConfirmationDialog import com.simplemobiletools.contacts.pro.extensions.* import com.simplemobiletools.contacts.pro.helpers.ContactsHelper -import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE import com.simplemobiletools.contacts.pro.helpers.LOCATION_DIALPAD import com.simplemobiletools.contacts.pro.models.Contact import com.simplemobiletools.contacts.pro.models.SpeedDial 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 c3039ba5..e95350fa 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 @@ -183,7 +183,7 @@ class EditContactActivity : ContactActivity() { if (((contact!!.id == 0 && action == Intent.ACTION_INSERT) || action == ADD_NEW_CONTACT_NUMBER) && intent.extras != null) { val phoneNumber = getPhoneNumberFromIntent(intent) if (phoneNumber != null) { - contact!!.phoneNumbers.add(PhoneNumber(phoneNumber, DEFAULT_PHONE_NUMBER_TYPE, "", phoneNumber.normalizeNumber())) + contact!!.phoneNumbers.add(PhoneNumber(phoneNumber, DEFAULT_PHONE_NUMBER_TYPE, "", phoneNumber.normalizePhoneNumber())) if (phoneNumber.isNotEmpty() && action == ADD_NEW_CONTACT_NUMBER) { highlightLastPhoneNumber = true } @@ -911,7 +911,7 @@ class EditContactActivity : ContactActivity() { val numberLabel = if (numberType == Phone.TYPE_CUSTOM) numberHolder.contact_number_type.value else "" if (number.isNotEmpty()) { - phoneNumbers.add(PhoneNumber(number, numberType, numberLabel, number.normalizeNumber())) + phoneNumbers.add(PhoneNumber(number, numberType, numberLabel, number.normalizePhoneNumber())) } } return phoneNumbers diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt index a26c63cf..6710812a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt @@ -13,6 +13,7 @@ import androidx.appcompat.widget.SearchView import androidx.core.view.MenuItemCompat import androidx.viewpager.widget.ViewPager import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.KEY_PHONE import com.simplemobiletools.commons.helpers.PERMISSION_GET_ACCOUNTS import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/MainActivity.kt index 0eec4cbd..b569dce4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/MainActivity.kt @@ -36,6 +36,7 @@ import com.simplemobiletools.contacts.pro.extensions.getTempFile import com.simplemobiletools.contacts.pro.extensions.handleGenericContactClick import com.simplemobiletools.contacts.pro.fragments.MyViewPagerFragment import com.simplemobiletools.contacts.pro.helpers.* +import com.simplemobiletools.contacts.pro.helpers.ContactsHelper import com.simplemobiletools.contacts.pro.interfaces.RefreshContactsListener import com.simplemobiletools.contacts.pro.models.Contact import kotlinx.android.synthetic.main.activity_main.* @@ -71,8 +72,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) appLaunched(BuildConfig.APPLICATION_ID) - setupTabColors() + setupTabColors() checkContactPermissions() storeStateVariables() checkWhatsNewDialog() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt index 54fed533..a6ac0829 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt @@ -6,10 +6,10 @@ import android.graphics.drawable.Drawable import android.net.Uri import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor +import com.simplemobiletools.commons.helpers.KEY_PHONE import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.extensions.config import com.simplemobiletools.contacts.pro.helpers.KEY_MAILTO -import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE import com.simplemobiletools.contacts.pro.helpers.LOCATION_CONTACTS_TAB import com.simplemobiletools.contacts.pro.helpers.LOCATION_FAVORITES_TAB diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt index 73dd99bf..c17708ec 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt @@ -244,15 +244,8 @@ class ViewContactActivity : ContactActivity() { } private fun openWith() { - Intent().apply { - action = ContactsContract.QuickContact.ACTION_QUICK_CONTACT - data = getContactPublicUri(contact!!) - if (resolveActivity(packageManager) != null) { - startActivity(this) - } else { - toast(R.string.no_app_found) - } - } + val uri = getContactPublicUri(contact!!) + launchViewContactIntent(uri) } private fun setupFavorite() { @@ -345,6 +338,12 @@ class ViewContactActivity : ContactActivity() { contact_numbers_image.beGone() contact_numbers_holder.beGone() } + + // make sure the Call and SMS buttons are visible if any phone number is shown + if (phoneNumbers.isNotEmpty()) { + contact_send_sms.beVisible() + contact_start_call.beVisible() + } } // a contact cannot have different emails per contact source. Such contacts are handled as separate ones, not duplicates of each other diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt index 7d44abcc..bb51e5eb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt @@ -5,6 +5,9 @@ import android.util.TypedValue import android.view.Menu import android.view.View import android.view.ViewGroup +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.TextView import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.RequestOptions @@ -13,6 +16,7 @@ import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.views.FastScroller @@ -25,7 +29,6 @@ import com.simplemobiletools.contacts.pro.helpers.* import com.simplemobiletools.contacts.pro.interfaces.RefreshContactsListener import com.simplemobiletools.contacts.pro.interfaces.RemoveFromGroupListener import com.simplemobiletools.contacts.pro.models.Contact -import kotlinx.android.synthetic.main.item_contact_with_number.view.* import java.util.* class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList, private val refreshListener: RefreshContactsListener?, @@ -255,26 +258,28 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList(R.id.item_contact_image)) } } private fun setupView(view: View, contact: Contact) { view.apply { - contact_frame?.isSelected = selectedKeys.contains(contact.id) + findViewById(R.id.item_contact_frame)?.isSelected = selectedKeys.contains(contact.id) val fullName = contact.getNameToDisplay() - contact_name.text = if (textToHighlight.isEmpty()) fullName else { + findViewById(R.id.item_contact_name).text = if (textToHighlight.isEmpty()) fullName else { if (fullName.contains(textToHighlight, true)) { fullName.highlightTextPart(textToHighlight, adjustedPrimaryColor) } else { - highlightTextFromNumbers(fullName, textToHighlight, adjustedPrimaryColor) + fullName.highlightTextFromNumbers(textToHighlight, adjustedPrimaryColor) } } - contact_name.setTextColor(textColor) - contact_name.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize) + findViewById(R.id.item_contact_name).apply { + setTextColor(textColor) + setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize) + } - if (contact_number != null) { + if (findViewById(R.id.item_contact_number) != null) { val phoneNumberToUse = if (textToHighlight.isEmpty()) { contact.phoneNumbers.firstOrNull() } else { @@ -282,17 +287,19 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList(R.id.item_contact_number).apply { + text = if (textToHighlight.isEmpty()) numberText else numberText.highlightTextPart(textToHighlight, adjustedPrimaryColor, false, true) + setTextColor(textColor) + setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize) + } } - contact_tmb.beVisibleIf(showContactThumbnails) + findViewById(R.id.item_contact_image).beVisibleIf(showContactThumbnails) if (showContactThumbnails) { - val placeholderImage = BitmapDrawable(resources, context.getContactLetterIcon(fullName)) + val placeholderImage = BitmapDrawable(resources, SimpleContactsHelper(context).getContactLetterIcon(fullName)) if (contact.photoUri.isEmpty() && contact.photo == null) { - contact_tmb.setImageDrawable(placeholderImage) + findViewById(R.id.item_contact_image).setImageDrawable(placeholderImage) } else { val options = RequestOptions() .signature(ObjectKey(contact.getSignatureKey())) @@ -310,7 +317,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList, val group_tmb.beVisibleIf(showContactThumbnails) if (showContactThumbnails) { - group_tmb.setImageDrawable(activity.getColoredGroupIcon(group.title)) + group_tmb.setImageDrawable(SimpleContactsHelper(activity).getColoredGroupIcon(group.title)) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SelectContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SelectContactsAdapter.kt index 65e2025e..451cdb68 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SelectContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SelectContactsAdapter.kt @@ -11,12 +11,12 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.signature.ObjectKey import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.activities.SimpleActivity import com.simplemobiletools.contacts.pro.extensions.config -import com.simplemobiletools.contacts.pro.helpers.highlightTextFromNumbers import com.simplemobiletools.contacts.pro.models.Contact import kotlinx.android.synthetic.main.item_add_favorite_with_number.view.* import java.util.* @@ -109,7 +109,7 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis if (fullName.contains(textToHighlight, true)) { fullName.highlightTextPart(textToHighlight, adjustedPrimaryColor) } else { - highlightTextFromNumbers(fullName, textToHighlight, adjustedPrimaryColor) + fullName.highlightTextFromNumbers(textToHighlight, adjustedPrimaryColor) } } @@ -146,7 +146,7 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis else -> contact.firstName } - val placeholderImage = BitmapDrawable(resources, context.getContactLetterIcon(avatarName)) + val placeholderImage = BitmapDrawable(resources, SimpleContactsHelper(context).getContactLetterIcon(avatarName)) if (contact.photoUri.isEmpty() && contact.photo == null) { contact_tmb.setImageDrawable(placeholderImage) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SpeedDialAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SpeedDialAdapter.kt index 78e2fbfb..b2cc64d3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SpeedDialAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/SpeedDialAdapter.kt @@ -19,7 +19,7 @@ class SpeedDialAdapter(activity: SimpleActivity, var speedDialValues: ArrayList< setupDragListener(true) } - override fun getActionMenuId() = R.menu.cab_speed_dial + override fun getActionMenuId() = R.menu.cab_delete_only override fun prepareActionMode(menu: Menu) {} diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt index 99f13307..6c9943ec 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt @@ -9,7 +9,6 @@ import android.telecom.TelecomManager import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.PERMISSION_CALL_PHONE import com.simplemobiletools.commons.helpers.PERMISSION_READ_PHONE_STATE import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.contacts.pro.BuildConfig @@ -30,25 +29,6 @@ fun SimpleActivity.startCallIntent(recipient: String) { } } -fun SimpleActivity.launchCallIntent(recipient: String, handle: PhoneAccountHandle?) { - handlePermission(PERMISSION_CALL_PHONE) { - val action = if (it) Intent.ACTION_CALL else Intent.ACTION_DIAL - Intent(action).apply { - data = Uri.fromParts("tel", recipient, null) - - if (handle != null) { - putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, handle) - } - - if (resolveActivity(packageManager) != null) { - startActivity(this) - } else { - toast(R.string.no_app_found) - } - } - } -} - fun SimpleActivity.tryStartCall(contact: Contact) { if (config.showCallConfirmation) { CallConfirmationDialog(this, contact.getNameToDisplay()) { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt index ca8dd026..edefd50a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt @@ -17,6 +17,7 @@ import com.simplemobiletools.commons.extensions.telecomManager import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS +import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.contacts.pro.BuildConfig import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.activities.EditContactActivity @@ -310,7 +311,7 @@ fun Context.getContactPublicUri(contact: Contact): Uri { val lookupKey = if (contact.isPrivate()) { "local_${contact.id}" } else { - ContactsHelper(this).getContactLookupKey(contact.id.toString()) + SimpleContactsHelper(this).getContactLookupKey(contact.id.toString()) } return Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/String.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/String.kt index beda894f..9f775100 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/String.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/String.kt @@ -1,6 +1,5 @@ package com.simplemobiletools.contacts.pro.extensions -import android.telephony.PhoneNumberUtils import android.widget.TextView import com.simplemobiletools.commons.helpers.getDateFormats import org.joda.time.DateTime @@ -33,5 +32,3 @@ fun String.getDateTimeFromDateString(viewToUpdate: TextView? = null): DateTime { } return date } - -fun String.normalizeNumber() = PhoneNumberUtils.normalizeNumber(this) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/InsertOrEditContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/InsertOrEditContactsFragment.kt deleted file mode 100644 index 99d5f28f..00000000 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/InsertOrEditContactsFragment.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.simplemobiletools.contacts.pro.fragments - -import android.content.Context -import android.util.AttributeSet - -class InsertOrEditContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) { - override fun fabClicked() {} - - override fun placeholderClicked() {} -} diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/CallManager.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/CallManager.kt index eebc769d..5c26710d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/CallManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/CallManager.kt @@ -5,8 +5,7 @@ import android.content.Context import android.net.Uri import android.telecom.Call import android.telecom.VideoProfile -import com.simplemobiletools.commons.extensions.getNameFromPhoneNumber -import com.simplemobiletools.commons.extensions.getPhotoUriFromPhoneNumber +import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.contacts.pro.extensions.contactsDB import com.simplemobiletools.contacts.pro.models.CallContact @@ -63,8 +62,8 @@ class CallManager { if (uri.startsWith("tel:")) { val number = uri.substringAfter("tel:") callContact.number = number - callContact.name = context.getNameFromPhoneNumber(number) - callContact.photoUri = context.getPhotoUriFromPhoneNumber(number) + callContact.name = SimpleContactsHelper(context).getNameFromPhoneNumber(number) + callContact.photoUri = SimpleContactsHelper(context).getPhotoUriFromPhoneNumber(number) if (callContact.name == callContact.number) { ensureBackgroundThread { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt index dedf47b3..3fdf1044 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt @@ -1,10 +1,6 @@ package com.simplemobiletools.contacts.pro.helpers import android.provider.ContactsContract.CommonDataKinds -import android.telephony.PhoneNumberUtils -import android.text.Spannable -import android.text.SpannableString -import android.text.style.ForegroundColorSpan import com.simplemobiletools.commons.extensions.normalizeString import com.simplemobiletools.contacts.pro.models.LocalContact @@ -40,7 +36,6 @@ const val ACCEPT_CALL = PATH + "accept_call" const val DECLINE_CALL = PATH + "decline_call" // extras used at third party intents -const val KEY_PHONE = "phone" const val KEY_NAME = "name" const val KEY_EMAIL = "email" const val KEY_MAILTO = "mailto" @@ -123,18 +118,3 @@ const val WHATSAPP_PACKAGE = "com.whatsapp" fun getEmptyLocalContact() = LocalContact(0, "", "", "", "", "", "", null, "", ArrayList(), ArrayList(), ArrayList(), 0, ArrayList(), "", ArrayList(), "", "", ArrayList(), ArrayList()) fun getProperText(text: String, shouldNormalize: Boolean) = if (shouldNormalize) text.normalizeString() else text - -fun highlightTextFromNumbers(name: String, textToHighlight: String, adjustedPrimaryColor: Int): SpannableString { - val spannableString = SpannableString(name) - val digits = PhoneNumberUtils.convertKeypadLettersToDigits(name) - if (digits.contains(textToHighlight)) { - val startIndex = digits.indexOf(textToHighlight, 0, true) - val endIndex = Math.min(startIndex + textToHighlight.length, name.length) - try { - spannableString.setSpan(ForegroundColorSpan(adjustedPrimaryColor), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) - } catch (ignored: IndexOutOfBoundsException) { - } - } - - return spannableString -} diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/ContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/ContactsHelper.kt index 0643b4a8..f0b2ae1a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/ContactsHelper.kt @@ -14,13 +14,13 @@ import android.text.TextUtils import android.util.SparseArray import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* +import com.simplemobiletools.commons.overloads.times import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.extensions.* import com.simplemobiletools.contacts.pro.models.* import com.simplemobiletools.contacts.pro.models.Email import com.simplemobiletools.contacts.pro.models.Event import com.simplemobiletools.contacts.pro.models.Organization -import com.simplemobiletools.contacts.pro.overloads.times import java.util.* import kotlin.collections.ArrayList @@ -265,7 +265,7 @@ class ContactsHelper(val context: Context) { context.queryCursor(uri, projection, selection, selectionArgs, showErrors = true) { cursor -> val id = cursor.getIntValue(Data.RAW_CONTACT_ID) val number = cursor.getStringValue(Phone.NUMBER) ?: return@queryCursor - val normalizedNumber = cursor.getStringValue(Phone.NORMALIZED_NUMBER) ?: number.normalizeNumber() + val normalizedNumber = cursor.getStringValue(Phone.NORMALIZED_NUMBER) ?: number.normalizePhoneNumber() val type = cursor.getIntValue(Phone.TYPE) val label = cursor.getStringValue(Phone.LABEL) ?: "" @@ -516,7 +516,7 @@ class ContactsHelper(val context: Context) { return groups } - private fun getQuestionMarks() = "?,".times(displayContactSources.filter { it.isNotEmpty() }.size).trimEnd(',') + private fun getQuestionMarks() = ("?," * displayContactSources.filter { it.isNotEmpty() }.size).trimEnd(',') private fun getSourcesSelection(addMimeType: Boolean = false, addContactId: Boolean = false, useRawContactId: Boolean = true): String { val strings = ArrayList() @@ -1351,24 +1351,6 @@ class ContactsHelper(val context: Context) { fileDescriptor.close() } - fun getContactLookupKey(contactId: String): String { - val uri = Data.CONTENT_URI - val projection = arrayOf(Data.CONTACT_ID, Data.LOOKUP_KEY) - val selection = "${Data.MIMETYPE} = ? AND ${Data.RAW_CONTACT_ID} = ?" - val selectionArgs = arrayOf(StructuredName.CONTENT_ITEM_TYPE, contactId) - - val cursor = context.contentResolver.query(uri, projection, selection, selectionArgs, null) - cursor?.use { - if (cursor.moveToFirst()) { - val id = cursor.getIntValue(Data.CONTACT_ID) - val lookupKey = cursor.getStringValue(Data.LOOKUP_KEY) - return "$lookupKey/$id" - } - } - - return "" - } - fun getContactMimeTypeId(contactId: String, mimeType: String): String { val uri = Data.CONTENT_URI val projection = arrayOf(Data._ID, Data.RAW_CONTACT_ID, Data.MIMETYPE) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt index fedde9e3..58d219d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt @@ -5,12 +5,12 @@ import android.graphics.BitmapFactory import android.provider.ContactsContract.CommonDataKinds import android.provider.ContactsContract.CommonDataKinds.* import android.widget.Toast +import com.simplemobiletools.commons.extensions.normalizePhoneNumber import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.contacts.pro.activities.SimpleActivity import com.simplemobiletools.contacts.pro.extensions.getCachePhoto import com.simplemobiletools.contacts.pro.extensions.getCachePhotoUri import com.simplemobiletools.contacts.pro.extensions.groupsDB -import com.simplemobiletools.contacts.pro.extensions.normalizeNumber import com.simplemobiletools.contacts.pro.helpers.VcfImporter.ImportResult.* import com.simplemobiletools.contacts.pro.models.* import com.simplemobiletools.contacts.pro.models.Email @@ -60,7 +60,7 @@ class VcfImporter(val activity: SimpleActivity) { "" } - phoneNumbers.add(PhoneNumber(number, type, label, number.normalizeNumber())) + phoneNumbers.add(PhoneNumber(number, type, label, number.normalizePhoneNumber())) } val emails = ArrayList() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt index cbe82e81..ab8eba32 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt @@ -2,11 +2,11 @@ package com.simplemobiletools.contacts.pro.models import android.graphics.Bitmap import android.telephony.PhoneNumberUtils +import com.simplemobiletools.commons.extensions.normalizePhoneNumber import com.simplemobiletools.commons.extensions.normalizeString import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME import com.simplemobiletools.commons.helpers.SORT_DESCENDING -import com.simplemobiletools.contacts.pro.extensions.normalizeNumber import com.simplemobiletools.contacts.pro.helpers.SMT_PRIVATE data class Contact(var id: Int, var prefix: String, var firstName: String, var middleName: String, var surname: String, var suffix: String, var nickname: String, @@ -109,8 +109,8 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m fun getStringToCompare(): String { return copy(id = 0, prefix = "", firstName = getNameToDisplay().toLowerCase(), middleName = "", surname = "", suffix = "", nickname = "", photoUri = "", - phoneNumbers = ArrayList(), emails = ArrayList(), events = ArrayList(), source = "", addresses = ArrayList(), starred = 0, contactId = 0, - thumbnailUri = "", notes = "", groups = ArrayList(), websites = ArrayList(), organization = Organization("", ""), IMs = ArrayList()).toString() + phoneNumbers = ArrayList(), emails = ArrayList(), events = ArrayList(), source = "", addresses = ArrayList(), starred = 0, contactId = 0, + thumbnailUri = "", notes = "", groups = ArrayList(), websites = ArrayList(), organization = Organization("", ""), IMs = ArrayList()).toString() } fun getHashToCompare() = getStringToCompare().hashCode() @@ -125,12 +125,12 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m fun doesContainPhoneNumber(text: String, convertLetters: Boolean): Boolean { return if (text.isNotEmpty()) { - val normalizedText = if (convertLetters) text.normalizeNumber() else text + val normalizedText = if (convertLetters) text.normalizePhoneNumber() else text phoneNumbers.any { PhoneNumberUtils.compare(it.normalizedNumber, normalizedText) || it.value.contains(text) || it.normalizedNumber?.contains(normalizedText) == true || - it.value.normalizeNumber().contains(normalizedText) + it.value.normalizePhoneNumber().contains(normalizedText) } } else { false diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/overloads/String.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/overloads/String.kt deleted file mode 100644 index 74944090..00000000 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/overloads/String.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.simplemobiletools.contacts.pro.overloads - -operator fun String.times(x: Int): String { - val stringBuilder = StringBuilder() - for (i in 1..x) { - stringBuilder.append(this) - } - return stringBuilder.toString() -} diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 457755c9..fbfd5d15 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -33,6 +33,29 @@ + + + + + + - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/item_contact_without_number.xml b/app/src/main/res/layout/item_contact_without_number.xml deleted file mode 100644 index 86e22567..00000000 --- a/app/src/main/res/layout/item_contact_without_number.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/menu/cab_speed_dial.xml b/app/src/main/res/menu/cab_speed_dial.xml deleted file mode 100644 index abf9dbfa..00000000 --- a/app/src/main/res/menu/cab_speed_dial.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 901fc2d9..f586bdab 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -66,6 +66,7 @@ إظهار مربع حوار تأكيد الاتصال قبل بدء مكالمة إظهار جهات الإتصال التي لديها أرقام هواتف فقط عرض الحروف على لوحة الاتصال + Show private contacts to Simple Dialer and Simple SMS Messenger المنزل @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index bd20cb6d..5cc441e2 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -66,6 +66,7 @@ Zəngə başlamazdan əvvəl zəng təsdiq pəncərəsi göstər Show only contacts with phone numbers Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger Ev @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 7b0609b3..d7563cc9 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -66,6 +66,7 @@ Před zahájením hovoru zobrazit potvrzovací dialog Zobrazit jen kontakty s telefonními čísly Zobrazit na číselníku písmena + Show private contacts to Simple Dialer and Simple SMS Messenger Domov @@ -141,13 +142,6 @@ Kontakt bude vymazán ze všech zdrojů kontaktů. - - - %d kontakt - %d kontakty - %d kontaktů - - %d skupinu %d skupiny diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 11602e22..4217b248 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -66,6 +66,7 @@ Dangos deialog i gadarnhau cyn gwneud galwad Dangos dim ond cysylltiadau gyda rhifau ffôn Dangos llythrennau ar y pad deialu + Show private contacts to Simple Dialer and Simple SMS Messenger Cartref @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index c0212f24..6b1f2396 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -66,6 +66,7 @@ Vis en opkaldsbekræftelsesdialog før du starter et opkald Vis kun kontakter med telefonnumre Vis bogstaver på tastaturet + Show private contacts to Simple Dialer and Simple SMS Messenger Hjem @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dc060179..f9781ed0 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -66,6 +66,7 @@ Bestätigungsdialog zeigen, bevor ein Anruf durchgeführt wird Nur Kontakte mit Telefonnummern anzeigen Buchstaben im Wahlfeld anzeigen + Show private contacts to Simple Dialer and Simple SMS Messenger Privat @@ -141,12 +142,6 @@ Der Kontakt wird von allen Kontaktquellen entfernt. - - - %d Kontakt - %d Kontakte - - %d Gruppe %d Gruppen diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 6ca1a659..c7fac1a2 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -18,7 +18,7 @@ Προσθήκη σε μια υπάρχουσα Επαφή this link. Thanks! + Η ενότητα της εφαρμογής που είναι υπεύθυνη για το χειρισμό κλήσεων έπρεπε να μετακινηθεί σε μια ξεχωριστή νέα εφαρμογή Simple Dialer, κάνετε λήψη από αυτόν τον σύνδεσμο. Ευχαριστώ! ]]> @@ -66,6 +66,7 @@ Εμφάνιση διαλόγου επιβεβαίωσης πριν από την έναρξη μιας κλήσης Προβολή όλων των Επαφών με αριθμούς τηλεφώνου Εμφάνιση γραμμάτων στην πληκτρολόγιο + Εμφάνιση ιδιωτικών επαφών σε Simple Dialer και Simple SMS Messenger Οικία @@ -141,12 +142,6 @@ Η επαφή θα καταργηθεί από όλες τις πηγές επαφών. - - - %d επαφή - %d επαφές - - %d ομάδα %d ομάδες diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d0394e0f..63225a9a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -66,6 +66,7 @@ Mostrar un cuadro de confirmación antes de iniciar una llamada Solo mostrar contactos con números telefónicos Mostrar letras en el teclado de marcación + Show private contacts to Simple Dialer and Simple SMS Messenger Casa @@ -141,12 +142,6 @@ El contacto será eliminado de todos los orígenes de contactos. - - - %d contacto - %d contactos - - %d groupo %d groupos diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 7fe18ad5..3681c434 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -66,6 +66,7 @@ Erakutsi egiaztatze mezua dei bat hasi baino lehen Show only contacts with phone numbers Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger Etxea @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 2f01bc7f..c36bb398 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -66,6 +66,7 @@ Näytä puhelun vahvistusruutu Näytä ainoastaan numerolliset kontaktit Näytä kirjaimet puhelimessa + Show private contacts to Simple Dialer and Simple SMS Messenger Koti @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index fb0ded42..804d67ac 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -66,6 +66,7 @@ Afficher une demande de confirmation avant de démarrer un appel Afficher uniquement les contacts avec un numéro de téléphone Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger Maison @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 2c34e9e3..b2ef9df5 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -66,6 +66,7 @@ Pokažite dijaloški okvir za potvrdu poziva prije pokretanja poziva Prikaži samo kontakte s telefonskim brojevima Prikaži slova na telefonskoj tipkovnici + Show private contacts to Simple Dialer and Simple SMS Messenger Kućni @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index de1cb189..e30bb0e0 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -66,6 +66,7 @@ Jóváhagyás kérése telefonhívás indítása előtt Csak telefonszámot tartalmazó névjegyek kijelzése Betűk kijelzése a tárcsázón + Show private contacts to Simple Dialer and Simple SMS Messenger Otthon @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 0be1075f..33beec77 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -66,6 +66,7 @@ Tampilkan dialog konfirmasi panggilan sebelum melakukan panggilan Hanya tampilkan kontak dengan nomor telepon Tampilkan huruf pada tombol dial + Show private contacts to Simple Dialer and Simple SMS Messenger Rumah @@ -141,12 +142,6 @@ Kontak akan dihapus dari semua sumber kontak. - - - %d kontak - %d kontak - - %d grup %d grup diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 0be1075f..33beec77 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -66,6 +66,7 @@ Tampilkan dialog konfirmasi panggilan sebelum melakukan panggilan Hanya tampilkan kontak dengan nomor telepon Tampilkan huruf pada tombol dial + Show private contacts to Simple Dialer and Simple SMS Messenger Rumah @@ -141,12 +142,6 @@ Kontak akan dihapus dari semua sumber kontak. - - - %d kontak - %d kontak - - %d grup %d grup diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 6fc646ac..9db3a36e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -66,6 +66,7 @@ Mostra un messaggio di conferma prima di iniziare una chiamata Mostra solamente i contatti con almeno un numero telefonico Mostra lettere nel compositore + Show private contacts to Simple Dialer and Simple SMS Messenger Casa @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 71564ea2..e0a7981f 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -66,6 +66,7 @@ 発信する前に確認ダイアログを表示する 電話番号が登録された連絡先のみ表示する Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger 自宅 @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 25a109e9..1311cf74 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -66,6 +66,7 @@ Show a call confirmation dialog before initiating a call Show only contacts with phone numbers Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index f01d13f1..6e298abd 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -66,6 +66,7 @@ Show a call confirmation dialog before initiating a call Show only contacts with phone numbers Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger Namų @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6fa515ea..10f1a0f5 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -18,7 +18,7 @@ Aan bestaand contact toevoegen this link. Thanks! + Het gedeelte om telefoongesprekken te beheren moest worden afgesplitst naar een aparte app genaamd Eenvoudige Telefoon. Download de app via this link. Bedankt! ]]> @@ -66,6 +66,7 @@ Om bevestiging vragen voor het bellen Alleen contacten met telefoonnummers tonen Letters op het toetsenblok tonen + Privécontacten in Eenvoudige Telefoon en Eenvoudige Berichten tonen Thuis @@ -108,16 +109,16 @@ Bellen - Accept - Decline - Unknown Caller - Is Calling… - Dialing… - Call Ended - Call Ending - Ongoing Call - Select a SIM for this call - Always use this SIM for this number + Beantwoorden + Weigeren + Nummer onbekend + Inkomend gesprek… + Bellen… + Gesprek beëindigd + Gesprek beëindigen + Gesprek gaande + Selecteer de SIM-kaart voor dit gesprek + Voor dit nummer altijd deze SIM-kaart gebruiken Snelkiezer @@ -141,12 +142,6 @@ De contactpersoon zal worden verwijderd uit alle accounts. - - - %d contact - %d contacten - - %d groep %d groepen @@ -160,21 +155,21 @@ Eenvoudig Adresboek Pro - Snel contacten beheren - Easy and quick contact management with no ads, handles groups and favorites too. + Eenvoudig en snel contactbeheer met groepen en favorieten, zonder advertenties - A lightweight app for managing your contacts loved by millions of people. The contacts can be stored on your device only, but also synchronized via Google, or other accounts. + Een eenvoudige app om contacten aan te maken en te beheren. Contacten kunnen lokaal opgeslagen worden, of gesynchroniseerd via Google en andere accounts. - You can use it for managing user emails and events too. It has the ability to sort/filter by multiple parameters, optionally display surname as the first name. + De app is ook te gebruiken voor het beheren van e-mailadressen en gebeurtenissen gekoppeld aan contacten. Sorteren en filteren is mogelijk op basis van verschillende parameters en zowel voor- als achternaam kan als eerste worden getoond. - You can display your favorite contacts or groups on a separate list. Groups can be used for sending out batch emails or SMS, to save you some time, you can rename them easily. + Favoriete contacten kunnen in een aparte lijst worden getoond. E-mails of sms\'jes kunnen naar hele groepen worden gestuurd om tijd te besparen. - It contains handy buttons for calling, or texting your contacts. All visible fields can be customized as you wish, you can easily hide the unused ones. The search function will search the given string at every visible contact field, to make you find your desired contact easily. + Er zijn knoppen om direct een contacpersoon te bellen of te sms\'en. De zichtbaarheid van de gegevensvelden zijn naar voorkeur aan te passen, zodat ongebruikte velden geen ruimte in beslag nemen. De zoekfunctie zal in alle zichtbare velden speuren naar de opgegeven tekst. - There is a lightweight dialpad at your service too, with smart contact suggestions. + De app bevat ook een lichtgewicht telefoonkiezer met snelle contactsuggesties tijdens het invoeren. - It supports exporting/importing contacts in vCard format to .vcf files, for easy migrations or backing up your data. + Het importeren/exporteren van contacten in vCard-formaat (.vcf) wordt ondersteund voor het gemakkelijk overzetten of backuppen van de gegevens. - With this modern and stable contacts manager you can protect your contacts by not sharing them with other apps, so you can keep your contacts private. + Met deze moderne en stabiele app kunnen contactpersonen worden beschermd door ze niet te delen met andere apps en zo privé te houden. Like the contact source, you can also easily change the contact name, email, phone number, address, organization, groups and many other customizable fields. You can use it for storing contact events too, like birthdays, anniversaries, or any other custom ones. diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 77b68af1..82013eff 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -66,6 +66,7 @@ Pokazuj okno potwierdzenia zadzwonienia przed zainicjonowaniem połączenia Pokazuj wyłącznie kontakty z numerami telefonów Pokazuj litery na panelu wybierania + Show private contacts to Simple Dialer and Simple SMS Messenger Dom @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index c717fa04..9b26500d 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -66,6 +66,7 @@ Mostrar diálogo para confirmar a chamada antes de ligar Mostar apenas os contatos com número de telefone Mostrar letras no discador + Show private contacts to Simple Dialer and Simple SMS Messenger Residencial @@ -141,12 +142,6 @@ O contato será removido de todas removido de todas as fontes de contato. - - - %d contato - %d contatos - - %d grupo %d grupos diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 2a8bf3cf..3ad0404a 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -15,10 +15,10 @@ Enviar e-mail para o grupo Ligar a %s Criar novo contacto - Adicionar a contacto existente + Adicionar a um contacto existente this link. Thanks! + A parte da aplicação responsável pela gestão de chamadas foi movida para uma nova aplicação com o nome Simple Dialer. Pode descarregar a aplicação aqui. Obrigado! ]]> @@ -66,6 +66,7 @@ Mostrar diálogo para confirmar a chamada Mostrar apenas contactos com número de telefone Mostrar letras no marcador + Show private contacts to Simple Dialer and Simple SMS Messenger Pessoal @@ -104,20 +105,20 @@ Marcador - Adicionar número a um contacto + Adicionar número a um contacto existente Marcador - Accept - Decline - Unknown Caller - Is Calling… - Dialing… - Call Ended - Call Ending - Ongoing Call - Select a SIM for this call - Always use this SIM for this number + Aceitar + Recusar + Desconhecido + Está a chamar… + A ligar… + Chamada terminada + A terminar chamada + Chamada em curso + Selecione um SIM para esta chamada + Utilizar sempre este SIM para ligar a este número Ligação rápida @@ -141,12 +142,6 @@ O contacto será apagado de todas as origens. - - - %d contacto - %d contactos - - %d grupo %d grupos @@ -190,10 +185,10 @@ Não contém anúncios ou permissões desnecessárias. É totalmente open source e permite personalização de cores. - Check out the full suite of Simple Tools here: + Consulte todas as aplicações Simple Tools aqui: https://www.simplemobiletools.com - Standalone website of Simple Contacts Pro: + Site da aplicação Simple Contacts Pro: https://www.simplemobiletools.com/contacts Facebook: diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5bab82be..f43e1fac 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -66,6 +66,7 @@ Показывать диалог подтверждения вызова Показывать только контакты с номерами телефонов Показывать буквы на кнопках набора номера + Show private contacts to Simple Dialer and Simple SMS Messenger Домашний @@ -141,13 +142,6 @@ Контакт будет удалён из всех источников контактов. - - - %d контакт - %d контакта - %d контактов - - %d группу %d группы diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 512c32b6..01a3eb19 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -66,6 +66,7 @@ Zobraziť pred spustením hovoru okno na jeho potvrdenie Zobraziť iba kontakty s telefónnymi číslami Zobraziť na číselníku písmená + Zobraziť súkromné kontakty Jednoduchému Telefónu a Jednoduchému Správcovi Súborov Domov @@ -141,13 +142,6 @@ Kontakt bude vymazaný zo všetkých zdrojov kontaktov. - - - %d kontakt - %d kontakty - %d kontaktov - - %d skupinu %d skupiny diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 9c52278d..f9d3da3d 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -66,6 +66,7 @@ Visa en bekräftelsedialogruta före uppringning Visa bara kontakter med telefonnummer Visa bokstäver på knappsatsen + Show private contacts to Simple Dialer and Simple SMS Messenger Hem @@ -141,12 +142,6 @@ Kontakten kommer att tas bort från alla kontaktkällor. - - - %d kontakt - %d kontakter - - %d grupp %d grupper diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 7fd42ff4..783e66cd 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -18,7 +18,7 @@ Mevcut bir kişiye ekle this link. Thanks! + Uygulamanın Çağrı işlemeden sorumlu kısmı, ayrı Basit Çevirici adlı yeni bir uygulamaya taşındı, lütfen bu bağlantıdan indirin. Teşekkürler! ]]> @@ -66,6 +66,7 @@ Arama başlatmadan önce arama onayı penceresi göster Sadece telefon numaralarını içeren kişileri göster Tuş takımında harfleri göster + Özel kişileri Basit Çevirici ve Basit SMS Messenger\'a göster Ev @@ -141,12 +142,6 @@ Kişi tüm kişi kaynaklarından kaldırılacak. - - - %d kişi - %d kişi - - %d grup %d grup diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c85cf98b..0be8b340 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -66,6 +66,7 @@ Показувати діалог підтвердження виклику Показувати лише контакти з телефонними номерами Показувати літери на панелі набору + Show private contacts to Simple Dialer and Simple SMS Messenger Домашній @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 167590a2..416866b7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -66,6 +66,7 @@ 开始通话前显示通话确认框 只显示含有电话话码的联系人 在拨号界面上显示字母 + Show private contacts to Simple Dialer and Simple SMS Messenger 住家 @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 275a1662..e1ea7e75 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -66,6 +66,7 @@ 開始通話前顯示通話確認框 只顯示含有電話話碼的聯絡人 在撥號畫面上顯示字母 + Show private contacts to Simple Dialer and Simple SMS Messenger 住家 @@ -141,12 +142,6 @@ 這聯絡人將從全部通訊錄來源移除。 - - - %d個聯絡人 - %d個聯絡人 - - %d個群組 %d個群組 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index e817ce66..e4a6c4ad 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,7 +3,6 @@ 88dp 48dp 40dp - 60dp 60dp 72dp 30dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8cda4ff5..ff8a0308 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ Show a call confirmation dialog before initiating a call Show only contacts with phone numbers Show letters on the dialpad + Show private contacts to Simple Dialer and Simple SMS Messenger Home @@ -141,12 +142,6 @@ The contact will be removed from all contact sources. - - - %d contact - %d contacts - - %d group %d groups diff --git a/fastlane/metadata/android/ru/full_description.txt b/fastlane/metadata/android/ru/full_description.txt index cfe8c074..956518b1 100644 --- a/fastlane/metadata/android/ru/full_description.txt +++ b/fastlane/metadata/android/ru/full_description.txt @@ -1,7 +1,39 @@ -Простое приложение для создания и управления контактами из любого источника. Контакты могут быть сохранены только на вашем устройстве, а также синхронизированы через Google или другие учётные записи. Вы можете отображать свои любимые контакты в отдельном списке. +Лёгкое приложение для управления контактами, которое нравится миллионам людей. Контакты могут храниться только на устройстве, но также синхронизироваться через Google или другие аккаунты. -Вы можете использовать его для управления электронной почтой и событиями контактов. Приложение имеет возможность сортировать/фильтровать по нескольким параметрам, по желанию отображать фамилию в качестве имени. +Вы также можете использовать его для управления электронной почтой и событиями контактов. Есть возможность сортировать/фильтровать по нескольким параметрам, при необходимости отображать фамилию в качестве имени. -Не содержит рекламы или ненужных разрешений, полностью с открытым исходным кодом. Есть возможность настраивать цвета. +Избранные контакты или группы можно отобразить в отдельном списке. Группы можно использовать для для экономии времени при множественной отправке электронных писем или SMS. Для удобства группы можно переименовывать. -Это приложение — всего лишь частица из большой серии приложений. Вы можете найти остальные на https://www.simplemobiletools.com +В приложении есть удобные кнопки для вызова или отправки текстовых сообщений вашим контактам. Все отображаемые поля настраиваются по вашему усмотрению, можно скрыть неиспользуемые. Функция поиска будет искать заданную строку в каждом отображаемом поле контакта, чтобы вы могли быстро найти нужный контакт. + +К вашим услугам также имеется функция простого набора номера с умными предложениями по контактам. + +Приложение поддерживает экспорт/импорт контактов в формате vCard в файлы .vcf для облегчения миграции или резервного копирования данных. + +С помощью этого современного и стабильного менеджера вы можете защитить свои контакты, не передавая их другим приложениям, что поможет сохранить свои контакты в тайне. + +Как и в случае с источником контактов, вы также можете легко изменить имя контакта, его электронную почту, номер телефона, адрес, организацию, группы и многие другие настраиваемые поля. Вы также можете использовать приложение для хранения событий контактов, таких как дни рождения, юбилеи или любые другие пользовательские события. + +Этот простой редактор контактов имеет множество удобных настроек, таких как отображение телефонных номеров на главном экране, переключение видимости фотографий контактов, отображение только контактов с телефонными номерами, отображение диалога подтверждения перед началом вызова. Содержит быстрый номеронабиратель, который также использует буквы. + +Чтобы улучшить взаимодействие с пользователем, вы можете настроить, что будет происходить при нажатии на контакт. Можно либо инициировать вызов, либо перейти на экран просмотра сведений, либо отредактировать выбранный контакт. + +Вы можете легко заблокировать телефонные номера, чтобы избежать нежелательных входящих звонков. + +Чтобы избежать отображения потенциально нежелательных контактов, приложение имеет мощную встроенную функцию слияния дубликатов контактов. + +Приложение выпускается с материальным дизайном и тёмной темой по умолчанию, что обеспечивает удобное использование. Отсутствие доступа в интернет обеспечивает вам больше приватности, безопасности и стабильности, чем в других приложениях. + +Не содержит рекламы или ненужных разрешений, полностью с открытым исходным кодом. Есть возможность настраивать цвета интерфейса. + +Ознакомьтесь с полным набором приложений серии Simple здесь: +https://www.simplemobiletools.com + +Сайт приложения Simple Contacts Pro: +https://www.simplemobiletools.com/contacts + +Facebook: +https://www.facebook.com/simplemobiletools + +Reddit: +https://www.reddit.com/r/SimpleMobileTools