mirror of
				https://github.com/SimpleMobileTools/Simple-Contacts.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	show contacts name at the Call Screen, even if stored at the private space
This commit is contained in:
		| @@ -56,11 +56,16 @@ class CallActivity : SimpleActivity() { | |||||||
|         initButtons() |         initButtons() | ||||||
|  |  | ||||||
|         audioManager.mode = AudioManager.MODE_IN_CALL |         audioManager.mode = AudioManager.MODE_IN_CALL | ||||||
|         callContact = CallManager.getCallContact(applicationContext) |         CallManager.getCallContact(applicationContext) { contact -> | ||||||
|         callContactAvatar = getCallContactAvatar() |             callContact = contact | ||||||
|  |             callContactAvatar = getCallContactAvatar() | ||||||
|  |             setupNotification() | ||||||
|  |             runOnUiThread { | ||||||
|  |                 updateOtherPersonsInfo() | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|         addLockScreenFlags() |         addLockScreenFlags() | ||||||
|         setupNotification() |  | ||||||
|         updateOtherPersonsInfo() |  | ||||||
|         initProximitySensor() |         initProximitySensor() | ||||||
|  |  | ||||||
|         CallManager.registerCallback(callCallback) |         CallManager.registerCallback(callCallback) | ||||||
| @@ -176,8 +181,7 @@ class CallActivity : SimpleActivity() { | |||||||
|             return |             return | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         val callContact = CallManager.getCallContact(applicationContext) ?: return |         caller_name_label.text = if (callContact!!.name.isNotEmpty()) callContact!!.name else getString(R.string.unknown_caller) | ||||||
|         caller_name_label.text = if (callContact.name.isNotEmpty()) callContact.name else getString(R.string.unknown_caller) |  | ||||||
|  |  | ||||||
|         if (callContactAvatar != null) { |         if (callContactAvatar != null) { | ||||||
|             caller_avatar.setImageBitmap(callContactAvatar) |             caller_avatar.setImageBitmap(callContactAvatar) | ||||||
|   | |||||||
| @@ -7,6 +7,8 @@ import android.telecom.Call | |||||||
| import android.telecom.VideoProfile | import android.telecom.VideoProfile | ||||||
| import com.simplemobiletools.commons.extensions.getNameFromPhoneNumber | import com.simplemobiletools.commons.extensions.getNameFromPhoneNumber | ||||||
| import com.simplemobiletools.commons.extensions.getPhotoUriFromPhoneNumber | import com.simplemobiletools.commons.extensions.getPhotoUriFromPhoneNumber | ||||||
|  | import com.simplemobiletools.commons.helpers.ensureBackgroundThread | ||||||
|  | import com.simplemobiletools.contacts.pro.extensions.contactsDB | ||||||
| import com.simplemobiletools.contacts.pro.models.CallContact | import com.simplemobiletools.contacts.pro.models.CallContact | ||||||
|  |  | ||||||
| // inspired by https://github.com/Chooloo/call_manage | // inspired by https://github.com/Chooloo/call_manage | ||||||
| @@ -50,10 +52,11 @@ class CallManager { | |||||||
|             call?.stopDtmfTone() |             call?.stopDtmfTone() | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         fun getCallContact(context: Context): CallContact? { |         fun getCallContact(context: Context, callback: (CallContact?) -> Unit) { | ||||||
|             val callContact = CallContact("", "", "") |             val callContact = CallContact("", "", "") | ||||||
|             if (call == null) { |             if (call == null) { | ||||||
|                 return callContact |                 callback(callContact) | ||||||
|  |                 return | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             val uri = Uri.decode(call!!.details.handle.toString()) |             val uri = Uri.decode(call!!.details.handle.toString()) | ||||||
| @@ -62,9 +65,23 @@ class CallManager { | |||||||
|                 callContact.number = number |                 callContact.number = number | ||||||
|                 callContact.name = context.getNameFromPhoneNumber(number) |                 callContact.name = context.getNameFromPhoneNumber(number) | ||||||
|                 callContact.photoUri = context.getPhotoUriFromPhoneNumber(number) |                 callContact.photoUri = context.getPhotoUriFromPhoneNumber(number) | ||||||
|             } |  | ||||||
|  |  | ||||||
|             return callContact |                 if (callContact.name == callContact.number) { | ||||||
|  |                     ensureBackgroundThread { | ||||||
|  |                         val localContact = context.contactsDB.getContactWithNumber("%$number%") | ||||||
|  |                         if (localContact != null) { | ||||||
|  |                             val storedGroups = ContactsHelper(context).getStoredGroupsSync() | ||||||
|  |                             val newContact = LocalContactsHelper(context).convertLocalContactToContact(localContact, storedGroups) | ||||||
|  |                             callContact.name = newContact!!.getNameToDisplay() | ||||||
|  |                             callContact.photoUri = newContact.photoUri | ||||||
|  |                         } | ||||||
|  |  | ||||||
|  |                         callback(callContact) | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|  |                     callback(callContact) | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -81,7 +81,7 @@ class LocalContactsHelper(val context: Context) { | |||||||
|         return scaledSizePhotoData |         return scaledSizePhotoData | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private fun convertLocalContactToContact(localContact: LocalContact?, storedGroups: ArrayList<Group>): Contact? { |     fun convertLocalContactToContact(localContact: LocalContact?, storedGroups: ArrayList<Group>): Contact? { | ||||||
|         if (localContact == null) { |         if (localContact == null) { | ||||||
|             return null |             return null | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -14,6 +14,9 @@ interface ContactsDao { | |||||||
|     @Query("SELECT * FROM contacts WHERE id = :id") |     @Query("SELECT * FROM contacts WHERE id = :id") | ||||||
|     fun getContactWithId(id: Int): LocalContact? |     fun getContactWithId(id: Int): LocalContact? | ||||||
|  |  | ||||||
|  |     @Query("SELECT * FROM contacts WHERE phone_numbers LIKE :number") | ||||||
|  |     fun getContactWithNumber(number: String): LocalContact? | ||||||
|  |  | ||||||
|     @Query("UPDATE contacts SET starred = :isStarred WHERE id = :id") |     @Query("UPDATE contacts SET starred = :isStarred WHERE id = :id") | ||||||
|     fun updateStarred(isStarred: Int, id: Int) |     fun updateStarred(isStarred: Int, id: Int) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user