1313//! a wider range of devices.
1414//!
1515//! Standalone applications based on this crate need to be built as `cdylib` libraries, like:
16- //! ```
16+ //! ```toml
1717//! [lib]
1818//! crate_type=["cdylib"]
1919//! ```
2020//!
2121//! and implement a `#[no_mangle]` `android_main` entry point like this:
22- //! ```rust
22+ //! ```
2323//! #[no_mangle]
24- //! fn android_main(app: AndroidApp) {
24+ //! fn android_main(app: android_activity:: AndroidApp) {
2525//!
2626//! }
2727//! ```
6464//! These are undone after `android_main()` returns
6565//!
6666//! # Android Extensible Enums
67+ // TODO: Move this to the NDK crate, which now implements this for most of the code?
6768//!
6869//! There are numerous enums in the `android-activity` API which are effectively
6970//! bindings to enums declared in the Android SDK which need to be considered
9596//! For example, here is how you could ensure forwards compatibility with both
9697//! compile-time and runtime extensions of a `SomeEnum` enum:
9798//!
98- //! ```rust
99+ //! ```ignore
99100//! match some_enum {
100101//! SomeEnum::Foo => {},
101102//! SomeEnum::Bar => {},
@@ -131,7 +132,7 @@ use ndk::native_window::NativeWindow;
131132pub use ndk;
132133pub use ndk_sys;
133134
134- #[ cfg( not( target_os = "android" ) ) ]
135+ #[ cfg( all ( not( target_os = "android" ) , not ( feature = "test" ) ) ) ]
135136compile_error ! ( "android-activity only supports compiling for Android" ) ;
136137
137138#[ cfg( all( feature = "game-activity" , feature = "native-activity" ) ) ]
@@ -556,10 +557,10 @@ impl AndroidApp {
556557 /// between native Rust code and Java/Kotlin code running within the JVM.
557558 ///
558559 /// If you use the [`jni`] crate you can wrap this as a [`JavaVM`] via:
559- /// ```ignore
560+ /// ```no_run
560561 /// # use jni::JavaVM;
561- /// # let app: AndroidApp = todo!();
562- /// let vm = unsafe { JavaVM::from_raw(app.vm_as_ptr()) };
562+ /// # let app: android_activity:: AndroidApp = todo!();
563+ /// let vm = unsafe { JavaVM::from_raw(app.vm_as_ptr().ast() ) };
563564 /// ```
564565 ///
565566 /// [`jni`]: https://crates.io/crates/jni
@@ -571,10 +572,10 @@ impl AndroidApp {
571572 /// Returns a JNI object reference for this application's JVM `Activity` as a pointer
572573 ///
573574 /// If you use the [`jni`] crate you can wrap this as an object reference via:
574- /// ```ignore
575+ /// ```no_run
575576 /// # use jni::objects::JObject;
576- /// # let app: AndroidApp = todo!();
577- /// let activity = unsafe { JObject::from_raw(app.activity_as_ptr()) };
577+ /// # let app: android_activity:: AndroidApp = todo!();
578+ /// let activity = unsafe { JObject::from_raw(app.activity_as_ptr().cast() ) };
578579 /// ```
579580 ///
580581 /// # JNI Safety
@@ -731,7 +732,7 @@ impl AndroidApp {
731732 /// # Example
732733 /// Code to iterate all pending input events would look something like this:
733734 ///
734- /// ```rust
735+ /// ```
735736 /// match app.input_events_iter() {
736737 /// Ok(mut iter) => {
737738 /// loop {
@@ -786,7 +787,7 @@ impl AndroidApp {
786787 ///
787788 /// Code to handle unicode character mapping as well as combining dead keys could look some thing like:
788789 ///
789- /// ```rust
790+ /// ```
790791 /// let mut combining_accent = None;
791792 /// // Snip
792793 ///
0 commit comments