make jids appear as monospace in dialogs
This commit is contained in:
		
							parent
							
								
									fd165e5106
								
							
						
					
					
						commit
						8980a0c631
					
				|  | @ -1,6 +1,7 @@ | |||
| package eu.siacs.conversations.ui; | ||||
| 
 | ||||
| import android.databinding.DataBindingUtil; | ||||
| import android.support.annotation.StringRes; | ||||
| import android.support.v7.app.AlertDialog; | ||||
| import android.text.SpannableString; | ||||
| import android.text.Spanned; | ||||
|  | @ -12,6 +13,7 @@ import eu.siacs.conversations.R; | |||
| import eu.siacs.conversations.databinding.DialogBlockContactBinding; | ||||
| import eu.siacs.conversations.entities.Blockable; | ||||
| import eu.siacs.conversations.entities.Conversation; | ||||
| import eu.siacs.conversations.ui.util.JidDialog; | ||||
| import rocks.xmpp.addr.Jid; | ||||
| 
 | ||||
| public final class BlockContactDialog { | ||||
|  | @ -24,23 +26,19 @@ public final class BlockContactDialog { | |||
| 		binding.reportSpam.setVisibility(!isBlocked && reporting ? View.VISIBLE : View.GONE); | ||||
| 		builder.setView(binding.getRoot()); | ||||
| 
 | ||||
| 		String value; | ||||
| 		SpannableString spannable; | ||||
| 		final String value; | ||||
| 		@StringRes int res; | ||||
| 		if (blockable.getJid().getLocal() == null || blockable.getAccount().isBlocked(Jid.ofDomain(blockable.getJid().getDomain()))) { | ||||
| 			builder.setTitle(isBlocked ? R.string.action_unblock_domain : R.string.action_block_domain); | ||||
| 			value = Jid.ofDomain(blockable.getJid().getDomain()).toString(); | ||||
| 			spannable = new SpannableString(xmppActivity.getString(isBlocked ? R.string.unblock_domain_text : R.string.block_domain_text, value)); | ||||
| 			res = isBlocked ? R.string.unblock_domain_text : R.string.block_domain_text; | ||||
| 		} else { | ||||
| 			int resBlockAction = blockable instanceof Conversation && ((Conversation) blockable).isWithStranger() ? R.string.block_stranger : R.string.action_block_contact; | ||||
| 			builder.setTitle(isBlocked ? R.string.action_unblock_contact : resBlockAction); | ||||
| 			value = blockable.getJid().asBareJid().toString(); | ||||
| 			spannable = new SpannableString(xmppActivity.getString(isBlocked ? R.string.unblock_contact_text : R.string.block_contact_text, value)); | ||||
| 			res = isBlocked ? R.string.unblock_contact_text : R.string.block_contact_text; | ||||
| 		} | ||||
| 		int start = spannable.toString().indexOf(value); | ||||
| 		if (start >= 0) { | ||||
| 			spannable.setSpan(new TypefaceSpan("monospace"), start, start + value.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); | ||||
| 		} | ||||
| 		binding.text.setText(spannable); | ||||
| 		binding.text.setText(JidDialog.style(xmppActivity, res, value)); | ||||
| 		builder.setPositiveButton(isBlocked ? R.string.unblock : R.string.block, (dialog, which) -> { | ||||
| 			if (isBlocked) { | ||||
| 				xmppActivity.xmppConnectionService.sendUnblockRequest(blockable); | ||||
|  |  | |||
|  | @ -44,6 +44,7 @@ import eu.siacs.conversations.ui.adapter.MediaAdapter; | |||
| import eu.siacs.conversations.ui.interfaces.OnMediaLoaded; | ||||
| import eu.siacs.conversations.ui.util.Attachment; | ||||
| import eu.siacs.conversations.ui.util.GridManager; | ||||
| import eu.siacs.conversations.ui.util.JidDialog; | ||||
| import eu.siacs.conversations.ui.util.MenuDoubleTabUtil; | ||||
| import eu.siacs.conversations.utils.Compatibility; | ||||
| import eu.siacs.conversations.utils.IrregularUnicodeDetector; | ||||
|  | @ -241,7 +242,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
|                 break; | ||||
|             case R.id.action_delete_contact: | ||||
|                 builder.setTitle(getString(R.string.action_delete_contact)) | ||||
|                         .setMessage(getString(R.string.remove_contact_text, contact.getJid().toString())) | ||||
|                         .setMessage(JidDialog.style(this, R.string.remove_contact_text, contact.getJid().toEscapedString())) | ||||
|                         .setPositiveButton(getString(R.string.delete), | ||||
|                                 removeFromRoster).create().show(); | ||||
|                 break; | ||||
|  |  | |||
|  | @ -71,6 +71,7 @@ import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate; | |||
| import eu.siacs.conversations.ui.adapter.ListItemAdapter; | ||||
| import eu.siacs.conversations.ui.interfaces.OnBackendConnected; | ||||
| import eu.siacs.conversations.ui.service.EmojiService; | ||||
| import eu.siacs.conversations.ui.util.JidDialog; | ||||
| import eu.siacs.conversations.ui.util.MenuDoubleTabUtil; | ||||
| import eu.siacs.conversations.ui.util.PendingItem; | ||||
| import eu.siacs.conversations.ui.util.SoftKeyboardUtils; | ||||
|  | @ -427,7 +428,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne | |||
| 		final AlertDialog.Builder builder = new AlertDialog.Builder(this); | ||||
| 		builder.setNegativeButton(R.string.cancel, null); | ||||
| 		builder.setTitle(R.string.action_delete_contact); | ||||
| 		builder.setMessage(getString(R.string.remove_contact_text, contact.getJid())); | ||||
| 		builder.setMessage(JidDialog.style(this, R.string.remove_contact_text, contact.getJid().toEscapedString())); | ||||
| 		builder.setPositiveButton(R.string.delete, (dialog, which) -> { | ||||
| 			xmppConnectionService.deleteContactOnServer(contact); | ||||
| 			filter(mSearchEditText.getText().toString()); | ||||
|  | @ -442,8 +443,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne | |||
| 		AlertDialog.Builder builder = new AlertDialog.Builder(this); | ||||
| 		builder.setNegativeButton(R.string.cancel, null); | ||||
| 		builder.setTitle(R.string.delete_bookmark); | ||||
| 		builder.setMessage(getString(R.string.remove_bookmark_text, | ||||
| 				bookmark.getJid())); | ||||
| 		builder.setMessage(JidDialog.style(this, R.string.remove_bookmark_text, bookmark.getJid().toEscapedString())); | ||||
| 		builder.setPositiveButton(R.string.delete, (dialog, which) -> { | ||||
| 			bookmark.setConversation(null); | ||||
| 			Account account = bookmark.getAccount(); | ||||
|  | @ -821,13 +821,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne | |||
| 		View view = getLayoutInflater().inflate(R.layout.dialog_verify_fingerprints, null); | ||||
| 		final CheckBox isTrustedSource = view.findViewById(R.id.trusted_source); | ||||
| 		TextView warning = view.findViewById(R.id.warning); | ||||
| 		String jid = contact.getJid().asBareJid().toString(); | ||||
| 		SpannableString spannable = new SpannableString(getString(R.string.verifying_omemo_keys_trusted_source, jid, contact.getDisplayName())); | ||||
| 		int start = spannable.toString().indexOf(jid); | ||||
| 		if (start >= 0) { | ||||
| 			spannable.setSpan(new TypefaceSpan("monospace"), start, start + jid.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); | ||||
| 		} | ||||
| 		warning.setText(spannable); | ||||
| 		warning.setText(JidDialog.style(this, R.string.verifying_omemo_keys_trusted_source, contact.getJid().asBareJid().toEscapedString(), contact.getDisplayName())); | ||||
| 		builder.setView(view); | ||||
| 		builder.setPositiveButton(R.string.confirm, (dialog, which) -> { | ||||
| 			if (isTrustedSource.isChecked() && invite.hasFingerprints()) { | ||||
|  |  | |||
|  | @ -0,0 +1,23 @@ | |||
| package eu.siacs.conversations.ui.util; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.support.annotation.StringRes; | ||||
| import android.text.SpannableString; | ||||
| import android.text.Spanned; | ||||
| import android.text.style.TypefaceSpan; | ||||
| 
 | ||||
| 
 | ||||
| public class JidDialog { | ||||
| 
 | ||||
|     public static SpannableString style(Context context, @StringRes int res, String... args) { | ||||
|         SpannableString spannable = new SpannableString(context.getString(res, (Object[]) args)); | ||||
|         if (args.length >= 1) { | ||||
|             final String value = args[0]; | ||||
|             int start = spannable.toString().indexOf(value); | ||||
|             if (start >= 0) { | ||||
|                 spannable.setSpan(new TypefaceSpan("monospace"), start, start + value.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); | ||||
|             } | ||||
|         } | ||||
|         return spannable; | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch