From f64018d0a24faeb56c0bedabd2190874ec1128ab Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Fri, 15 Jan 2016 16:18:16 +0530 Subject: upgraded to OpenKeychain api v10 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 929bad9de..fd04feeb2 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ repositories { dependencies { compile project(':libs:MemorizingTrustManager') - compile 'org.sufficientlysecure:openpgp-api:9.0' + compile 'org.sufficientlysecure:openpgp-api:10.0' compile 'com.soundcloud.android:android-crop:1.0.1@aar' compile 'com.android.support:support-v13:23.0.1' compile 'org.bouncycastle:bcprov-jdk15on:1.52' -- cgit v1.2.3 From a9a3ef0f6783a235575740553daffb0d8d4c586b Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Sat, 16 Jan 2016 03:24:29 +0530 Subject: fixed PGP having to be selected twice --- src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 2f6ebe33c..e5fbee438 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -1270,9 +1270,12 @@ public class ConversationActivity extends XmppActivity if (requestCode == REQUEST_DECRYPT_PGP) { mConversationFragment.onActivityResult(requestCode, resultCode, data); } else if (requestCode == REQUEST_CHOOSE_PGP_ID) { + // the user chose OpenPGP for encryption and selected his key in the PGP provider if (xmppConnectionServiceBound) { if (data.getExtras().containsKey(OpenPgpApi.EXTRA_SIGN_KEY_ID)) { + // associate selected PGP keyId with the account mSelectedConversation.getAccount().setPgpSignId(data.getExtras().getLong(OpenPgpApi.EXTRA_SIGN_KEY_ID)); + // we need to announce the key as described in XEP-027 announcePgp(mSelectedConversation.getAccount(), null); } else { choosePgpSignId(mSelectedConversation.getAccount()); @@ -1283,7 +1286,7 @@ public class ConversationActivity extends XmppActivity } } else if (requestCode == REQUEST_ANNOUNCE_PGP) { if (xmppConnectionServiceBound) { - announcePgp(mSelectedConversation.getAccount(), null); + announcePgp(mSelectedConversation.getAccount(), mSelectedConversation); this.mPostponedActivityResult = null; } else { this.mPostponedActivityResult = new Pair<>(requestCode, data); -- cgit v1.2.3 From ad5bcb7d43494dd90d555cee42b9c69ec7326f1f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 Jan 2016 18:57:19 +0100 Subject: removed some unused methods from db backend --- .../conversations/persistance/DatabaseBackend.java | 83 ---------------------- 1 file changed, 83 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java index d6e580dff..77c16f25b 100644 --- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java @@ -379,22 +379,6 @@ public class DatabaseBackend extends SQLiteOpenHelper { db.insert(Account.TABLENAME, null, account.getContentValues()); } - public void createContact(Contact contact) { - SQLiteDatabase db = this.getWritableDatabase(); - db.insert(Contact.TABLENAME, null, contact.getContentValues()); - } - - public int getConversationCount() { - SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.rawQuery("select count(uuid) as count from " - + Conversation.TABLENAME + " where " + Conversation.STATUS - + "=" + Conversation.STATUS_AVAILABLE, null); - cursor.moveToFirst(); - int count = cursor.getInt(0); - cursor.close(); - return count; - } - public CopyOnWriteArrayList getConversations(int status) { CopyOnWriteArrayList list = new CopyOnWriteArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); @@ -593,12 +577,6 @@ public class DatabaseBackend extends SQLiteOpenHelper { updateAccount(account); } - public void deleteMessage(Message message) { - SQLiteDatabase db = this.getWritableDatabase(); - String[] args = {message.getUuid()}; - db.delete(Message.TABLENAME, Message.UUID + "=?", args); - } - public void deleteMessagesInConversation(Conversation conversation) { SQLiteDatabase db = this.getWritableDatabase(); String[] args = {conversation.getUuid()}; @@ -622,67 +600,6 @@ public class DatabaseBackend extends SQLiteOpenHelper { } } - public Conversation findConversationByUuid(String conversationUuid) { - SQLiteDatabase db = this.getReadableDatabase(); - String[] selectionArgs = {conversationUuid}; - Cursor cursor = db.query(Conversation.TABLENAME, null, - Conversation.UUID + "=?", selectionArgs, null, null, null); - if (cursor.getCount() == 0) { - return null; - } - cursor.moveToFirst(); - Conversation conversation = Conversation.fromCursor(cursor); - cursor.close(); - return conversation; - } - - public Message findMessageByUuid(String messageUuid) { - SQLiteDatabase db = this.getReadableDatabase(); - String[] selectionArgs = {messageUuid}; - Cursor cursor = db.query(Message.TABLENAME, null, Message.UUID + "=?", - selectionArgs, null, null, null); - if (cursor.getCount() == 0) { - return null; - } - cursor.moveToFirst(); - Message message = Message.fromCursor(cursor); - cursor.close(); - return message; - } - - public Account findAccountByUuid(String accountUuid) { - SQLiteDatabase db = this.getReadableDatabase(); - String[] selectionArgs = {accountUuid}; - Cursor cursor = db.query(Account.TABLENAME, null, Account.UUID + "=?", - selectionArgs, null, null, null); - if (cursor.getCount() == 0) { - return null; - } - cursor.moveToFirst(); - Account account = Account.fromCursor(cursor); - cursor.close(); - return account; - } - - public List getImageMessages(Conversation conversation) { - ArrayList list = new ArrayList<>(); - SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor; - String[] selectionArgs = {conversation.getUuid(), String.valueOf(Message.TYPE_IMAGE)}; - cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION - + "=? AND " + Message.TYPE + "=?", selectionArgs, null, null, null); - if (cursor.getCount() > 0) { - cursor.moveToLast(); - do { - Message message = Message.fromCursor(cursor); - message.setConversation(conversation); - list.add(message); - } while (cursor.moveToPrevious()); - } - cursor.close(); - return list; - } - private Cursor getCursorForSession(Account account, AxolotlAddress contact) { final SQLiteDatabase db = this.getReadableDatabase(); String[] columns = null; -- cgit v1.2.3 From 41ae4af1b812f76d1ba13d7c1f99e0f6ec80705b Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 Jan 2016 18:57:47 +0100 Subject: made constructor private in Account entity --- src/main/java/eu/siacs/conversations/entities/Account.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 46865a6fd..4abfc801a 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -162,16 +162,12 @@ public class Account extends AbstractEntity { private List bookmarks = new CopyOnWriteArrayList<>(); private final Collection blocklist = new CopyOnWriteArraySet<>(); - public Account() { - this.uuid = "0"; - } - public Account(final Jid jid, final String password) { this(java.util.UUID.randomUUID().toString(), jid, password, 0, null, "", null, null, null, 5222); } - public Account(final String uuid, final Jid jid, + private Account(final String uuid, final Jid jid, final String password, final int options, final String rosterVersion, final String keys, final String avatar, String displayName, String hostname, int port) { this.uuid = uuid; -- cgit v1.2.3 From 7b1efe15cdb298dc30e50949be6803c4489e18da Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 Jan 2016 19:21:11 +0100 Subject: reuse same xmppconnection for reconnects --- .../conversations/services/XmppConnectionService.java | 18 +++++++++--------- .../eu/siacs/conversations/xmpp/XmppConnection.java | 8 ++++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 6e3e626a5..a295b2cee 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -2451,11 +2451,14 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa private void reconnectAccount(final Account account, final boolean force, final boolean interactive) { synchronized (account) { - if (account.getXmppConnection() != null) { + XmppConnection connection = account.getXmppConnection(); + if (connection != null) { disconnect(account, force); + } else { + connection = createConnection(account); + account.setXmppConnection(connection); } if (!account.isOptionSet(Account.OPTION_DISABLED)) { - synchronized (this.mInProgressAvatarFetches) { for (Iterator iterator = this.mInProgressAvatarFetches.iterator(); iterator.hasNext(); ) { final String KEY = iterator.next(); @@ -2464,10 +2467,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa } } } - - if (account.getXmppConnection() == null) { - account.setXmppConnection(createConnection(account)); - } else if (!force) { + if (!force) { try { Log.d(Config.LOGTAG, "wait for disconnect"); Thread.sleep(500); //sleep wait for disconnect @@ -2475,13 +2475,13 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa //ignored } } - Thread thread = new Thread(account.getXmppConnection()); - account.getXmppConnection().setInteractive(interactive); + Thread thread = new Thread(connection); + connection.setInteractive(interactive); thread.start(); scheduleWakeUpCall(Config.CONNECT_DISCO_TIMEOUT, account.getUuid().hashCode()); } else { account.getRoster().clearPresences(); - account.setXmppConnection(null); + connection.resetEverything(); } } } diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 9e83491f4..1f114141f 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -875,6 +875,14 @@ public class XmppConnection implements Runnable { + instructions); } + public void resetEverything() { + resetStreamId(); + clearIqCallbacks(); + synchronized (this.disco) { + disco.clear(); + } + } + private void sendBindRequest() { while(!mXmppConnectionService.areMessagesInitialized() && socket != null && !socket.isClosed()) { try { -- cgit v1.2.3 From a83365ee959e7d27f6abcfd0692499eaf14986fd Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 Jan 2016 21:18:59 +0100 Subject: make ConversationsActivity more resistent against being restarted --- .../java/eu/siacs/conversations/ui/ConversationActivity.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 2f6ebe33c..a677e5b24 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -150,8 +150,7 @@ public class ConversationActivity extends XmppActivity public boolean isConversationsOverviewHideable() { if (mContentView instanceof SlidingPaneLayout) { - SlidingPaneLayout mSlidingPaneLayout = (SlidingPaneLayout) mContentView; - return mSlidingPaneLayout.isSlideable(); + return true; } else { return false; } @@ -1147,6 +1146,7 @@ public class ConversationActivity extends XmppActivity } else { if (isConversationsOverviewHideable()) { openConversation(); + updateActionBarTitle(true); } } this.mConversationFragment.reInit(getSelectedConversation()); @@ -1327,7 +1327,13 @@ public class ConversationActivity extends XmppActivity } } else if (requestCode == REQUEST_TRUST_KEYS_TEXT || requestCode == REQUEST_TRUST_KEYS_MENU) { this.forbidProcessingPendings = !xmppConnectionServiceBound; - mConversationFragment.onActivityResult(requestCode, resultCode, data); + if (xmppConnectionServiceBound) { + mConversationFragment.onActivityResult(requestCode, resultCode, data); + this.mPostponedActivityResult = null; + } else { + this.mPostponedActivityResult = new Pair<>(requestCode, data); + } + } } else { mPendingImageUris.clear(); -- cgit v1.2.3 From 3acaec7bcd8204c92e0ffe68301645f80b5c925d Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 Jan 2016 21:21:14 +0100 Subject: pulled translations from transifex --- src/main/res/values-es/strings.xml | 12 ++++++++++-- src/main/res/values-eu/strings.xml | 29 +++++++++++++++++++++++++++++ src/main/res/values-ro-rRO/strings.xml | 2 +- src/main/res/values-sr/strings.xml | 9 +++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 9ca14f40b..6bd69afbc 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -375,6 +375,7 @@ Eliminar clave ¿Estás seguro de que quieres eliminar esta clave? Esto será irreversible y nunca podrás iniciar sesión con esta clave de nuevo. + No hay claves usables disponibles para este contacto. La búsqueda de nuevas claves al servidor ha fallado. Puede que exista un problema con el servidor de tus contactos. No hay claves usables disponibles para este contacto. Si has eliminado alguna de sus claves, tus contactos necesitarán generar nuevas claves. Error Buscando historial en el servidor @@ -488,6 +489,7 @@ Error al descargar: No se ha podido conectar con el servidor Usar fondo blanco Mostrar mensajes recibidos en texto negro con fondo blanco + Red Tor no disponible. Error Opciones de presencia Ausente con pantalla apagada @@ -508,6 +510,7 @@ ¡Tu dispositivo no soporta la elección de certificados de cliente! Opciones de conexión Conectar via Tor + Todas las conexiones se realizan a través de la red TOR. Requiere Orbot Hostname Puerto Server- or .onion-Address @@ -522,8 +525,8 @@ Imagen compartida con %s Conversations necesita acceder al almacenamiento externo Sincronizar contactos - Conversations quiere cruzar tu lista de contactos de XMPP con tus contactos del móvil para mostrar sus nombres completos y sus fotos de perfil.\n\nConversations solo leerá tus contactos y los cruzará localmente sin subirlos a tu servidor.\n\nEl sistema te preguntará para conceder los permisos de acceso a tus contactos del móvil. - Información de certificados + Conversations quiere cruzar tu lista de contactos de XMPP con tus contactos del móvil para mostrar sus nombres completos y sus fotos de perfil.\n\nConversations solo leerá tus contactos y los cruzará localmente sin subirlos a tu servidor.\n\nEl sistema te preguntará ahora para conceder los permisos de acceso a tus contactos del móvil. + Información de certificado Asunto Editor Nombre @@ -538,4 +541,9 @@ Comprimir imagenes Redimiensionar y comprimir imágenes Siempre + Automáticamente + Optimizaciones de uso de batería habilitadas + Tu dispositivo está realizando optimizaciones de uso de batería en Conversations que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\nEs recomendable deshabilitarlas. + Tu dispositivo está realizando optimizaciones de uso de batería en Conversations que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\n\nEl sistema te preguntará ahora para deshabilitarlas. + Deshabilitar diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml index 0007323bf..d51b6f836 100644 --- a/src/main/res/values-eu/strings.xml +++ b/src/main/res/values-eu/strings.xml @@ -9,6 +9,7 @@ Elkarrizketa segurua Kontua gehitu Izena editatu + Helbideen liburura gehitu Zerrendatik ezabatu Kontaktua blokeatu Kontaktua desblokeatu @@ -172,6 +173,7 @@ Pasahitzak ez dute bat egiten Hau ez da Jabber ID baliodun bat Memoriarik gabe. Irudia handiegia da + %s zure helbideen liburura gehitu nahi duzu? konektatuta hitzegiteko aske kanpoan @@ -220,12 +222,14 @@ Konferentziak Bilatu Kontaktua sortu + Kontaktua sartu Konferentziara batu Kontaktua ezabatu Kontaktuaren xehetasunak ikusi Kontaktua blokeatu Kontaktua desblokeatu Sortu + Hautatu Kontaktua existitzen da dagoeneko Batu Konferentziaren helbidea @@ -371,6 +375,7 @@ Gakoa purgatu Ziur al zaude gako hau purgatu nahi duzulaz? Modu itzulezinean arriskutsutzat hartuko da, eta ezingo duzu gakoarekin berriro saio berri bat sortu. + Ez dago gako erabilgarririk kontaktu honetarako.\nEzin izan da zerbitzaritik gako berririk eskuratu. Agian akatsen bat dago zure kontaktuen zerbitzariarekin. Kontaktu honetarako gako erabilgarririk ez dago. Bere gakoak purgatu badituzu, berri batzuk sortu behar dituzte. Akatsa Mezuak zerbitzaritik eskuratzen @@ -484,11 +489,13 @@ Deskargak huts egin du: ezin izan da ostalarira konektatu Atzeko-planoan kolore zuria erabili Jasotako mezuak testu beltza atzeko-plano zuri baten gainean bezala erakutsi + Tor sarea ez dago eskuragarri Hondatuta Presentzia ezarpenak Urrun pantaila itzalita dagoenean Zure baliabidea urrun bezala markatzen du pantaila itzalita dagoenean Ez eskuragarri modu isilean + Zure baliabidea ez eskuragarri bezala markatzen du gailua modu isilean dagoenean Kontua ziurtagiriarekin gehitu Ezin izan da ziurtagiria aztertu Utzi hutsik ziurtagiririk gabe autentifikatzeko @@ -503,6 +510,7 @@ Zure gailuak ez du bezero ziurtagiriak aukeratzea onartzen! Konexioaren aukerak Tor bidez konektatu + Konexio guztiak Tor sarean zehar igaro. Orbot behar du Ostalariaren izena Ataka Zerbitzari- edo .onion-helbidea @@ -517,4 +525,25 @@ Irudia %s(r)ekin partekatu da Conversationsek kanpoko biltegirako sarbidea behar du Kontaktuekin sinkronizatu + Conversationsek zure XMPP zerrenda eta zure kontaktuak uztartu nahi ditu haien izenak eta argazkiak erakusteko.\n\nConversationsek zure kontaktuak modu lokalean soilik irakurri eta uztartuko ditu, zure zerbitzarira kargatu gabe.\n\nJarraian baimenak eskatuko zaizkizu zure kontaktuetara sartu ahal izateko. + Ziurtagiriaren informazioa + Subjektua + Igorlea + Izen arrunta + Erakundea + SHA1 + (Ez eskuragarri) + Ez da ziurtagiririk aurkitu + Mezu guztiak jakinarazi + Jakinarazi nabarmentzerakoan soilik + Jakinarazpenak ezgaituta + Jakinarazpenak gelditu dira + Irudiak konprimitu + Irudiak konprimitu eta neurria aldatu + Beti + Automatikoki + Bateriaren optimizazioak gaituta + Zure gailua jakinarazpen atzeratuak edota mezuen galera ekar lezaketen bateriaren optimizazio handiak egiten ari da Conversationsen.\nHoriek ezgaitzea gomendatzen da. + Zure gailua jakinarazpen atzeratuak edota mezuen galera ekar lezaketen bateriaren optimizazio handiak egiten ari da Conversationsen.\nJarraian hauek ezgaitzea eskatuko zaizu. + Ezgaitu diff --git a/src/main/res/values-ro-rRO/strings.xml b/src/main/res/values-ro-rRO/strings.xml index 6bf357617..8a8a4c99a 100644 --- a/src/main/res/values-ro-rRO/strings.xml +++ b/src/main/res/values-ro-rRO/strings.xml @@ -285,7 +285,7 @@ Informatii despre versiune si licenta Ore de liniste Ora de pornire - Ora de inchidere + Ora de oprire Activeaza orar de liniste Notificarile vor fi reduse la tacere in timpul orelor de liniste Mareste marimea literelor diff --git a/src/main/res/values-sr/strings.xml b/src/main/res/values-sr/strings.xml index e8398398d..97c15f54d 100644 --- a/src/main/res/values-sr/strings.xml +++ b/src/main/res/values-sr/strings.xml @@ -498,6 +498,7 @@ Означава ваш ресурс одсутним кад је екран искључен Недоступан у тихом режиму Означава ваш ресурс недоступним кад је уређај у тихом режиму + Додај налог сертификатом Не могу да рашчланим сертификат Оставите празно за аутентификацију сертификатом Текст стопке @@ -527,6 +528,7 @@ Подељена слика са %s Конверзацији је потребан приступ спољашњем складишту Синхронизуј са контактима + Конверзација жели да поклапи ваш ИксМПП именик са контактима на вашем уређају да би приказала њихова пуна имена и аватаре.\n\nКонверзација ће само да очита ваше контакте и упореди их локално без отпремања на сервер.\n\nСада ћете бити упитани за дозволу приступа вашим контактима. Подаци о сертификату Предмет Издавач @@ -540,4 +542,11 @@ Обавештења искључена Обавештења паузирана Компресуј слике + Промена величине и компресије слике + увек + аутоматски + Оптимизација батерије је укључена + Ваш уређај користи оптимизацију потрошње батерије за Конверзацију што може да доведе до застоја обавештења или чак губитка порука.\nПрепоручљиво је да то искључите. + Ваш уређај користи оптимизацију потрошње батерије за Конверзацију што може да доведе до застоја обавештења или чак губитка порука.\n\nСада ћете бити упитани да то искључите. + Искључи -- cgit v1.2.3