From 82bccedf7001d08c6ee93dc713a94434ed2f7ab4 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 2 May 2014 12:02:18 +0200 Subject: [PATCH] nicer dialog screen if openkeychain is not installed --- res/values/strings.xml | 4 +++ .../ui/ConversationFragment.java | 2 +- .../siacs/conversations/ui/XmppActivity.java | 25 +++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 5d5d559ac..f4b7d5fa1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -79,4 +79,8 @@ Sending files to an offline contact is unfortunately not supported. Send unencrypted Decrpytion failed. Maybe you don’t have the proper private key. + OpenKeychain + Conversations utilizes a third party called OpenKeychain to encrypt and decrypt messages and to mange your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\nTo use openPGP please install the app and then restart Conversations. + Restart + Install diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java index e7a5ccf88..c2373cf17 100644 --- a/src/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/eu/siacs/conversations/ui/ConversationFragment.java @@ -271,7 +271,7 @@ public class ConversationFragment extends Fragment { if (item.getType() == Message.TYPE_IMAGE) { String[] fileParams = item.getBody().split(","); - if (fileParams.length>=1) { + if ((fileParams.length>=1)&&(item.getStatus() != Message.STATUS_PREPARING)) { long size = Long.parseLong(fileParams[0]); filesize = size/1024+" KB \u00B7 "; } diff --git a/src/eu/siacs/conversations/ui/XmppActivity.java b/src/eu/siacs/conversations/ui/XmppActivity.java index 4d15addbb..1f9c678a1 100644 --- a/src/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/eu/siacs/conversations/ui/XmppActivity.java @@ -10,8 +10,11 @@ import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.ComponentName; import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.ServiceConnection; +import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import android.view.MenuItem; @@ -84,9 +87,27 @@ public abstract class XmppActivity extends Activity { return true; } else { Builder builder = new AlertDialog.Builder(this); - builder.setTitle("OpenKeychain not found"); + builder.setTitle(getString(R.string.openkeychain_required)); builder.setIconAttribute(android.R.attr.alertDialogIcon); - builder.setMessage("Please make sure you have installed OpenKeychain"); + builder.setMessage(getText(R.string.openkeychain_required_long)); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.setNeutralButton(getString(R.string.restart), new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + // TODO Auto-generated method stub + + } + }); + builder.setPositiveButton(getString(R.string.install), new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + Uri uri = Uri.parse("market://details?id=org.sufficientlysecure.keychain"); + Intent intent = new Intent(Intent.ACTION_VIEW, uri); + startActivity(intent); + } + }); builder.create().show(); return false; }