diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b74a9a5..ab0d5de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,13 +17,13 @@ jobs: fail-fast: false matrix: # See top README for MSRV policy - rust_version: [1.68.0, stable] + rust-version: [1.68.0, stable] steps: - uses: actions/checkout@v4 - uses: hecrj/setup-rust-action@v2 with: - rust-version: ${{ matrix.rust_version }} + rust-version: ${{ matrix.rust-version }} - name: Install Rust targets run: > @@ -57,7 +57,7 @@ jobs: build --features native-activity - name: Build agdk-mainloop example - if: matrix.rust_version == 'stable' + if: matrix.rust-version == 'stable' working-directory: examples/agdk-mainloop run: > cargo ndk @@ -68,7 +68,7 @@ jobs: -o app/src/main/jniLibs/ -- build - name: Build na-mainloop example - if: matrix.rust_version == 'stable' + if: matrix.rust-version == 'stable' working-directory: examples/na-mainloop run: > cargo ndk diff --git a/README.md b/README.md index 7c49732..910fda9 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![ci](https://github.com/rust-mobile/android-activity/actions/workflows/ci.yml/badge.svg)](https://github.com/rust-mobile/android-activity/actions/workflows/ci.yml) [![crates.io](https://img.shields.io/crates/v/android-activity.svg)](https://crates.io/crates/android-activity) [![Docs](https://docs.rs/android-activity/badge.svg)](https://docs.rs/android-activity) -[![MSRV](https://img.shields.io/badge/rustc-1.64.0+-ab6000.svg)](https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html) +[![MSRV](https://img.shields.io/badge/rustc-1.68.0+-ab6000.svg)](https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html) ## Overview @@ -36,8 +36,8 @@ Cargo.toml ```toml [dependencies] log = "0.4" -android_logger = "0.11" -android-activity = { version = "0.4", features = [ "native-activity" ] } +android_logger = "0.13" +android-activity = { version = "0.5", features = [ "native-activity" ] } [lib] crate_type = ["cdylib"] @@ -126,8 +126,8 @@ Middleware libraries can instead look at using the [ndk-context](https://crates. The steps to switch a simple standalone application over from `ndk-glue` to `android-activity` (still based on `NativeActivity`) should be: 1. Remove `ndk-glue` from your Cargo.toml -2. Add a dependency on `android-activity`, like `android-activity = { version="0.4", features = [ "native-activity" ] }` -3. Optionally add a dependency on `android_logger = "0.11.0"` +2. Add a dependency on `android-activity`, like `android-activity = { version="0.5", features = [ "native-activity" ] }` +3. Optionally add a dependency on `android_logger = "0.13.0"` 4. Update the `main` entry point to look like this: ```rust @@ -157,8 +157,8 @@ Prior to working on android-activity, the existing glue crates available for bui ## MSRV We aim to (at least) support stable releases of Rust from the last three months. Rust has a 6 week release cycle which means we will support the last three stable releases. -For example, when Rust 1.69 is released we would limit our `rust_version` to 1.67. +For example, when Rust 1.69 is released we would limit our `rust-version` to 1.67. -We will only bump the `rust_version` at the point where we either depend on a new features or a dependency has increased its MSRV, and we won't be greedy. In other words we will only set the MSRV to the lowest version that's _needed_. +We will only bump the `rust-version` at the point where we either depend on a new features or a dependency has increased its MSRV, and we won't be greedy. In other words we will only set the MSRV to the lowest version that's _needed_. -MSRV updates are not considered to be inherently semver breaking (unless a new feature is exposed in the public API) and so a `rust_version` change may happen in patch releases. +MSRV updates are not considered to be inherently semver breaking (unless a new feature is exposed in the public API) and so a `rust-version` change may happen in patch releases. diff --git a/android-activity/src/game_activity/mod.rs b/android-activity/src/game_activity/mod.rs index 5fc0a99..7cf3894 100644 --- a/android-activity/src/game_activity/mod.rs +++ b/android-activity/src/game_activity/mod.rs @@ -764,18 +764,16 @@ impl<'a> From> for InputIteratorInner<'a> { let buffered = unsafe { let app_ptr = receiver.native_app.as_ptr(); let input_buffer = ffi::android_app_swap_input_buffers(app_ptr); - if input_buffer.is_null() { - None - } else { - let buffer = InputBuffer::from_ptr(NonNull::new_unchecked(input_buffer)); + NonNull::new(input_buffer).map(|input_buffer| { + let buffer = InputBuffer::from_ptr(input_buffer); let keys_iter = KeyEventsLendingIterator::new(&buffer); let motion_iter = MotionEventsLendingIterator::new(&buffer); - Some(BufferedEvents::<'a> { + BufferedEvents::<'a> { buffer, keys_iter, motion_iter, - }) - } + } + }) }; let native_app = receiver.native_app.clone(); diff --git a/android-activity/src/lib.rs b/android-activity/src/lib.rs index f38fc67..6095108 100644 --- a/android-activity/src/lib.rs +++ b/android-activity/src/lib.rs @@ -112,6 +112,8 @@ //! [`GameActivity`]: https://developer.android.com/games/agdk/integrate-game-activity //! [Looper]: https://developer.android.com/reference/android/os/Looper +#![deny(clippy::manual_let_else)] + use std::hash::Hash; use std::sync::Arc; use std::sync::RwLock; diff --git a/android-activity/src/native_activity/mod.rs b/android-activity/src/native_activity/mod.rs index 7776e3b..8a95cc0 100644 --- a/android-activity/src/native_activity/mod.rs +++ b/android-activity/src/native_activity/mod.rs @@ -485,11 +485,7 @@ impl<'a> InputIteratorInner<'a> { where F: FnOnce(&input::InputEvent) -> InputStatus, { - // XXX: would use `let Some(queue) = &self.receiver.queue else { return - // false; }` but we're stuck supporting Rust 1.64 for Winit currently - let queue = if let Some(queue) = &self.receiver.queue { - queue - } else { + let Some(queue) = &self.receiver.queue else { log::trace!("no queue available for events"); return false; };