From 9548f43998a6f49ab8c9672618dbb5553873a456 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 11 Mar 2016 09:01:27 +0100 Subject: close cursor in caps db query --- src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java index b975a001..2ce73796 100644 --- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java @@ -415,8 +415,10 @@ public class DatabaseBackend extends SQLiteOpenHelper { Cursor cursor = db.query(ServiceDiscoveryResult.TABLENAME, null, ServiceDiscoveryResult.HASH + "=? AND " + ServiceDiscoveryResult.VER + "=?", selectionArgs, null, null, null); - if (cursor.getCount() == 0) + if (cursor.getCount() == 0) { + cursor.close(); return null; + } cursor.moveToFirst(); ServiceDiscoveryResult result = null; -- cgit v1.2.3 From 817d344521835622a625c8263141dc1148fff451 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 11 Mar 2016 09:01:40 +0100 Subject: log reason for bind failure --- src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 6be220c7..72996e4b 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -915,11 +915,11 @@ public class XmppConnection implements Runnable { sendPostBindInitialization(); } } else { - Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure"); + Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure. (no jid)"); disconnect(true); } } else { - Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure"); + Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure ("+packet.toString()); disconnect(true); } } -- cgit v1.2.3 From 290f53f4a6ca4688df04774f63f35384a883763f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 13 Mar 2016 17:38:59 +0100 Subject: fixed recursive call instead of call to super in PublishProfileActivity --- .../eu/siacs/conversations/ui/PublishProfilePictureActivity.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java index ee70ee43..88645c4a 100644 --- a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java @@ -4,7 +4,6 @@ import android.app.PendingIntent; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.view.Menu; @@ -20,13 +19,10 @@ import android.widget.Toast; import com.soundcloud.android.crop.Crop; import java.io.File; -import java.io.FileNotFoundException; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; -import eu.siacs.conversations.persistance.FileBackend; -import eu.siacs.conversations.utils.ExifHelper; import eu.siacs.conversations.utils.FileUtils; import eu.siacs.conversations.utils.PhoneHelper; import eu.siacs.conversations.xmpp.pep.Avatar; @@ -183,7 +179,7 @@ public class PublishProfilePictureActivity extends XmppActivity { } return true; } else { - return onOptionsItemSelected(item); + return super.onOptionsItemSelected(item); } } -- cgit v1.2.3 From 1153e6120d5e04b6ccb30ec3eae8a6ae0acc7bc9 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 13 Mar 2016 17:41:38 +0100 Subject: added logging in case fragment wasn't attached --- src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index aee923f6..bb85439a 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -1570,9 +1570,14 @@ public class ConversationActivity extends XmppActivity protected void refreshUiReal() { updateConversationList(); if (conversationList.size() > 0) { + if (!this.mConversationFragment.isAdded()) { + Log.d(Config.LOGTAG,"fragment NOT added to activity. detached="+Boolean.toString(mConversationFragment.isDetached())); + } ConversationActivity.this.mConversationFragment.updateMessages(); updateActionBarTitle(); invalidateOptionsMenu(); + } else { + Log.d(Config.LOGTAG,"not updating conversations fragment because conversations list size was 0"); } } -- cgit v1.2.3 From 0af8ee341c315481930054fd5930b60868ea6fea Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 13 Mar 2016 17:42:17 +0100 Subject: simplified getUsers(max) code --- .../java/eu/siacs/conversations/entities/MucOptions.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index 4fe26743..db27810f 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -345,17 +345,8 @@ public class MucOptions { } public List getUsers(int max) { - ArrayList users = new ArrayList<>(); - int i = 1; - for(User user : this.users.values()) { - users.add(user); - if (i >= max) { - break; - } else { - ++i; - } - } - return users; + ArrayList users = getUsers(); + return users.subList(0, Math.min(max, users.size())); } public int getUserCount() { -- cgit v1.2.3 From 815c534da854138c5d55f2faaeb84ce657acda35 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 13 Mar 2016 17:43:43 +0100 Subject: pulled translations from transifex --- src/main/res/values-de/strings.xml | 6 +- src/main/res/values-eu/strings.xml | 6 + src/main/res/values-ja/strings.xml | 6 + src/main/res/values-pt/strings.xml | 500 +++++++++++++++++++++++++++++-------- src/main/res/values-ru/strings.xml | 31 ++- 5 files changed, 443 insertions(+), 106 deletions(-) (limited to 'src') diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 454c8791..9de60995 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -505,8 +505,8 @@ Setzt deinen Status auf \"abwesend\", solange dein Bildschirm abgeschaltet ist Nicht verfügbar bei Stummschaltung Setzt deinen Status auf \"nicht verfügbar\", solange dein Gerät lautlos ist - Behandle Vibration als Stumm - Setze deinen Status auf \"nicht verfügbar\" solange dein Gerät auf \"vibrieren\" ist. + Vibration als Lautlos behandeln + Setzt deinen Status auf \"nicht verfügbar\", solange das Gerät auf Vibration geschaltet ist Erweiterte Verbindungs-Optionen Hostname- und Port-Optionen bei Kontoeinrichtung anzeigen xmpp.domain.de @@ -570,7 +570,7 @@ Dieses Feld ist erforderlich Nachricht korrigieren Korrigierte Nachricht senden - Du vertraust diesem Kontakt bereits. In dem du \'Fertig\' auswählst bestätigst Du, dass %s Teil dieser Konferenz ist. + Du vertraust diesem Kontakt bereits. Durch Auswählen von \"Fertig\" bestätigst du, dass %s Teil dieser Konferenz ist. Bild auswählen und zuschneiden Du hast diesen Account deaktiviert diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml index 27bbf42f..e26be004 100644 --- a/src/main/res/values-eu/strings.xml +++ b/src/main/res/values-eu/strings.xml @@ -312,6 +312,7 @@ %s egiaztatzen HTTP ostalarian Ez zaude konektatuta. Saiatu beranduago berriz Egiaztatu %sren neurria + Egiaztatu %1$sren neurria %2$s ostalarian Mezuaren aukerak Testua kopiatu Jatorrizko URLa kopiatu @@ -504,6 +505,8 @@ Zure baliabidea urrun bezala markatzen du pantaila itzalita dagoenean Ez eskuragarri modu isilean Zure baliabidea ez eskuragarri bezala markatzen du gailua modu isilean dagoenean + Dardara modu isila bezala tratatu + Zure baliabidea ez eskuragarri bezala markatzen du gailua dardara moduan dagoenean Konexioaren ezarpen luzatuak Ostalariaren izena eta ataka ezarpenak erakutsi kontu bat ezartzerakoan xmpp.adibidea.com @@ -567,4 +570,7 @@ Datu hau beharrezkoa da Mezua zuzendu Mezu zuzendua bidali + Kontaktu honetaz fidatzen zara dagoeneko. \'Eginda\' hautatuz %s konferentzia honen kidea dela egiaztatzen duzu besterik gabe. + Irudia hautatu eta moztu + Kontu hau ezgaitu duzu diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 54611dc5..41ac0361 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -312,6 +312,7 @@ HTTP ホストの %s を確認中 接続されていません。後でもう一度お試しください %s サイズを確認 + %2$s で %1$s のサイズを確認 メッセージオプション テキストをコピー 元の URL をコピー @@ -502,6 +503,8 @@ 画面がオフになっているとき、リソースを離席としてマークします サイレントモード時は利用不可 デバイスがサイレントモードのとき、リソースが利用不可としてマークします + バイブレートをサイレントモードとして扱う + デバイスがバイブレートのとき、リソースを利用不可としてマークします 拡張接続設定 アカウントを設定するときにホスト名とポートの設定を表示します xmpp.example.com @@ -564,4 +567,7 @@ このフィールドは必須です メッセージを修正 修正したメッセージを送信 + 既にこの連絡先を信頼しています。\'完了\' を選択すると、%s がこの会議の参加者であることを確認します。 + 画像の選択とトリミング + このアカウントを無効にしました diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index 4164ca71..b66ecd5e 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -2,18 +2,20 @@ Configurações Nova conversa - Gerenciar contas + Gerir contas Finalizar essa conversa Detalhes do contato Detalhes da conferência Conversa segura Adicionar conta Editar nome + Adicionar ao livro de endereços + Apagar da lista Bloquear contato Desbloquear contato Bloquear domínio Desbloquear domínio - Gerenciar contas + Gerir contas Configurações Detalhes da conferência Detalhes do contato @@ -26,24 +28,27 @@ %d minutos atrás Conversas não lidas enviando... + Decifrando a mensagem. Por favor aguarde... + Mensagem cifrada OpenPGP O apelido já está em uso Administrador Dono Moderador Participante Visitante + Deseja remover %s da sua lista? A conversa associada a este contacto não será removida. Deseja bloquear o o recebimento de mensagens de %s? Deseja desbloquear o recebimento de mensagens de %s? - Bloquear todos os contatos de %s? - Desbloquear todos os contatos de %s? - Contato bloqueado - Você deseja remover %s dos favoritos? A conversa associada a esse favorito não será removida. - Registre uma nova conta no servidor + Bloquear todos os contactos de %s? + Desbloquear todos os contactos de %s? + Contacto bloqueado + Deseja remover %s dos favoritos? A conversa associada a este favorito não será removida. + Registe uma nova conta no servidor Altere a senha no servidor Compartilhar com... Iniciar conversa - Convidar contato - Contatos + Convidar contacto + Contactos Cancelar Definir Adicionar @@ -51,43 +56,52 @@ Remover Bloquear Desbloquear - Salvar + Guardar OK - A conversa foi interrompida + Conversations teve um problema e deixou de funcionar Ao enviar os stack traces você ajudará o desenvolvimento do aplicativo\nAtenção: Isso usará a sua conta XMPP para enviar o stack trace para o desenvolvedor. Enviar agora - Não pergunte novamente - Não foi possível se conectar à conta - Não foi possível conectar a múltiplas contas - Toque aqui para gerenciar suas contas + Não perguntar novamente + Não foi possível ligar-se à conta + Não foi possível ligar-se a múltiplas contas + Toque aqui para gerir suas contas Anexar arquivo - O contato não está no seu rol - Adicionar contato + O contacto não está na sua lista. Deseja adicioná-lo? + Adicionar contacto a entrega falhou rejeitado Preparando a imagem para transmissão Limpar histórico Limpar o histórico de conversas - Você deseja remover todas as mensagens nessa conversa?\n\n<b>Atenção:<b> Isso não irá influenciar mensagens salvas em outros dispositivos ou servidores. + Deseja remover todas as mensagens nesta conversa?\n\n<b>Aviso:<b> Isto não irá influenciar mensagens guardadas noutros dispositivos ou servidores. Remover mensagens - Escolha a presença do contato - Enviar mensagem criptografada com OTR - Enviar mensagem criptografada com OpenPGP - Seu apelido foi alterado - Enviar sem criptografia - A desencriptação falhou. Talvez você não tenha a chave privada correta. + Terminar esta conversa depois + Escolha a presença do contacto + Enviar mensagem não cifrada + Enviar mensagem cifrada com OTR + Enviar mensagem cifrada com OMEMO + Enviar mensagem cifrada com v\\OMEMO + Enviar mensagem cifrada com OpenPGP + O seu apelido foi alterado + Enviar não cifrada + A decifragem falhou. Talvez não tenha a chave privada correta. OpenKeychain - Conversas utiliza um aplicativo de terceiro chamado OpenKeychain para criptografar e descriptografar mensagens e gerenciar suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n(Por favor reinicie Coversas em seguida) + Conversations utiliza uma aplicação de terceiros chamada OpenKeychain para cifrar e decifrar mensagens e gerir as suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n(Por favor reinicie Conversations em seguida) Reiniciar Instalar + Por favor instale o OpenKeychain oferecendo... aguardando... - Nenhuma chave OpenPGP encontrado + Nenhuma chave OpenPGP encontrada + Conversations não é capaz de cifrar as suas mensagens porque o seu contacto não está a anunciar a sua chave pública.\n\nPor favor peça ao seu contacto para configurar o OpenPGP. + Não foram encontradas chaves OpenPGP + Conversations não é capaz de cifrar as suas mensagens porque os seus contactos não estão a anunciar as suas chaves públicas.\n\nPor favor peça aos seus contactos para configurarem o OpenPGP. Geral Recurso XMPP - O nome pelo qual esse cliente se identifica - Aceitar arquivos - Automaticamente aceita arquivos menores que... + O nome pelo qual este cliente se identifica + Aceitar ficheiros + Automaticamente aceitar ficheiros menores que... + Notificação Notificações Notificar quando uma nova mensagem for recebida Vibrar @@ -96,68 +110,87 @@ Tocar um som com a notificação Período de carência da notificação Desativar notificações por um curto período após a copia oculta ser recebida - Nunca enviar relatórios de quebra - Ao enviar os stack traces você ajuda o desenvolvimento do aplicativo - Confirmar mensanges - Permitir que um contato saiba quando você recebeu e leu uma mensagem - O OpenKeychain informou um erro - Erro de I/O de critpografia + Avançadas + Nunca enviar relatórios de falhas + Ao enviar os stack traces você está a ajudar ao desenvolvimento contínuo de Conversations + Confirmar mensagens + Permitir que um contacto saiba quando você recebeu e leu uma mensagem + Interface do Utilizador + O OpenKeychain reportou um erro + Erro de I/O ao decifrar o ficheiro Aceitar Ocorreu um erro Permitir atualizações de presença - Inscrições - Sua conta + Conceder ou pedir subscrição de presença antecipadamente para contactos que tenha criado. + Subscrições + A sua conta Chaves Enviar atualizações de presença Receber atualizações de presença Pedir atualizações de presença Escolher imagem Tirar foto + Conceder pedido de subscrição antecipadamente O arquivo selecionado não é uma imagem - Erro ao converter o arquivo de imagem - Arquivo não encontrado + Erro ao converter o ficheiro de imagem + Ficheiro não encontrado + Erro de I/O genérico. Talvez tenha ficado sem espaço de armazenamento? + A aplicação que usou para selecionar esta imagem não nos forneceu permissões suficientes para ler o ficheiro.\n\nUtilize um gestor de ficheiros diferente para escolher uma imagem Desconhecido - Temporariamente desabilitado + Temporariamente desativado Online Conectando\u2026 Offline Não autorizado Servidor não encontrado Sem conectividade - O registro falhou - O nome de usuário já está em uso - Registro efetuado com sucesso - O servidor não aceita o registro + O registo falhou + O nome de utilizador já está em uso + Registo efetuado com sucesso + O servidor não aceita o registo Erro de segurança Servidor incompatível + Não cifrado OTR OpenPGP + OMEMO Editar conta Remover conta - Desabilitar temporariamente + Desativar temporariamente Publicar o avatar Publicar chave pública OpenPGP Ativar conta - Tem certeza? + Tem a certeza? + Se apagar a sua conta o histórico completo das suas conversas será perdido Gravar voz ID Jabber - Senha - nomedeusuario@exemplo.com - Confirmar senha - Senha - Confirmar senha - As senhas não combina + Palavra-passe + nomedeutilizador@exemplo.com + Confirmar palavra-passe + Palavra-passe + Confirmar palavra-passe + As palavras-passe não correspondem Esse não é um ID Jabber válido Memória insuficiente. A imagem é muito grande + Deseja adicionar %s aos seus contactos? online - disponível para conversa - fora + disponível para conversar + ausente fora extendido - não pertube + não perturbar offline Conferência Outros Membros - Informações do servior + Informações do servidor + XEP-0313: MAM + XEP-0280: Message Carbons + XEP-0352: Client State Indication + XEP-0191: Blocking Command + XEP-0237: Roster Versioning + XEP-0198: Stream Management + XEP-0163: PEP (Avatars / OMEMO) + XEP-0363: HTTP File Upload + XEP-0357: Push disponível indisponível Anúncios de ausência de chave pública @@ -170,111 +203,374 @@ visto %d dias atrás nunca visto Mensagem criptografada. Por favor instale o OpenKeychain para desencriptar - Impressão OTR inválida - Mensagens encriptadas com OpenPGP não encontrada + Impressão digital OTR desconhecida + Mensagens encriptadas com OpenPGP encontradas A recepção falhou - Sua impressão - Impressão OTR + A sua impressão digital + Impressão digital OTR + Impressão digital OMEMO + Impressão digital v\\OMEMO + Impressão digital OMEMO da mensagem + Impressão digital v\\OMEMO da mensagem + Impressão digital OMEMO própria + Outros dispositivos + Confiar nas impressões digitais OMEMO + Obtendo as chaves... + Concluído Verificar - Desencriptar + Decifrar Conferências - Buscar - Criar contato - Se juntar à conferência - Remover contato - Ver os detalhes dos contatos - Bloquear contato - Desbloquear contato + Pesquisar + Criar Contacto + Inserir Contacto + Juntar-se à Conferência + Remover Contacto + Ver detalhes do contacto + Bloquear contacto + Desbloquear contacto Criar - O contato já existe + Selecionar + O contacto já existe Juntar Endereço da conferência sala@conferencia.example.com - Salvar como favorito - Salvar favorito + Guardar como favorito + Apagar favorito O favorito já existe Você Editar o assunto da conferência + A juntar-se à conferência... Sair - Contato adicionado à sua lista de contato + Contacto adicionado à sua lista de contactos Adicionar novamente - %s leu até esse ponto + %s leu até este ponto Publicar - Toque o avatar para escolher uma imagem da sua galeria - Por favor observe: Todos inscritos na sua atualização de presença poderá ver essa imagem + Toque no avatar para escolher uma imagem da galeria + Por favor note: Todos os subscritos à suas atualizações de presença poderão ver esta imagem. Publicando... - O servidor rejeitou sua publicação - Algo deu errado ao converter sua imagem - Não foi possível salvar o avatar no disco + O servidor rejeitou a sua publicação + Algo deu errado ao converter a sua imagem + Não foi possível guardar o avatar no disco (Ou mantenha pressionado por um tempo para voltar para o padrão) O seu servidor não suporta a publicação de avatares - sussurado + sussurrou para %s Enviar mensagem privada para %s Conectar - Essa conta já existe + Esta conta já existe Próximo Sessão atual estebelecida - Informação adicional + Informação Adicional Pular Desativar notificações - Desativar notificações para essa conversa + Desativar notificações para esta conversa Ativar - Essa conferencia requer uma senha - Informar a senha + Esta conferência requer uma palavra-passe + Inserir palavra-passe Atualizações de presença inexistente para o contato + Por favor peça atualizações de presença ao seu contacto primeiro.\n\nIsto irá ser utilizado para determinar que cliente(s) o seu contacto está a utilizar. Solicitar agora - Remover impressão - Tem certeza que deseja remover essa assinatura? - Forçar criptografia ponto-a-ponto - Sempre envie mensagem criptografada (exceto para conferências) - Não salve mensagens criptografadas - Atenção: Isso pode levar a perda de mensagens - Por favor tenha cuidado com essas - Sobre Conversas + Remover impressão digital + Tem a certeza que deseja remover esta impressão digital? + Ignorar + Aviso: Enviar isto sem atualizações de presença mútuas pode causar problemas inesperados.\n\nVá aos detalhes do contacto para verificar as suas subscrições de presença. + Segurança + Forçar cifragem ponto-a-ponto + Enviar sempre mensagens cifradas (exceto para conferências) + Permitir a correção de mensagens + Permitir que os seus contactos editem as suas mensagens depois de enviadas + Não guardar mensagens cifradas + Atenção: Isto pode levar à perda de mensagens + Definições avançadas + Por favor tenha cuidado com estas + Sobre Conversations Informação de licença e construção Horas de tranquilidade Hora de início Hora de fim - Habilitar hora de tranquilidade + Ativar horas de tranquilidade Notificações serão silenciadas nas horas de tranquilidade Aumentar o tamanho da fonte - Usar fontes maiores por todo aplicativo + Usar fontes maiores para toda a aplicação O botão de enviar indica o estado Solicitar recibo de mensagem - Mensagens recebidas serão marcadas com um check verde se suportado - Colorir o botão de enviar para indicar o estado do contato + Mensagens recebidas serão marcadas com um visto verde se suportado + Colorir o botão de enviar para indicar o estado do contacto Outros Nome da conferência Use o assunto da sala ao invés do JID para identificar as conferências - Impressão OTR copiada para a área de transferência! + Juntar-se automaticamente a conferências + Respeitar a flag autojoin nos favoritos de conferências + Impressão digital OTR copiada para a área de transferência! + Impressão digital OMEMO copiada para a área de transferência! + Está banido desta conferência + Esta conferência é apenas para membros + Foi banido desta conferência + A conferência foi terminada + Já não se encontra nesta conferência + utilizando a conta %s + Verificando %s no anfitrião HTTP + Não está ligado. Tente novamente mais tarde + Verifique o tamanho de %s + Verifique o tamanho de %1$s em %2$s + Opções de mensagem + Copiar texto + Copiar o URL original + Enviar novamente + URL do ficheiro + Texto da mensagem + URL copiado para a área de transferência + Mensagem copiada para a área de transferência + A transmissão da imagem falhou + Ler código QR + Mostrar código QR + Mostar lista de bloqueios + Detalhes da conta + Verificar OTR + Impressão digital remota + ler + Protocolo do Milionário Socialista + Dica ou Questão + Segredo Partilhado + Confirmar + Em progresso + Responder + Falhou + Os segredos não coincidem Tentar novamente Finalizar + Verificado! + O contacto pediu uma verificação SMP + Não foi encontrada nenhuma sessão OTR válida! + Conversations + Manter o serviço em primeiro plano + Previne o sistema operativo de terminar a sua conexão + Exportar os Logs + Escrever os logs para o cartão SD + A escrever os logs para o cartão SD + Escolher ficheiro + A receber %1$s (%2$d%% concluído) + Transferir %s + ficheiro + Abrir %s + a enviar (%1$d%% concluído) + Preparando o ficheiro para a transmissão + %s oferecido para download + Cancelar transmissão + A transmissão do ficheiro falhou + O ficheiro foi eliminado + Não foi encontrada nenhuma aplicação para abrir o ficheiro + Não foi possível verificar a impressão digital + Verificar manualmente + Tem a certeza que quer verificar a impressão digital OTR do seu contacto? + Mostrar tags dinâmicas + Mostrar tags read-only debaixo dos contactos + Ativar notificações + Criar conferência com... + Não foi encontrado nenhum servidor de conferências + Criação de conferência falhou! + Conferência criada! + Segredo aceite! + Restaurar + Avatar da conta + Copiar a impressão digital OTR para a área de transferência + Copiar a impressão digital OMEMO para a área de transferência + Regenerar a chave OMEMO + Apagar outros dispositivos do PEP + Apagar dispositivos + Tem a certeza que quer apagar todos os outros dispositivos do anúncio OMEMO? A próxima vez que os seus dispositivos se conectem, irão ser eles mesmos a fazerem o anúncio novamente, mas podem não receber as mensagems enviadas entretanto. + Remover chave + Tem a certeza que quer remover esta chave? + Irá ser considerada comprometida irreversivelmente, e não poderá construir uma sessão com ela novamente. + Não existem chaves disponíveis para serem utilizadas para este contacto.\nNão foi possível obter chaves novas do servidor. Talvez exista algum problema com o seu servidor de contactos. + Não existem chaves disponíveis para serem utilizadas para este contacto. Se removeu alguma das chaves dele, ele irá necessitar de gerar chaves novas. + Erro + Obtendo o histórico do servidor + Não existe mais histórico no servidor + A atualizar... + Palavra-passe alterada! + Não foi possível alterar a palavra-passe + Enviar uma mensagem para começar uma conversa cifrada + Fazer pergunta + Se tiver um segredo em comum com o seu contacto que mais ninguém saiba (como uma piada entre vocês ou simplesmente o que comeram ao almoço da última vez que se encontraram) pode usar esse segredo para verificar as impressões digitais um do outro.\n\nForneça uma dica ou uma questão para o seu contacto que irá responder com uma resposta sensível a maiúsculas e minúsculas. + O seu contacto gostaria de verificar a sua impressão digital desafiando-o com um segredo partilhado. O seu contacto forneceu a seguinte dica ou questão para esse segredo. + A sua dica não deve estar vazia + O seu segredo partilhado não pode estar vazio + Compare cuidadosamente a impressão digital mostrada abaixo com a impressão digital do seu contacto.\nPode usar qualquer forma de comunicação como um e-mail cifrado ou uma chamada telefónica para as trocar. + Alterar palavra-passe + Palavra-passe atual + Nova palavra-passe + A palavra-passe não deve estar vazia + Ativar todas as contas + Desativar todas as contas Realizar a ação com Sem afiliação Sem papel + Banido Membro Modo avançado + Conceder filiação + Revogar filiação + Conceder privilégios de administração + Revogar privilégios de administração + Remover da conferência + Não foi possível alterar a afiliação de %s + Banir da conferência + Está a tentar remover %s da conferência pública. A única maneira de fazer isso é remover esse utilizador para sempre. + Banir agora + Não foi possível alterar o papel de %s + Conferência acessível publicamente + Privado, conferência apenas para membros + Opções da conferência + Privado, apenas membros + Não-anónimo + Moderado + Não está a participar + Opções da conferência alteradas + Não foi possível alterar as opções da conferência + Nunca + 30 minutos 1 hora 2 horas 8 horas Até segunda ordem + Introdução O enter envia Use o enter para enviar a mensagem Exibir tecla enter + Alterar a tecla dos emoticons para uma tecla enter áudio vídeo imagem Documento PDF - Aplicativo Android - Contato + Aplicação Android + Contacto + Recebeu %s + Desativar serviço em primeiro plano + Toque para abrir Conversations + O avatar foi publicado! Enviando %s Oferecendo %s - %s parou de digitar - Notificações de digitação + Ocultar offline + Desativar Conta + %s está a escrever... + %s parou de escrever + Notificações de escrita + Permitir que um contacto saiba quando está a escrever uma nova mensagem Enviar localização Exibir localização + Não foi encontrada nenhuma aplicação para mostrar a localização + Localização + Localização recebida + Conversa fechada + Deixou a conferência + Não confiar nas CAs do sistema + Todos os certificados têm que ser aprovados manualmente + Remover certificados + Apagar certificados aprovados manualmente + Não existem certificados aprovados manualmente + Remover certificados + Apagar seleção Cancelar + + %d certificado apagado + %d certificados apagados + + + Selecionar %d contacto + Selecionar %d contactos + + Substituir botão enviar com ação rápida Ação rápida - Nada + Nenhum + Usados mais recentemente + Escolher ação rápida + Procurar contactos ou grupos + Enviar mensagem privada + %s deixou a conferência! + Nome de utilizador + Nome de utilizador + Este não é um nome de utilizador válido + Nome da conferência + Este não é um nome de conferência válido + Transferência falhou: Servidor não encontrado + Transferência falhou: Ficheiro não encontrado + Transferência falhou: Não foi possível conectar ao host + Usar fundo branco + Mostrar mensagens recebidas como texto preto num fundo branco + Rede Tor indisponível + Existe um problema + Presença + Ausente quando o ecrã está desligado + Define o seu recurso como ausente quando o ecrã está desligado + Não disponível no modo silencioso + Define o seu recurso como não disponível quando o dispositivo está em modo silencioso + Tratar vibrar como modo silencioso + Define o seu recurso como não disponível quando o dispositivo está em modo vibrar + Definições de conexão + Mostrar as definições do hostname e do porto ao configurar uma conta + xmpp.exemplo.com + Adicionar conta com certificado + Não foi possível processar o certificado + Deixar vazio para autenticar com certificado + Preferências de arquivamento + Preferências de arquivamento do servidor + Obtendo as preferências de arquivamento. Por favor espere... + Não foi possível obter as preferências de arquivamento + Texto Captcha + Captcha obrigatório + insira o texto da imagem + A cadeia de certificados não é confiável + O ID Jabber não coincide com o certificado + Renovar certificado + Erro ao obter a chave OMEMO! + A chave OMEMO foi verificada com o certificado! + O seu dispositivo não suporta a seleção de certificados de cliente! + Conexão + Conectar via TOR + Usar a rede Tor para todas as conexões. Requer a aplicação Orbot + Hostname + Porto + Servidor ou endereço .onion + Este não é um número de porto válido + Este não é um hostname válido + %1$d de %2$d contas conectadas + + %d mensagem + %d mensagens + + Carregar mais mensagens + Ficheiro partilhado com %s + Imagem partilhada com %s + Conversations necessita de acesso ao armazenamento externo + Sincronizar com contactos + A aplicação Conversations deseja fazer a correspondência entre a sua lista de contactos XMPP e os seus contactos para mostrar os seus nomes completos e os seus avatares.\n\nA aplicação Conversations irá apenas ler os seus contactos e fazer a correspondência localmente sem enviar os dados para o seu servidor.\n\nIrá agora ser-lhe pedido para dar permissão para aceder aos seus contactos. + Informação do Certificado + Assunto + Emissor + Nome Comum + Organização + SHA-1 + (Não disponível) + Nenhum certificado encontrado + Notificar em todas as mensagens + Notificar apenas quando destacado + Notificações desativadas + Notificações interrompidas + Comprimir Imagens + Redimensionar e comprimir fotografias + Sempre + Automaticamente + Otimizações da bateria ativadas + O seu dispositivo está a fazer otimizações de bateria bastante agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo a perda de mensagens.\nÉ recomendado que as desative. + O seu dispositivo está a fazer otimizações de bateria bastantes agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo perda de mensagens.\n\nIrá-lhe agora ser pedido para desativá-las. + Desativar + A área selecionada é demasiado grande + (Nenhuma conta ativada) + Este campo é obrigatório + Corrigir mensagem + Enviar mensagem corrigida + Já confia neste contacto. Ao selecionar \'Concluído\' apenas está a confirmar que %s faz parte desta conferência. + Selecione imagem e corte + Desativou esta conta diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 5ed84b7b..c050b6db 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -77,7 +77,7 @@ Удалить сообщения Закончить эту беседу впоследствии Укажите статус для контакта - Отправить незащифрованное сообщение + Отправить не зашифрованное сообщение Отправить OTR защифрованное сообщение Отправить OMEMO защифрованное сообщение Послать v\\OMEMO зашифрованное сообщение @@ -101,6 +101,7 @@ Имя которым Conversations идентифицирует себя Принимать файлы Автоматический прием файлов… + Уведомление Уведомление Использовать звуковое уведомление когда приходят новые сообщения Вибрация @@ -109,10 +110,12 @@ Выберите звуковой сигнал для сообщений Отсрочка уведомлений Не использовать уведомления, если вы прочитали сообщение на другом устройстве + Дополнительно Отчеты об ошибках Отправляя отчеты об ошибках, вы помогаете исправить и улучшить Conversations, поддерживая дальнейшее развитие программы Отчеты о получении Разрешить уведомлять отправителя, когда вы получили и прочитали сообщение + Интерфейс Возникла ошибка в OpenKeychain Ошибка расшифровки файла Принять @@ -187,6 +190,7 @@ XEP-0198: Управление потоками XEP-0163: PEP (Аватары / OMEMO) XEP-0363: Загрузка файлов по HTTP + XEP-0357: Push уведомления доступен недоступен Отсутствие анонсирования открытых ключей @@ -235,6 +239,7 @@ Такая закладка уже существует Вы Редактировать тему конференции + Вход в конференцию... Покинуть Собеседник добавил вас в список контактов Добавить в ответ @@ -269,10 +274,13 @@ Вы уверены, что хотите удалить данную контрольную сумму? Отменить Внимание: Если обновления присутствия не включены на обеих сторонах, это может привести к возникновению неожиданных проблемам.\n\nУточните сведения о контакте, проверив настройки обновлений присутствия. + Безопасность Обязательное сквозное шифрование Всегда отправлять сообщения зашифрованными (за исключением конференций) + Разрешить исправление сообщений Не сохранять зашифрованные сообщения Внимание: Это может привести к потере сообщений + Расширенные настройки Пожалуйста, будьте осторожны с данными настройками О Conversations Информация о билде и лицензировании @@ -290,6 +298,8 @@ Другие Название конференции Использовать тему беседы заместо JID для отображения конференций + Автоматический вход в конференции + Автоматический вход в конференции OTR-отпечаток скопирован в буфер обмена! OMEMO отпечаток скопирован в буфер обмена! Вы заблокированы в этой конференции @@ -419,6 +429,7 @@ 2 часа 8 часов До следующего уведомления + Ввод Отправить на \"Enter\" Клавиша \"Enter\" отправляет сообщение Показывать клавишу ввода @@ -479,6 +490,8 @@ Имя пользователя Имя пользователя Недопустимое имя пользователя + Название конференции + Недопустимое название конференции Загрузка не удалась: сервер не найден Загрузка не удалась: файл не найден Загрузка не удалась: не удалось подключиться к серверу @@ -489,9 +502,15 @@ Вышел когда экран выключен Отмечает ваш ресурс как \"вышел\" когда экран выключен Не доступен в режиме без звука + Отмечает ваш ресурс как \"не доступен\", когда телефон в беззвучном режиме + Отмечает ваш ресурс как \"не доступен\", когда телефон в режиме вибрации + Расширенные настройки подключения + Показывать имя сервера и порт в настройках аккаунтов + xmpp.example.com Добавить аккаунт с сертификатом Невозможно разобрать сертификат Оставить пустым для входа с сертификатом + Настройки архивирования Проверочный текст Необходима проверка введите текст с картинки @@ -501,6 +520,7 @@ Ошибка при получении OMEMO ключа! Проверен OMEMO ключ с сертификатом! Ваше устройство не поддерживает выбор клиентских сертификатов! + Подключение Соединение через Tor Направить все соединения через сеть TOR. Требуется Orbot Имя сервера @@ -518,15 +538,24 @@ Subject Выпустил Организация + SHA-1 (недоступно) Сертификатов не найдено Уведомлять о всех сообщениях + Оповещение только при обращениях Уведомления запрещены Уведомления приостановлены Сжать изображения + Изменить размер и сжать изображения Всегда Автоматически Оптимизации энергопотребления разрешены Запретить Выбранная область слишком большая + (Нет активных аккаунтов) + Незаполненное поле + Исправить сообщение + Отправить исправленное сообщение + Выбрать изображение + Вы отключили этот аккаунт -- cgit v1.2.3 From eaddfa7fd1bcbe03cc6c4c757f91af1040f876fa Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 15 Mar 2016 11:09:28 +0100 Subject: Check if path for URI is accessible The path extracted from the Cursor might not be accessible for Conversations. FileUtils accesses URI information through the ContentProvider, so this wouldn't be noticed. Fixes sharing from open-keychain's TemporaryContentProvider --- src/main/java/eu/siacs/conversations/utils/FileUtils.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/utils/FileUtils.java b/src/main/java/eu/siacs/conversations/utils/FileUtils.java index ad8b8640..6e75d41c 100644 --- a/src/main/java/eu/siacs/conversations/utils/FileUtils.java +++ b/src/main/java/eu/siacs/conversations/utils/FileUtils.java @@ -10,6 +10,8 @@ import android.os.Environment; import android.provider.DocumentsContract; import android.provider.MediaStore; +import java.io.File; + public class FileUtils { /** @@ -77,7 +79,14 @@ public class FileUtils { } // MediaStore (and general) else if ("content".equalsIgnoreCase(uri.getScheme())) { - return getDataColumn(context, uri, null, null); + String path = getDataColumn(context, uri, null, null); + if (path != null) { + File file = new File(path); + if (!file.canRead()) { + return null; + } + } + return path; } // File else if ("file".equalsIgnoreCase(uri.getScheme())) { -- cgit v1.2.3 From 48be5af55ff22c666a57fe2c2de10a147b6f7958 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 16 Mar 2016 10:46:33 +0100 Subject: reworked sharewith activity to stay open during sharing closing the activity prematuraly caused uri permissions to be revoked --- .../siacs/conversations/ui/ShareWithActivity.java | 95 +++++++++++++++------- .../eu/siacs/conversations/ui/XmppActivity.java | 1 + src/main/res/values/strings.xml | 3 + 3 files changed, 69 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java index 09bbe0df..a710a558 100644 --- a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java @@ -17,17 +17,24 @@ import java.net.URLConnection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; +import eu.siacs.conversations.services.XmppConnectionService; import eu.siacs.conversations.ui.adapter.ConversationAdapter; import eu.siacs.conversations.xmpp.jid.InvalidJidException; import eu.siacs.conversations.xmpp.jid.Jid; -public class ShareWithActivity extends XmppActivity { +public class ShareWithActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate { + + @Override + public void onConversationUpdate() { + refreshUi(); + } private class Share { public List uris = new ArrayList<>(); @@ -36,14 +43,17 @@ public class ShareWithActivity extends XmppActivity { public String contact; public String text; public String uuid; + public boolean multiple = false; } private Share share; private static final int REQUEST_START_NEW_CONVERSATION = 0x0501; private ListView mListView; + private ConversationAdapter mAdapter; private List mConversations = new ArrayList<>(); private Toast mToast; + private AtomicInteger attachmentCounter = new AtomicInteger(0); private UiCallback attachFileCallback = new UiCallback() { @@ -59,26 +69,52 @@ public class ShareWithActivity extends XmppActivity { runOnUiThread(new Runnable() { @Override public void run() { - if (mToast != null) { - mToast.cancel(); - } - if (share.uuid != null) { - mToast = Toast.makeText(getApplicationContext(), - getString(share.image ? R.string.shared_image_with_x : R.string.shared_file_with_x,message.getConversation().getName()), - Toast.LENGTH_SHORT); - mToast.show(); + if (attachmentCounter.decrementAndGet() <=0 ) { + int resId; + if (share.image && share.multiple) { + resId = R.string.shared_images_with_x; + } else if (share.image) { + resId = R.string.shared_image_with_x; + } else { + resId = R.string.shared_file_with_x; + } + replaceToast(getString(resId, message.getConversation().getName())); + if (share.uuid != null) { + finish(); + } else { + switchToConversation(message.getConversation()); + } } } }); } @Override - public void error(int errorCode, Message object) { - // TODO Auto-generated method stub - + public void error(final int errorCode, Message object) { + runOnUiThread(new Runnable() { + @Override + public void run() { + replaceToast(getString(errorCode)); + if (attachmentCounter.decrementAndGet() <=0 ) { + finish(); + } + } + }); } }; + protected void hideToast() { + if (mToast != null) { + mToast.cancel(); + } + } + + protected void replaceToast(String msg) { + hideToast(); + mToast = Toast.makeText(this, msg ,Toast.LENGTH_LONG); + mToast.show(); + } + protected void onActivityResult(int requestCode, int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_START_NEW_CONVERSATION @@ -107,8 +143,7 @@ public class ShareWithActivity extends XmppActivity { setTitle(getString(R.string.title_activity_sharewith)); mListView = (ListView) findViewById(R.id.choose_conversation_list); - ConversationAdapter mAdapter = new ConversationAdapter(this, - this.mConversations); + mAdapter = new ConversationAdapter(this, this.mConversations); mListView.setAdapter(mAdapter); mListView.setOnItemClickListener(new OnItemClickListener() { @@ -191,8 +226,7 @@ public class ShareWithActivity extends XmppActivity { share(); return; } - xmppConnectionService.populateWithOrderedConversations(mConversations, - this.share != null && this.share.uris.size() == 0); + refreshUiReal(); } private void share() { @@ -224,6 +258,7 @@ public class ShareWithActivity extends XmppActivity { } private void share(final Conversation conversation) { + mListView.setEnabled(false); if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP && !hasPgp()) { if (share.uuid == null) { showInstallPgpDialog(); @@ -237,29 +272,21 @@ public class ShareWithActivity extends XmppActivity { OnPresenceSelected callback = new OnPresenceSelected() { @Override public void onPresenceSelected() { + attachmentCounter.set(share.uris.size()); if (share.image) { - mToast = Toast.makeText(getApplicationContext(), - getText(R.string.preparing_image), - Toast.LENGTH_LONG); - mToast.show(); + share.multiple = share.uris.size() > 1; + replaceToast(getString(share.multiple ? R.string.preparing_images : R.string.preparing_image)); for (Iterator i = share.uris.iterator(); i.hasNext(); i.remove()) { ShareWithActivity.this.xmppConnectionService .attachImageToConversation(conversation, i.next(), attachFileCallback); } } else { - mToast = Toast.makeText(getApplicationContext(), - getText(R.string.preparing_file), - Toast.LENGTH_LONG); - mToast.show(); + replaceToast(getString(R.string.preparing_file)); ShareWithActivity.this.xmppConnectionService .attachFileToConversation(conversation, share.uris.get(0), attachFileCallback); } - if (share.uuid == null) { - switchToConversation(conversation, null, true); - } - finish(); } }; if (conversation.getAccount().httpUploadAvailable()) { @@ -269,13 +296,21 @@ public class ShareWithActivity extends XmppActivity { } } else { switchToConversation(conversation, this.share.text, true); - finish(); } } public void refreshUiReal() { - //nothing to do. This Activity doesn't implement any listeners + xmppConnectionService.populateWithOrderedConversations(mConversations, this.share != null && this.share.uris.size() == 0); + mAdapter.notifyDataSetChanged(); } + @Override + public void onBackPressed() { + if (attachmentCounter.get() >= 1) { + replaceToast(getString(R.string.sharing_files_please_wait)); + } else { + super.onBackPressed(); + } + } } diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java index baf40b22..c7bf738c 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java @@ -1174,6 +1174,7 @@ public abstract class XmppActivity extends Activity { } else { if (cancelPotentialWork(message, imageView)) { imageView.setBackgroundColor(0xff333333); + imageView.setImageDrawable(null); final BitmapWorkerTask task = new BitmapWorkerTask(imageView); final AsyncDrawable asyncDrawable = new AsyncDrawable( getResources(), null, task); diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index f0f2cc3e..70883507 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -72,6 +72,8 @@ delivery failed rejected Preparing image for transmission + Preparing images for transmission + Sharing files. Please wait… Clear history Clear Conversation History Do you want to delete all messages within this Conversation?\n\nWarning: This will not influence messages stored on other devices or servers. @@ -574,6 +576,7 @@ Load more messages Shared file with %s Shared image with %s + Shared images with %s Conversations need access to external storage Synchronize with contacts Conversations wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nConversations will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts. -- cgit v1.2.3 From b17ca3543fdfd5a0265e0f64ee24a4ecd7b70741 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 16 Mar 2016 18:09:19 +0100 Subject: made it possible to share text files --- .../java/eu/siacs/conversations/ui/ShareWithActivity.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java index a710a558..4ec43c27 100644 --- a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java @@ -181,23 +181,24 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer return; } final String type = intent.getType(); - Log.d(Config.LOGTAG, "action: "+intent.getAction()+ ", type:"+type); + final String action = intent.getAction(); + Log.d(Config.LOGTAG, "action: "+action+ ", type:"+type); share.uuid = intent.getStringExtra("uuid"); - if (Intent.ACTION_SEND.equals(intent.getAction())) { - final Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); - if (type != null && uri != null && !type.equalsIgnoreCase("text/plain")) { + if (Intent.ACTION_SEND.equals(action)) { + final String text = intent.getStringExtra(Intent.EXTRA_TEXT); + final Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); + if (type != null && uri != null && text == null) { this.share.uris.clear(); this.share.uris.add(uri); this.share.image = type.startsWith("image/") || isImage(uri); } else { - this.share.text = getIntent().getStringExtra(Intent.EXTRA_TEXT); + this.share.text = text; } - } else if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction())) { + } else if (Intent.ACTION_SEND_MULTIPLE.equals(action)) { this.share.image = type != null && type.startsWith("image/"); if (!this.share.image) { return; } - this.share.uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); } if (xmppConnectionServiceBound) { -- cgit v1.2.3