A reusable native Android rich text editor component.
Aztec (which extends EditText) is a rich-text editor component for writing HTML documents in Android.
Supports Android 4.1+ (API 16 - Jelly Bean)
Declare the main components in your layout:
Visual editor
XMLSource editor
XML
Toolbar
XML
Inflate the views:
kotlin val visualEditor = findViewById(R.id.visual) val sourceEditor = findViewById(R.id.source) val toolbar = findViewById(R.id.formatting_toolbar)
Configure Aztec with a provided image & video loaders:
kotlin Aztec.with(visualEditor, sourceEditor, toolbar, context) .setImageGetter(GlideImageLoader(context)) .setVideoThumbnailGetter(GlideVideoThumbnailLoader(context))
For more options, such as edit history, listeners and plugins please refer to the demo app implementation.
Build the library, build the example project and run unit tests:
$ ./gradlew build
Run unit tests only:
$ ./gradlew test
Espresso advises disabling system animations on devices used for testing:
On your device, under Settings->Developer options disable the following 3 settings:
- Window animation scale
- Transition animation scale
- Animator duration scale
One additional setup step is also required to handle an Espresso issue with clicks (see the caveats below):
On your device, under Settings -> Accessibility -> Touch & hold delay, set the delay to
Long.
Run the instrumentation tests:
$ ./gradlew cAT
You can import Aztec into your project using Jitpack:
gradle repositories { maven { url "https://jitpack.io" } }
gradle dependencies { api ('com.github.wordpress-mobile.WordPress-Aztec-Android:aztec:v1.3.44') }
Brave developers can either use the project as a source distribution or have fun with the latest snapshot at their own risk:
dependencies { api ('com.github.wordpress-mobile.WordPress-Aztec-Android:aztec:develop-SNAPSHOT') }
We use ktlint for Kotlin linting. You can run ktlint using
./gradlew ktlint, and you can also run
./gradlew ktlintFormatfor auto-formatting. There is no IDEA plugin (like Checkstyle's) at this time.
Aztec is an open source project covered by the Mozilla Public License Version 2.0.