OpenPGP key display in muc details is now prettier and linked to openkeychain
This commit is contained in:
parent
ca49603c85
commit
5d0e1374b2
|
@ -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>
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue