hasExplicitMovementMethodPlugin sample
This commit is contained in:
		
							parent
							
								
									8e332712fe
								
							
						
					
					
						commit
						b1a0f3b739
					
				| @ -4,7 +4,7 @@ | ||||
| 
 | ||||
| #### Added | ||||
| * `core` - `MovementMethodPlugin.none()`, `MovementMethodPlugin.link()` factory methods | ||||
| * `core` - `CorePlugin` `hasExplicitMovementMethodPlugin` configuration method to **not** add implicit `LinkMovementMethod` on `afterSetText` | ||||
| * `core` - `CorePlugin` `hasExplicitMovementMethodPlugin` configuration method to **not** add implicit `LinkMovementMethod` in `afterSetText` | ||||
| 
 | ||||
| #### Changed | ||||
| * `html` - `SimpleTagHandler` visits children tags if supplied tag is block one ([#235]) | ||||
|  | ||||
| @ -18,6 +18,7 @@ import java.util.Set; | ||||
| import io.noties.markwon.AbstractMarkwonPlugin; | ||||
| import io.noties.markwon.Markwon; | ||||
| import io.noties.markwon.core.CorePlugin; | ||||
| import io.noties.markwon.movement.MovementMethodPlugin; | ||||
| import io.noties.markwon.sample.ActivityWithMenuOptions; | ||||
| import io.noties.markwon.sample.MenuOptions; | ||||
| import io.noties.markwon.sample.R; | ||||
| @ -33,7 +34,10 @@ public class CoreActivity extends ActivityWithMenuOptions { | ||||
|                 .add("simple", this::simple) | ||||
|                 .add("toast", this::toast) | ||||
|                 .add("alreadyParsed", this::alreadyParsed) | ||||
|                 .add("enabledBlockTypes", this::enabledBlockTypes); | ||||
|                 .add("enabledBlockTypes", this::enabledBlockTypes) | ||||
|                 .add("implicitMovementMethod", this::implicitMovementMethod) | ||||
|                 .add("explicitMovementMethod", this::explicitMovementMethod) | ||||
|                 .add("explicitMovementMethodPlugin", this::explicitMovementMethodPlugin); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
| @ -163,4 +167,49 @@ public class CoreActivity extends ActivityWithMenuOptions { | ||||
| 
 | ||||
|         markwon.setMarkdown(textView, md); | ||||
|     } | ||||
| 
 | ||||
|     private void implicitMovementMethod() { | ||||
|         // by default a LinkMovementMethod is applied automatically, so links are clickable | ||||
| 
 | ||||
|         final String md = "[0 link](#) here"; | ||||
| 
 | ||||
|         final Markwon markwon = Markwon.create(this); | ||||
| 
 | ||||
|         markwon.setMarkdown(textView, md); | ||||
|     } | ||||
| 
 | ||||
|     private void explicitMovementMethod() { | ||||
|         // NB! as movement method is set from other methods we _explicitly_ clear it | ||||
|         textView.setMovementMethod(null); | ||||
| 
 | ||||
|         // by default Markwon will set a LinkMovementMethod on a TextView if it is missing | ||||
|         // to control that `hasExplicitMovementMethodPlugin` can be used | ||||
|         final String md = "[1 link](#) here"; | ||||
| 
 | ||||
|         final Markwon markwon = Markwon.builder(this) | ||||
|                 .usePlugin(new AbstractMarkwonPlugin() { | ||||
|                     @Override | ||||
|                     public void configure(@NonNull Registry registry) { | ||||
|                         // Markwon **won't** set implicit movement method | ||||
|                         //  thus making the link in markdown input not clickable | ||||
|                         registry.require(CorePlugin.class) | ||||
|                                 .hasExplicitMovementMethodPlugin(true); | ||||
|                     } | ||||
|                 }) | ||||
|                 .build(); | ||||
| 
 | ||||
|         markwon.setMarkdown(textView, md); | ||||
|     } | ||||
| 
 | ||||
|     private void explicitMovementMethodPlugin() { | ||||
|         // additionally special MovementMethodPlugin.none() can be used to control `hasExplicitMovementMethodPlugin` | ||||
| 
 | ||||
|         final String md = "[2 link](#) here"; | ||||
| 
 | ||||
|         final Markwon markwon = Markwon.builder(this) | ||||
|                 .usePlugin(MovementMethodPlugin.none()) | ||||
|                 .build(); | ||||
| 
 | ||||
|         markwon.setMarkdown(textView, md); | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov