diff --git a/app/src/main/kotlin/org/fossify/phone/activities/CallActivity.kt b/app/src/main/kotlin/org/fossify/phone/activities/CallActivity.kt index c9397500..412f9e9a 100644 --- a/app/src/main/kotlin/org/fossify/phone/activities/CallActivity.kt +++ b/app/src/main/kotlin/org/fossify/phone/activities/CallActivity.kt @@ -117,7 +117,7 @@ class CallActivity : SimpleActivity() { val callState = CallManager.getState() if (callState == Call.STATE_CONNECTING || callState == Call.STATE_DIALING) { - endCall() + toast(R.string.call_is_being_connected) } } diff --git a/app/src/main/kotlin/org/fossify/phone/activities/DialpadActivity.kt b/app/src/main/kotlin/org/fossify/phone/activities/DialpadActivity.kt index 1e08b051..306a2c61 100644 --- a/app/src/main/kotlin/org/fossify/phone/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/org/fossify/phone/activities/DialpadActivity.kt @@ -271,8 +271,10 @@ class DialpadActivity : SimpleActivity() { (binding.dialpadList.adapter as? ContactsAdapter)?.finishActMode() - val filtered = allContacts.filter { - var convertedName = PhoneNumberUtils.convertKeypadLettersToDigits(it.name.normalizeString()) + val filtered = allContacts.filter { contact -> + var convertedName = PhoneNumberUtils.convertKeypadLettersToDigits( + contact.name.normalizeString() + ).filterNot { it.isWhitespace() } if (hasRussianLocale) { var currConvertedName = "" @@ -283,7 +285,7 @@ class DialpadActivity : SimpleActivity() { convertedName = currConvertedName } - it.doesContainPhoneNumber(text) || (convertedName.contains(text, true)) + contact.doesContainPhoneNumber(text) || (convertedName.contains(text, true)) }.sortedWith(compareBy { !it.doesContainPhoneNumber(text) }).toMutableList() as ArrayList diff --git a/app/src/main/kotlin/org/fossify/phone/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/phone/activities/MainActivity.kt index 7b30e375..c41b11c4 100644 --- a/app/src/main/kotlin/org/fossify/phone/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/phone/activities/MainActivity.kt @@ -557,6 +557,7 @@ class MainActivity : SimpleActivity() { val faqItems = arrayListOf( FAQItem(R.string.faq_1_title, R.string.faq_1_text), + FAQItem(R.string.faq_2_title, R.string.faq_2_text), FAQItem(R.string.faq_9_title_commons, R.string.faq_9_text_commons) ) diff --git a/app/src/main/kotlin/org/fossify/phone/adapters/ContactsAdapter.kt b/app/src/main/kotlin/org/fossify/phone/adapters/ContactsAdapter.kt index df3dc5f5..2be46736 100644 --- a/app/src/main/kotlin/org/fossify/phone/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/org/fossify/phone/adapters/ContactsAdapter.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.content.pm.ShortcutInfo import android.graphics.drawable.Icon import android.net.Uri +import android.telephony.PhoneNumberUtils import android.text.TextUtils import android.util.TypedValue import android.view.* @@ -364,11 +365,26 @@ class ContactsAdapter( setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize) val name = contact.getNameToDisplay() - text = if (textToHighlight.isEmpty()) name else { + text = if (textToHighlight.isEmpty()) { + name + } else { if (name.contains(textToHighlight, true)) { name.highlightTextPart(textToHighlight, properPrimaryColor) } else { - name.highlightTextFromNumbers(textToHighlight, properPrimaryColor) + var spacedTextToHighlight = textToHighlight + val strippedName = name.filterNot { it.isWhitespace() } + val strippedDigits = PhoneNumberUtils.convertKeypadLettersToDigits(strippedName) + val startIndex = strippedDigits.indexOf(textToHighlight) + + if (strippedDigits.contains(textToHighlight)) { + for (i in 0..spacedTextToHighlight.length) { + if (name[startIndex + i].isWhitespace()) { + spacedTextToHighlight = spacedTextToHighlight.replaceRange(i, i, " ") + } + } + } + + name.highlightTextFromNumbers(spacedTextToHighlight, properPrimaryColor) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 228654b5..984190b1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,6 +64,7 @@ Wired or Earpiece Choose audio route The number you are calling is blocked + Your call is being connected… Speed dial @@ -84,6 +85,9 @@ I hear incoming calls, but the screen doesn\'t turn on. What can I do? Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps. + Why emergency calls don\'t work properly? + Due to system restrictions, emergency calls can only be made through your system\'s default dialer or phone app. To ensure emergency calls work properly, you need to keep the system app installed and enabled. +