Trim newlines from the description in a safer way
This avoids problems in a few corner cases: * The description is empty (it would probably throw an exception) * The description doens't end in newlines (as seen in #422) For the general case that was already working, the result is the same.
This commit is contained in:
		
							parent
							
								
									a1fb4636d2
								
							
						
					
					
						commit
						4eea995c89
					
				| @ -1089,12 +1089,34 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A | ||||
|             updateViews(getView()); | ||||
|         } | ||||
| 
 | ||||
|         // The HTML formatter adds "\n\n" at the end of every paragraph. This | ||||
|         // is desired between paragraphs, but not at the end of the whole | ||||
|         // string as it adds unwanted spacing at the end of the TextView. | ||||
|         // Remove all trailing newlines. | ||||
|         // Use this function instead of a trim() as that would require | ||||
|         // converting to String and thus losing formatting (e.g. bold). | ||||
|         private static CharSequence trimNewlines(CharSequence s) { | ||||
|             if (s == null || s.length() < 1) { | ||||
|                 return s; | ||||
|             } | ||||
|             int i; | ||||
|             for (i = s.length()-1; i >= 0; i--) { | ||||
|                 if (s.charAt(i) != '\n') { | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|             if (i == s.length()-1) { | ||||
|                 return s; | ||||
|             } | ||||
|             return s.subSequence(0, i); | ||||
|         } | ||||
| 
 | ||||
|         private void setupView(final View view) { | ||||
|             // Expandable description | ||||
|             final TextView description = (TextView) view.findViewById(R.id.description); | ||||
|             final Spanned desc = Html.fromHtml(getApp().description, null, new Utils.HtmlTagHandler()); | ||||
|             description.setMovementMethod(SafeLinkMovementMethod.getInstance(getActivity())); | ||||
|             description.setText(desc.subSequence(0, desc.length() - 2)); | ||||
|             description.setText(trimNewlines(desc)); | ||||
|             final ImageView view_more_description = (ImageView) view.findViewById(R.id.view_more_description); | ||||
|             description.post(new Runnable() { | ||||
|                 @Override | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Daniel Martí
						Daniel Martí