List of usage examples for android.text SpannableStringBuilder append
public SpannableStringBuilder append(char text)
From source file:com.android.messaging.datamodel.BugleNotifications.java
static CharSequence formatInboxMessage(final String sender, final CharSequence message, final Uri attachmentUri, final String attachmentType) { final Context context = Factory.get().getApplicationContext(); final TextAppearanceSpan notificationSenderSpan = new TextAppearanceSpan(context, R.style.NotificationSenderText); final TextAppearanceSpan notificationTertiaryText = new TextAppearanceSpan(context, R.style.NotificationTertiaryText); final SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); if (!TextUtils.isEmpty(sender)) { spannableStringBuilder.append(sender); spannableStringBuilder.setSpan(notificationSenderSpan, 0, sender.length(), 0); }//from ww w . j av a 2 s. c o m final String separator = context.getString(R.string.notification_separator); if (!TextUtils.isEmpty(message)) { if (spannableStringBuilder.length() > 0) { spannableStringBuilder.append(separator); } final int start = spannableStringBuilder.length(); spannableStringBuilder.append(message); spannableStringBuilder.setSpan(notificationTertiaryText, start, start + message.length(), 0); } if (attachmentUri != null) { if (spannableStringBuilder.length() > 0) { spannableStringBuilder.append(separator); } spannableStringBuilder.append(formatAttachmentTag(null, attachmentType)); } return spannableStringBuilder; }
From source file:com.google.samples.apps.abelana.LoginActivity.java
private void displayDialog() { // Build the about body view and append the link to see OSS licenses SpannableStringBuilder aboutBody = new SpannableStringBuilder(); aboutBody.append(Html.fromHtml(getString(R.string.splash_dialog_body))); LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); TextView aboutBodyView = (TextView) layoutInflater.inflate(R.layout.dialog_about, null); aboutBodyView.setText(aboutBody);/*from w w w . j a v a 2 s . c o m*/ aboutBodyView.setMovementMethod(new LinkMovementMethod()); new AlertDialog.Builder(this).setTitle(getString(R.string.splash_dialog_title)).setView(aboutBodyView) .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }).show(); }
From source file:com.android.mail.browse.SubjectAndFolderView.java
public void setFolders(ConversationViewHeaderCallbacks callbacks, Account account, Conversation conv) { mVisibleFolders = true;/* w ww .j a v a 2s. c om*/ final BidiFormatter bidiFormatter = getBidiFormatter(); final String wrappedSubject = mSubject == null ? "" : bidiFormatter.unicodeWrap(mSubject); final SpannableStringBuilder sb = new SpannableStringBuilder(wrappedSubject); sb.append('\u0020'); final Settings settings = account.settings; final int start = sb.length(); if (settings.importanceMarkersEnabled && conv.isImportant()) { sb.append(".\u0020"); sb.setSpan(new ReplacementSpan() { @Override public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) { return mImportanceMarkerDrawable.getIntrinsicWidth(); } @Override public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int baseline, int bottom, Paint paint) { canvas.save(); final int transY = baseline + mChipVerticalOffset - mImportanceMarkerDrawable.getIntrinsicHeight(); canvas.translate(x, transY); mImportanceMarkerDrawable.draw(canvas); canvas.restore(); } }, start, start + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } mFolderDisplayer.loadConversationFolders(conv, null /* ignoreFolder */, -1 /* ignoreFolderType */); mFolderDisplayer.constructFolderChips(sb); final int end = sb.length(); sb.setSpan(new ChangeLabelsSpan(callbacks), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); setText(sb); setMovementMethod(LinkMovementMethod.getInstance()); }
From source file:com.github.michalbednarski.intentslab.providerlab.proxy.LogViewerFragment.java
@Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { setListAdapter(new CursorAdapter(getActivity(), data, false) { @Override//from w w w . j ava2s . co m public View newView(Context context, Cursor cursor, ViewGroup parent) { return ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)) .inflate(android.R.layout.simple_list_item_2, parent, false); } @Override public void bindView(View view, Context context, Cursor cursor) { // First row: method and app name final String appName = getActivity().getPackageManager().getNameForUid(cursor.getInt(3)); final String methodName = methodIdToName(cursor.getInt(1)); ((TextView) view.findViewById(android.R.id.text1)).setText(methodName + "() by " + appName); // Second row: uri and exception final String uri = cursor.getString(2); String exception = cursor.getString(4); SpannableStringBuilder text2 = new SpannableStringBuilder(uri); if (exception != null) { text2.append("\n"); final int start = text2.length(); text2.append(exception); final int end = text2.length(); text2.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } else { // TODO: result / empty result warning } ((TextView) view.findViewById(android.R.id.text2)).setText(text2); } }); }
From source file:com.github.michalbednarski.intentslab.browser.RegisteredReceiverFetcher.java
@Override Object getEntries(Context context) { try {/* www . j a v a 2 s. c o m*/ final Categorizer<RegisteredReceiverInfo> categorizer = new ProcessCategorizer(); (new RegisteredReceiversParser(mExcludeProtected) { @Override protected void onReceiverFound(RegisteredReceiverInfo receiverInfo) { categorizer.add(receiverInfo); } }).parse(context); return categorizer.getResult(); } catch (SecurityException e) { // Create message about error SpannableStringBuilder ssb = new SpannableStringBuilder( context.getString(R.string.registered_receivers_denied)); ssb.append("\n"); int commandStart = ssb.length(); if (ComponentFetcher.DEVELOPMENT_PERMISSIONS_SUPPORTED) { ssb.append("pm grant ").append(context.getPackageName()).append(" android.permission.DUMP"); } else { ssb.append(RemoteEntryPoint.getScriptFile(context).getAbsolutePath()); } int commandEnd = ssb.length(); ssb.setSpan(new StyleSpan(Typeface.BOLD), commandStart, commandEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return new CustomError(ssb); } catch (Throwable e) { e.printStackTrace(); return new CustomError(Utils.describeException(e)); } }
From source file:com.android.messaging.datamodel.MessageNotificationState.java
static CharSequence applyWarningTextColor(final Context context, final CharSequence text) { if (text == null) { return null; }/*from w w w. j av a 2s . co m*/ final SpannableStringBuilder spanBuilder = new SpannableStringBuilder(); spanBuilder.append(text); spanBuilder.setSpan( new ForegroundColorSpan(context.getResources().getColor(R.color.notification_warning_color)), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return spanBuilder; }
From source file:com.android.messaging.datamodel.BugleNotifications.java
/** * buildBoldedMessage - build a formatted message where the title is bold, there's a * separator, then the message.//from w ww . j a va 2 s . c o m */ private static CharSequence buildBoldedMessage(final String title, final CharSequence message, final Uri attachmentUri, final String attachmentType, final int separatorId) { final Context context = Factory.get().getApplicationContext(); final SpannableStringBuilder spanBuilder = new SpannableStringBuilder(); // Boldify the title (which is the sender's name) if (!TextUtils.isEmpty(title)) { spanBuilder.append(title); spanBuilder.setSpan(new StyleSpan(Typeface.BOLD), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(message)) { if (spanBuilder.length() > 0) { spanBuilder.append(context.getString(separatorId)); } spanBuilder.append(message); } if (attachmentUri != null) { if (spanBuilder.length() > 0) { final String separator = context.getString(R.string.notification_separator); spanBuilder.append(separator); } spanBuilder.append(formatAttachmentTag(null, attachmentType)); } return spanBuilder; }
From source file:com.tct.mail.browse.SendersView.java
public static SpannableStringBuilder createMessageInfo(Context context, Conversation conv, final boolean resourceCachingRequired) { SpannableStringBuilder messageInfo = new SpannableStringBuilder(); try {/*from ww w . j ava 2 s . com*/ ConversationInfo conversationInfo = conv.conversationInfo; int sendingStatus = conv.sendingState; boolean hasSenders = false; // This covers the case where the sender is "me" and this is a draft // message, which means this will only run once most of the time. for (ParticipantInfo p : conversationInfo.participantInfos) { if (!TextUtils.isEmpty(p.name)) { hasSenders = true; break; } } getSenderResources(context, resourceCachingRequired); int count = conversationInfo.messageCount; int draftCount = conversationInfo.draftCount; if (count > 1) { messageInfo.append(count + ""); } messageInfo.setSpan( CharacterStyle.wrap(conv.read ? sMessageInfoReadStyleSpan : sMessageInfoUnreadStyleSpan), 0, messageInfo.length(), 0); if (draftCount > 0) { // If we are showing a message count or any draft text and there // is at least 1 sender, prepend the sending state text with a // comma. if (hasSenders || count > 1) { messageInfo.append(sSendersSplitToken); } SpannableStringBuilder draftString = new SpannableStringBuilder(); if (draftCount == 1) { draftString.append(sDraftSingularString); } else { draftString.append(sDraftPluralString) .append(String.format(sDraftCountFormatString, draftCount)); } draftString.setSpan(CharacterStyle.wrap(sDraftsStyleSpan), 0, draftString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); messageInfo.append(draftString); } // TS: chao.zhang 2015-09-29 EMAIL FEATURE-585337 MOD_S //NOTE:currently,we DONOT show the status in senderView, with our ERGO,show the status on the side if Subject.diable it!!! //boolean showState = sendingStatus == UIProvider.ConversationSendingState.SENDING || // sendingStatus == UIProvider.ConversationSendingState.RETRYING || // sendingStatus == UIProvider.ConversationSendingState.SEND_ERROR; boolean showState = false; // TS: chao.zhang 2015-09-29 EMAIL FEATURE-585337 MOD_E if (showState) { // If we are showing a message count or any draft text, prepend // the sending state text with a comma. if (count > 1 || draftCount > 0) { messageInfo.append(sSendersSplitToken); } SpannableStringBuilder stateSpan = new SpannableStringBuilder(); if (sendingStatus == UIProvider.ConversationSendingState.SENDING) { stateSpan.append(sSendingString); stateSpan.setSpan(sSendingStyleSpan, 0, stateSpan.length(), 0); } else if (sendingStatus == UIProvider.ConversationSendingState.RETRYING) { stateSpan.append(sQueuedString); stateSpan.setSpan(sQueuedStyleSpan, 0, stateSpan.length(), 0); } else if (sendingStatus == UIProvider.ConversationSendingState.SEND_ERROR) { stateSpan.append(sFailedString); stateSpan.setSpan(sFailedStyleSpan, 0, stateSpan.length(), 0); } messageInfo.append(stateSpan); } // Prepend a space if we are showing other message info text. if (count > 1 || (draftCount > 0 && hasSenders) || showState) { messageInfo.insert(0, sMessageCountSpacerString); } } finally { if (!resourceCachingRequired) { clearResourceCache(); } } return messageInfo; }
From source file:com.hpush.app.fragments.AboutDialogFragment.java
@Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Get app version PackageManager pm = getActivity().getPackageManager(); String packageName = getActivity().getPackageName(); String versionName;/*w w w .ja v a 2 s . c om*/ try { PackageInfo info = pm.getPackageInfo(packageName, 0); versionName = info.versionName; } catch (PackageManager.NameNotFoundException e) { versionName = VERSION_UNAVAILABLE; } // About. SpannableStringBuilder aboutBody = new SpannableStringBuilder(); aboutBody.append( Html.fromHtml(getString(R.string.about_body, getString(R.string.application_name), versionName))); // Licenses. SpannableString licensesLink = new SpannableString(getString(R.string.about_licenses)); licensesLink.setSpan(new ClickableSpan() { @Override public void onClick(View view) { showOpenSourceLicenses(getActivity()); } }, 0, licensesLink.length(), 0); aboutBody.append("\n\n"); aboutBody.append(licensesLink); // End User License Agreement. SpannableString eulaLink = new SpannableString(getString(R.string.about_eula)); eulaLink.setSpan(new ClickableSpan() { @Override public void onClick(View view) { showEula(getActivity()); } }, 0, eulaLink.length(), 0); aboutBody.append("\n\n"); aboutBody.append(eulaLink); // Show "About" dialog. LayoutInflater layoutInflater = (LayoutInflater) getActivity() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); TextView aboutBodyView = (TextView) layoutInflater.inflate(R.layout.fragment_dialog_about, null); aboutBodyView.setText(aboutBody); aboutBodyView.setMovementMethod(new LinkMovementMethod()); return new AlertDialog.Builder(getActivity()).setTitle(R.string.lbl_about).setView(aboutBodyView) .setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }).create(); }
From source file:com.osc.tweet.app.fragments.AboutDialogFragment.java
@Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Get app version PackageManager pm = getActivity().getPackageManager(); String packageName = getActivity().getPackageName(); String versionName;/*from w w w. j ava 2 s .c o m*/ try { PackageInfo info = pm.getPackageInfo(packageName, 0); versionName = info.versionName; } catch (PackageManager.NameNotFoundException e) { versionName = VERSION_UNAVAILABLE; } // About. SpannableStringBuilder aboutBody = new SpannableStringBuilder(); aboutBody.append( Html.fromHtml(getString(R.string.about_body, getString(R.string.application_name), versionName))); // Licenses. SpannableString licensesLink = new SpannableString(getString(R.string.about_licenses)); licensesLink.setSpan(new ClickableSpan() { @Override public void onClick(View view) { showOpenSourceLicenses(getActivity()); } }, 0, licensesLink.length(), 0); aboutBody.append("\n\n"); aboutBody.append(licensesLink); // End User License Agreement. SpannableString eulaLink = new SpannableString(getString(R.string.about_eula)); eulaLink.setSpan(new ClickableSpan() { @Override public void onClick(View view) { showEula(getActivity()); } }, 0, eulaLink.length(), 0); aboutBody.append("\n\n"); aboutBody.append(eulaLink); // Show "About" dialog. LayoutInflater layoutInflater = (LayoutInflater) getActivity() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); TextView aboutBodyView = (TextView) layoutInflater.inflate(R.layout.fragment_dialog_about, null); aboutBodyView.setText(aboutBody); aboutBodyView.setMovementMethod(new LinkMovementMethod()); return new AlertDialog.Builder(getActivity()).setTitle(R.string.action_about).setView(aboutBodyView) .setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }).create(); }