some code cleanup to deal with the roster mgmt changes from earlier

This commit is contained in:
Daniel Gultsch 2014-05-19 15:39:50 +02:00
parent 993477cd83
commit a6f9a742c0
3 changed files with 53 additions and 76 deletions

View file

@ -263,7 +263,7 @@ public class ConversationFragment extends Fragment {
} }
private void displayInfoMessage(ViewHolder viewHolder, int r) { private void displayInfoMessage(ViewHolder viewHolder, int r) {
if (viewHolder.download_button!=null) { if (viewHolder.download_button != null) {
viewHolder.download_button.setVisibility(View.GONE); viewHolder.download_button.setVisibility(View.GONE);
} }
viewHolder.image.setVisibility(View.GONE); viewHolder.image.setVisibility(View.GONE);
@ -329,7 +329,8 @@ public class ConversationFragment extends Fragment {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW); Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(ImageProvider.getContentUri(message), "image/*"); intent.setDataAndType(
ImageProvider.getContentUri(message), "image/*");
startActivity(intent); startActivity(intent);
} }
}); });
@ -486,7 +487,7 @@ public class ConversationFragment extends Fragment {
@Override @Override
public void onStop() { public void onStop() {
super.onStop(); super.onStop();
if (this.conversation!=null) { if (this.conversation != null) {
this.conversation.setNextMessage(chatMsg.getText().toString()); this.conversation.setNextMessage(chatMsg.getText().toString());
} }
} }
@ -577,13 +578,15 @@ public class ConversationFragment extends Fragment {
} }
public void updateMessages() { public void updateMessages() {
if (getView()==null) { if (getView() == null) {
return; return;
} }
ConversationActivity activity = (ConversationActivity) getActivity(); ConversationActivity activity = (ConversationActivity) getActivity();
if (this.conversation != null) { if (this.conversation != null) {
for (Message message : this.conversation.getMessages()) { for (Message message : this.conversation.getMessages()) {
if ((message.getEncryption() == Message.ENCRYPTION_PGP)&&((message.getStatus() == Message.STATUS_RECIEVED)||(message.getStatus() == Message.STATUS_SEND))) { if ((message.getEncryption() == Message.ENCRYPTION_PGP)
&& ((message.getStatus() == Message.STATUS_RECIEVED) || (message
.getStatus() == Message.STATUS_SEND))) {
decryptMessage(message); decryptMessage(message);
break; break;
} }
@ -623,31 +626,26 @@ public class ConversationFragment extends Fragment {
protected void makeFingerprintWarning(int latestEncryption) { protected void makeFingerprintWarning(int latestEncryption) {
final LinearLayout fingerprintWarning = (LinearLayout) getView() final LinearLayout fingerprintWarning = (LinearLayout) getView()
.findViewById(R.id.new_fingerprint); .findViewById(R.id.new_fingerprint);
if (conversation.getContact() != null) { Set<String> knownFingerprints = conversation.getContact()
Set<String> knownFingerprints = conversation.getContact() .getOtrFingerprints();
.getOtrFingerprints(); if ((latestEncryption == Message.ENCRYPTION_OTR)
if ((latestEncryption == Message.ENCRYPTION_OTR) && (conversation.hasValidOtrSession()
&& (conversation.hasValidOtrSession() && (conversation.getOtrSession().getSessionStatus() == SessionStatus.ENCRYPTED) && (!knownFingerprints
&& (conversation.getOtrSession().getSessionStatus() == SessionStatus.ENCRYPTED) && (!knownFingerprints .contains(conversation.getOtrFingerprint())))) {
.contains(conversation.getOtrFingerprint())))) { fingerprintWarning.setVisibility(View.VISIBLE);
fingerprintWarning.setVisibility(View.VISIBLE); TextView fingerprint = (TextView) getView().findViewById(
TextView fingerprint = (TextView) getView().findViewById( R.id.otr_fingerprint);
R.id.otr_fingerprint); fingerprint.setText(conversation.getOtrFingerprint());
fingerprint.setText(conversation.getOtrFingerprint()); fingerprintWarning.setOnClickListener(new OnClickListener() {
fingerprintWarning.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
AlertDialog dialog = UIHelper AlertDialog dialog = UIHelper.getVerifyFingerprintDialog(
.getVerifyFingerprintDialog( (ConversationActivity) getActivity(), conversation,
(ConversationActivity) getActivity(), fingerprintWarning);
conversation, fingerprintWarning); dialog.show();
dialog.show(); }
} });
});
} else {
fingerprintWarning.setVisibility(View.GONE);
}
} else { } else {
fingerprintWarning.setVisibility(View.GONE); fingerprintWarning.setVisibility(View.GONE);
} }
@ -666,35 +664,31 @@ public class ConversationFragment extends Fragment {
final Contact contact = message.getConversation().getContact(); final Contact contact = message.getConversation().getContact();
if (activity.hasPgp()) { if (activity.hasPgp()) {
if (contact.getPgpKeyId() != 0) { if (contact.getPgpKeyId() != 0) {
xmppService.getPgpEngine().hasKey(contact, xmppService.getPgpEngine().hasKey(contact, new UiCallback() {
new UiCallback() {
@Override @Override
public void userInputRequried(PendingIntent pi) { public void userInputRequried(PendingIntent pi) {
activity.runIntent( activity.runIntent(pi,
pi, ConversationActivity.REQUEST_ENCRYPT_MESSAGE);
ConversationActivity.REQUEST_ENCRYPT_MESSAGE); }
}
@Override @Override
public void success() { public void success() {
activity.encryptTextMessage(); activity.encryptTextMessage();
} }
@Override @Override
public void error(int error) { public void error(int error) {
} }
}); });
} else { } else {
showNoPGPKeyDialog(new DialogInterface.OnClickListener() { showNoPGPKeyDialog(new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, public void onClick(DialogInterface dialog, int which) {
int which) { conversation.setNextEncryption(Message.ENCRYPTION_NONE);
conversation
.setNextEncryption(Message.ENCRYPTION_NONE);
message.setEncryption(Message.ENCRYPTION_NONE); message.setEncryption(Message.ENCRYPTION_NONE);
xmppService.sendMessage(message, null); xmppService.sendMessage(message, null);
chatMsg.setText(""); chatMsg.setText("");
@ -703,15 +697,15 @@ public class ConversationFragment extends Fragment {
} }
} }
} }
public void showNoPGPKeyDialog(DialogInterface.OnClickListener listener) { public void showNoPGPKeyDialog(DialogInterface.OnClickListener listener) {
AlertDialog.Builder builder = new AlertDialog.Builder( AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
getActivity());
builder.setTitle(getString(R.string.no_pgp_key)); builder.setTitle(getString(R.string.no_pgp_key));
builder.setIconAttribute(android.R.attr.alertDialogIcon); builder.setIconAttribute(android.R.attr.alertDialogIcon);
builder.setMessage(getText(R.string.contact_has_no_pgp_key)); builder.setMessage(getText(R.string.contact_has_no_pgp_key));
builder.setNegativeButton(getString(R.string.cancel), null); builder.setNegativeButton(getString(R.string.cancel), null);
builder.setPositiveButton(getString(R.string.send_unencrypted),listener); builder.setPositiveButton(getString(R.string.send_unencrypted),
listener);
builder.create().show(); builder.create().show();
} }

View file

@ -17,7 +17,6 @@ import android.content.SharedPreferences;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.ImageView; import android.widget.ImageView;
@ -29,15 +28,6 @@ public class ShareWithActivity extends XmppActivity {
private LinearLayout conversations; private LinearLayout conversations;
private LinearLayout contacts; private LinearLayout contacts;
private OnClickListener click = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
};
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -71,7 +61,7 @@ public class ShareWithActivity extends XmppActivity {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean useSubject = preferences.getBoolean("use_subject_in_muc", true); boolean useSubject = preferences.getBoolean("use_subject_in_muc", true);
Set<String> displayedContacts = new HashSet<String>(); Set<Contact> displayedContacts = new HashSet<Contact>();
conversations.removeAllViews(); conversations.removeAllViews();
List<Conversation> convList = xmppConnectionService.getConversations(); List<Conversation> convList = xmppConnectionService.getConversations();
Collections.sort(convList, new Comparator<Conversation>() { Collections.sort(convList, new Comparator<Conversation>() {
@ -95,15 +85,13 @@ public class ShareWithActivity extends XmppActivity {
} }
}); });
conversations.addView(view); conversations.addView(view);
if (conversation.getContact() != null) { displayedContacts.add(conversation.getContact());
displayedContacts.add(conversation.getContact().getUuid());
}
} }
contacts.removeAllViews(); contacts.removeAllViews();
final List<Contact> contactsList = new ArrayList<Contact>(); List<Contact> contactsList = new ArrayList<Contact>();
for(Account account : xmppConnectionService.getAccounts()) { for(Account account : xmppConnectionService.getAccounts()) {
for(final Contact contact : account.getRoster().getContacts()) { for(Contact contact : account.getRoster().getContacts()) {
if (!displayedContacts.contains(contact.getUuid())) { if (!displayedContacts.contains(contact)&&(contact.getOption(Contact.Options.IN_ROSTER))) {
contactsList.add(contact); contactsList.add(contact);
} }
} }

View file

@ -247,13 +247,8 @@ public class UIHelper {
public static Bitmap getContactPicture(Conversation conversation, int dpSize, Context context, boolean notification) { public static Bitmap getContactPicture(Conversation conversation, int dpSize, Context context, boolean notification) {
if(conversation.getMode() == Conversation.MODE_SINGLE) { if(conversation.getMode() == Conversation.MODE_SINGLE) {
if (conversation.getContact() != null){
return getContactPicture(conversation.getContact(), dpSize, return getContactPicture(conversation.getContact(), dpSize,
context, notification); context, notification);
} else {
return getContactPicture(conversation.getName(false), dpSize,
context, notification);
}
} else{ } else{
int fgColor = UIHelper.FG_COLOR, int fgColor = UIHelper.FG_COLOR,
bgColor = (notification) ? bgColor = (notification) ?