diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 53e0320e..28057b6d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -10,6 +10,7 @@ import android.media.MediaMetadataRetriever import android.net.Uri import android.os.Bundle import android.os.Handler +import android.provider.ContactsContract import android.provider.Telephony import android.telephony.SubscriptionManager import android.text.TextUtils @@ -231,6 +232,8 @@ class ThreadActivity : SimpleActivity() { private fun setupThread() { val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() ensureBackgroundThread { + privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) + val cachedMessagesCode = messages.clone().hashCode() messages = getMessages(threadId) @@ -240,6 +243,7 @@ class ThreadActivity : SimpleActivity() { try { if (participants.isNotEmpty() && messages.hashCode() == cachedMessagesCode && !hasParticipantWithoutName) { + setupAdapter() return@ensureBackgroundThread } } catch (ignored: Exception) { @@ -248,7 +252,6 @@ class ThreadActivity : SimpleActivity() { setupParticipants() // check if no participant came from a privately stored contact in Simple Contacts - privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) if (privateContacts.isNotEmpty()) { val senderNumbersToReplace = HashMap() participants.filter { it.doesHavePhoneNumber(it.name) }.forEach { participant -> @@ -903,6 +906,31 @@ class ThreadActivity : SimpleActivity() { return participants } + fun startContactDetailsIntent(contact: SimpleContact) { + val simpleContacts = "com.simplemobiletools.contacts.pro" + val simpleContactsDebug = "com.simplemobiletools.contacts.pro.debug" + if (contact.rawId > 1000000 && contact.contactId > 1000000 && contact.rawId == contact.contactId && + (isPackageInstalled(simpleContacts) || isPackageInstalled(simpleContactsDebug)) + ) { + Intent().apply { + action = Intent.ACTION_VIEW + putExtra(CONTACT_ID, contact.rawId) + putExtra(IS_PRIVATE, true) + `package` = if (isPackageInstalled(simpleContacts)) simpleContacts else simpleContactsDebug + setDataAndType(ContactsContract.Contacts.CONTENT_LOOKUP_URI, "vnd.android.cursor.dir/person") + launchActivityIntent(this) + } + } else { + ensureBackgroundThread { + val lookupKey = SimpleContactsHelper(this).getContactLookupKey((contact).rawId.toString()) + val publicUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey) + runOnUiThread { + launchViewContactIntent(publicUri) + } + } + } + } + fun saveMMS(mimeType: String, path: String) { lastAttachmentUri = path Intent(Intent.ACTION_CREATE_DOCUMENT).apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index 1b7a49c8..44cd3786 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -32,6 +32,7 @@ import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.ThreadActivity import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog import com.simplemobiletools.smsmessenger.extensions.deleteMessage +import com.simplemobiletools.smsmessenger.extensions.getContactFromAddress import com.simplemobiletools.smsmessenger.extensions.updateLastConversationMessage import com.simplemobiletools.smsmessenger.helpers.* import com.simplemobiletools.smsmessenger.models.* @@ -234,6 +235,14 @@ class ThreadAdapter( if (message.isReceivedMessage()) { thread_message_sender_photo.beVisible() + thread_message_sender_photo.setOnClickListener { + val contact = message.participants.first() + context.getContactFromAddress(contact.phoneNumbers.first()) { + if (it != null) { + (activity as ThreadActivity).startContactDetailsIntent(it) + } + } + } thread_message_body.setTextColor(textColor) thread_message_body.setLinkTextColor(context.getAdjustedPrimaryColor()) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 58b1d967..67dc8245 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -684,6 +684,20 @@ fun Context.getNameFromAddress(address: String, privateCursor: Cursor?): String return sender } +fun Context.getContactFromAddress(address: String, callback: ((contact: SimpleContact?) -> Unit)) { + val privateCursor = getMyContactsCursor(false, true)?.loadInBackground() + SimpleContactsHelper(this).getAvailableContacts(false) { + val contact = it.firstOrNull { it.doesHavePhoneNumber(address) } + if (contact == null) { + val privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) + val privateContact = privateContacts.firstOrNull { it.doesHavePhoneNumber(address) } + callback(privateContact) + } else { + callback(contact) + } + } +} + @SuppressLint("NewApi") fun Context.showMessageNotification(address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String) { val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6f1d1621..bb2c1c5c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -50,7 +50,7 @@ Größe gesendeter MMS-Bilder ändern Keine Begrenzung Ausgehende Nachrichten - Send group messages as MMS + Gruppennachrichten als MMS versenden Nachrichten Nachrichten exportieren @@ -64,8 +64,8 @@ Warum benötigt die Anwendung einen Internetzugang\? Leider ist dies nötig, um MMS-Anhänge zu versenden. Es wäre ein großer Nachteil gegenüber anderen Apps, wenn keine MMS versendet werden könnten, also haben wir uns für diesen Weg entschieden. Jedoch gibt es wie immer keine Werbung, Tracking oder Analytics, der Internetzugriff wird also nur für das Versenden von MMS verwendet. - The other end is not receiving my MMS, is there anything I can do about it? - MMS size is limited by carriers, you can try setting a smaller limit in the app settings. + Die Gegenseite empfängt meine MMS nicht. Kann ich etwas dagegen tun\? + Die MMS-Größe wird von den Netzbetreibern begrenzt. Sie können versuchen, in den Anwendungseinstellungen ein kleineres Limit einzustellen. Einfacher SMS-Messenger – Nachrichten einfach verwalten @@ -76,4 +76,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index a1d43187..04eb95b8 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -17,7 +17,7 @@ Γίνεται αποστολή… Καρφίτσωμα στην κορυφή Ξεκαρφίτσωμα - Forward + Προώθηση Unable to compress image to selected size @@ -54,25 +54,25 @@ Αφαίρεση τονισμών και διακριτικών κατά την αποστολή μηνυμάτων Αλλαγή μεγέθους απεσταλμένων εικόνων MMS Χωρίς όριο - Outgoing messages - Send group messages as MMS + Εξερχόμενα μηνύματα + Αποστολή ομαδικών μηνυμάτων ως MMS Μηνύματα Εξαγωγή μηνυμάτων - Export SMS - Export MMS + Εξαγωγή SMS + Εξαγωγή MMS Εισαγωγή μηνυμάτων - Import SMS - Import MMS + Εισαγωγή SMS + Εισαγωγή MMS Πρέπει να επιλέξετε τουλάχιστον ένα στοιχείο Γιατί η εφαρμογή απαιτεί πρόσβαση στο Internet; Δυστυχώς, απαιτείται για την αποστολή συνημμένων MMS. Το να μην είμαστε σε θέση να στείλουμε MMS θα αποτελούσε πραγματικά τεράστιο μειονέκτημα σε σύγκριση με άλλες εφαρμογές, επομένως αποφασίσαμε να ακολουθήσουμε αυτόν τον δρόμο. Ωστόσο, όπως συνήθως, δεν υπάρχουν καθόλου διαφημίσεις, παρακολούθηση ή αναλύσεις, το διαδίκτυο χρησιμοποιείται μόνο για την αποστολή MMS. - The other end is not receiving my MMS, is there anything I can do about it? - MMS size is limited by carriers, you can try setting a smaller limit in the app settings. + Το άλλο άκρο δεν λαμβάνει τα MMS μου, μπορώ να κάνω κάτι γι\' αυτό; + Το μέγεθος των MMS περιορίζεται από τους παρόχους, μπορείτε να δοκιμάσετε να ορίσετε ένα μικρότερο όριο στις ρυθμίσεις της εφαρμογής. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 01e6dc32..e617434d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -50,11 +50,11 @@ Ridimensiona le immagini MMS inviate Nessun limite Messaggi in uscita - Send group messages as MMS + Invia messaggi di gruppo come MMS - Messages - Export messages - Export SMS + Messaggi + Esporta messaggi + Esporta SMS Esporta MMS Import messages Import SMS @@ -64,8 +64,8 @@ Perché l\'applicazione richiede l\'accesso ad internet\? Purtroppo è necessario per poter inviare gli allegati degli MMS. Non essere in grado di inviare gli MMS sarebbe un grosso svantaggio in confronto ad altre applicazioni, quindi abbiamo deciso di intraprendere questa strada. Ad ogni modo, come sempre, non ci sono pubblicità o tracciamenti, internet è utilizzato soltanto per l\'invio degli MMS. - The other end is not receiving my MMS, is there anything I can do about it? - MMS size is limited by carriers, you can try setting a smaller limit in the app settings. + L\'altro capo non riceve i miei MMS, c\'è qualcosa che posso fare\? + La dimensione degli MMS è limitata dai vettori, puoi provare a impostare un limite più piccolo nelle impostazioni dell\'app. Semplice SMS Messenger – gestisci facilmente i messaggi @@ -76,4 +76,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 0a7f8dd2..dbe710ff 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -8,7 +8,7 @@ Din melding til «%s» har ikke blitt sendt Legg til person Vedlegg - Ingen lagrede samtaler ble funnet + Ingen lagrede samtaler er funnet Start en samtale Svar Show a character counter at writing messages @@ -31,24 +31,21 @@ Marker som ulest Are you sure you want to delete all messages of this conversation? - %d samtale %d samtaler - %d melding %d meldinger - Synlighet for låseskjermsmerknad Avsender og melding Kun avsender - Skru på leveringsrapporter + Aktiver leveringsrapporter Remove accents and diacritics at sending messages Resize sent MMS images Ingen grense @@ -64,17 +61,16 @@ Importer MMS Du må velge minst ett element - Hvorfor krever programmet tilgang til Internett\? + Hvorfor krever appen tilgang til internett\? Sadly it is needed for sending MMS attachments. Not being able to send MMS would be a really huge disadvantage compared to other apps, so we decided to go this way. However, as usually, there are no ads, tracking or analytics whatsoever, the internet is used only for sending MMS. The other end is not receiving my MMS, is there anything I can do about it? MMS size is limited by carriers, you can try setting a smaller limit in the app settings. - Enkel SMS – håndter tekstmeldinger enkelt - En enkel og rask måte å håndtere SMS- og MMS-meldinger, uten reklame. + En enkel og rask måte å administrere SMS- og MMS-meldinger på uten annonser. A great way to stay in touch with your relatives, by sending both SMS and MMS messages. The app properly handles group messaging too, just like blocking numbers from Android 7+. @@ -95,9 +91,8 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - - + \ No newline at end of file diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index b494e864..cc787e21 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -1,10 +1,11 @@ + Simple SMS Messenger SMS Messenger Escrever uma mensagem… Mensagem não enviada Não enviada. Toque para tentar novamente. - A mensagem destinada a \'%s\' não foi enviada. + A mensagem destinada a \'%s\' não foi enviada Adicionar pessoa Anexo Não foram encontradas conversas @@ -19,33 +20,27 @@ Desafixar Reencaminhar Unable to compress image to selected size - Nova conversa Adicionar contacto ou número… Sugestões - SMS recebida Nova mensagem Marcar como lida Marcar como não lida - - Tem a certeza de que deseja apagar todas as mensagens desta conversa? - + Tem a certeza de que pretende apagar todas as mensagens desta conversa\? %d conversa %d conversas - %d mensagem %d mensagens - Notificação no ecrã de bloqueio Remetente e mensagem @@ -54,9 +49,8 @@ Remover acentos e diacríticos das mensagens enviadas Redimensionar imagens MMS enviadas Sem limite - Outgoing messages - Send group messages as MMS - + Mensagens a enviar + Enviar mensagens de grupo como MMS Mensagens Exportar mensagens @@ -66,42 +60,19 @@ Importar SMS Importar MMS Tem que selecionar, pelo menos, 1 item - - Porque é que a aplicação necessita de aceder à Internet? - Infelizmente é a única forma para poder enviar anexos MMS. A incapacidade de não conseguir enviar MMS seria uma enorme desvantagem comparativamente a outras aplicações e, por isso, tomámos esta decisão. - Mas, como habitualmente, a aplicação não tem anúncios, não rastreia os utilizadores nem recolhe dados pessoais. Esta permissão apenas é necessária para enviar as MMS. - The other end is not receiving my MMS, is there anything I can do about it? - MMS size is limited by carriers, you can try setting a smaller limit in the app settings. - + Porque é que a aplicação requer acesso à Internet\? + Infelizmente é a única forma de poder enviar anexos MMS. Não ter a capacidade de enviar MMS representaria uma enorme desvantagem comparativamente a outras aplicações e foi por isso que tomámos esta decisão. Mas, como habitualmente, a aplicação não tem anúncios, não rastreia os utilizadores nem recolhe dados pessoais. Esta permissão apenas é necessária para enviar MMS. + O destinatário não recebe as minhas MMS, o que posso fazer\? + O tamanho das MMS é limitado pelas operadoras, tente estabelecer um limite inferior nas Definições da aplicação. Simple SMS Messenger - Gestão de mensagens - Aplicação simples para gerir SMS e MMS, sem anúncios. - - Uma excelente forma para manter o contacto com os seus amigos e familiares. Também pode ser utilizada para mensagens de grupo e possibilita bloqueio de números de telefone em versões Android 7+. - - Permite a utilização de vários formatos de data. Também pode alternar o formato das horas. - - É uma aplicação pequena - comparada com as aplicações do mesmo género - o que torna a sua descarga muito rápida. - - Disponibiliza um design atrativo e um tema escuro por omissão. A não utilização da permissão Internet providencia-lhe mais privacidade, segurança e estabilidade do que as outras aplicações. - - Não contém anúncios nem permissões desnecessárias. É open source e permite a personalização de cores. - - Consulte o conjunto completo de aplicações Simple Tools aqui: - https://www.simplemobiletools.com - - Facebook: - https://www.facebook.com/simplemobiletools - - Reddit: - https://www.reddit.com/r/SimpleMobileTools - - + Gestor de mensagens SMS e MMS, sem anúncios. + Envie mensagens SMS e MMS e mantenha o contacto com os seus amigos e familiares. Serve também para difusão de mensagens de grupo e permite ainda bloquear de números de telefone em versões Android 7+. Formate a data e a hora como preferir. Uma aplicação muito pequena comparada com outras do mesmo género. Com design material num tema escuro por definição. Acesso à Internet apenas na estrita medida do necessário (envio de MMS), salvaguardando sempre a privacidade e a segurança. Não contém anúncios nem permissões desnecessárias. É totalmente open source e permite personalização de cores a gosto. Consulte a gama completa de aplicações Simple Tools aqui: https://www.simplemobiletools.comFacebook: https://www.facebook.com/simplemobiletools Reddit: https://www.reddit.com/r/SimpleMobileTools - + \ No newline at end of file