OpenPGP key display in muc details is now prettier and linked to openkeychain

This commit is contained in:
iNPUTmice 2014-06-01 10:22:42 +02:00
parent ca49603c85
commit 5d0e1374b2
3 changed files with 46 additions and 9 deletions

View File

@ -35,6 +35,15 @@
android:textColor="#5b5b5b" android:textColor="#5b5b5b"
android:singleLine="true" android:singleLine="true"
/> />
<TextView
android:id="@+id/key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#5b5b5b"
android:typeface="monospace"
android:visibility="gone"
/>
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -303,4 +303,13 @@ public class PgpEngine {
Intent result = api.executeApi(params, null, null); Intent result = api.executeApi(params, null, null);
return (PendingIntent) result.getParcelableExtra(OpenPgpApi.RESULT_INTENT); return (PendingIntent) result.getParcelableExtra(OpenPgpApi.RESULT_INTENT);
} }
public PendingIntent getIntentForKey(Account account, long pgpKeyId) {
Intent params = new Intent();
params.setAction(OpenPgpApi.ACTION_GET_KEY);
params.putExtra(OpenPgpApi.EXTRA_KEY_ID, pgpKeyId);
params.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, account.getJid());
Intent result = api.executeApi(params, null, null);
return (PendingIntent) result.getParcelableExtra(OpenPgpApi.RESULT_INTENT);
}
} }

View File

@ -6,13 +6,16 @@ import java.util.List;
import org.openintents.openpgp.util.OpenPgpUtils; import org.openintents.openpgp.util.OpenPgpUtils;
import eu.siacs.conversations.R; import eu.siacs.conversations.R;
import eu.siacs.conversations.crypto.PgpEngine;
import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.MucOptions; import eu.siacs.conversations.entities.MucOptions;
import eu.siacs.conversations.entities.MucOptions.User; import eu.siacs.conversations.entities.MucOptions.User;
import eu.siacs.conversations.utils.UIHelper; import eu.siacs.conversations.utils.UIHelper;
import android.app.PendingIntent;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
@ -169,19 +172,35 @@ public class MucDetailsActivity extends XmppActivity {
} }
this.users.clear(); this.users.clear();
this.users.addAll(conversation.getMucOptions().getUsers()); this.users.addAll(conversation.getMucOptions().getUsers());
//contactsAdapter.notifyDataSetChanged();
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
membersView.removeAllViews(); membersView.removeAllViews();
for(User contact : conversation.getMucOptions().getUsers()) { for(final User contact : conversation.getMucOptions().getUsers()) {
View view = (View) inflater.inflate(R.layout.contact, null); View view = (View) inflater.inflate(R.layout.contact, null);
TextView displayName = (TextView) view.findViewById(R.id.contact_display_name);
((TextView) view.findViewById(R.id.contact_display_name)) TextView key = (TextView) view.findViewById(R.id.key);
.setText(contact.getName()); displayName.setText(contact.getName());
TextView role = (TextView) view.findViewById(R.id.contact_jid); TextView role = (TextView) view.findViewById(R.id.contact_jid);
if (contact.getPgpKeyId()==0) {
role.setText(getReadableRole(contact.getRole())); role.setText(getReadableRole(contact.getRole()));
} else { if (contact.getPgpKeyId()!=0) {
role.setText(getReadableRole(contact.getRole())+" \u00B7 "+OpenPgpUtils.convertKeyIdToHex(contact.getPgpKeyId())); key.setVisibility(View.VISIBLE);
key.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PgpEngine pgp = xmppConnectionService.getPgpEngine();
if (pgp!=null) {
PendingIntent intent = pgp.getIntentForKey(conversation.getAccount(), contact.getPgpKeyId());
if (intent!=null) {
try {
startIntentSenderForResult(intent.getIntentSender(), 0, null, 0, 0, 0);
} catch (SendIntentException e) {
}
}
}
}
});
key.setText(OpenPgpUtils.convertKeyIdToHex(contact.getPgpKeyId()));
} }
ImageView imageView = (ImageView) view ImageView imageView = (ImageView) view
.findViewById(R.id.contact_photo); .findViewById(R.id.contact_photo);