commit 505083998dae8fdf212ace1c7cffcf8eda4f7094
parent 7b558f8f58eba955950e38ea52527565b6a1bdfb
Author: William Casarin <jb55@jb55.com>
Date: Tue, 11 Mar 2025 16:08:07 -0700
android: fix build
wip android keyboard fixes
wip 4.0.0 game-activity
Signed-off-by: William Casarin <jb55@jb55.com>
Diffstat:
9 files changed, 101 insertions(+), 36 deletions(-)
diff --git a/.envrc b/.envrc
@@ -1,6 +1,7 @@
# set to false if you don't care to include android stuff
export use_android=true
export android_emulator=false
+export ANDROID_DIR=crates/notedeck_chrome/android
use nix --arg use_android $use_android --arg android_emulator $android_emulator
diff --git a/Cargo.lock b/Cargo.lock
@@ -102,8 +102,7 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "android-activity"
version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046"
+source = "git+https://github.com/damus-io/android-activity?rev=a8948332c7c551303d32eb26a59d0abd676e47a5#a8948332c7c551303d32eb26a59d0abd676e47a5"
dependencies = [
"android-properties",
"bitflags 2.9.0",
@@ -1332,9 +1331,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
[[package]]
+name = "dpi"
+version = "0.1.1"
+source = "git+https://github.com/damus-io/winit?rev=14d61a74bee0c9863abe7ef28efae2c4d8bd3743#14d61a74bee0c9863abe7ef28efae2c4d8bd3743"
+
+[[package]]
name = "ecolor"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"bytemuck",
"emath",
@@ -1344,7 +1348,7 @@ dependencies = [
[[package]]
name = "eframe"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ahash",
"bytemuck",
@@ -1374,13 +1378,13 @@ dependencies = [
"wgpu",
"winapi",
"windows-sys 0.59.0",
- "winit",
+ "winit 0.30.8",
]
[[package]]
name = "egui"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"accesskit",
"ahash",
@@ -1397,7 +1401,7 @@ dependencies = [
[[package]]
name = "egui-wgpu"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ahash",
"bytemuck",
@@ -1410,13 +1414,13 @@ dependencies = [
"type-map",
"web-time 1.1.0",
"wgpu",
- "winit",
+ "winit 0.30.8",
]
[[package]]
name = "egui-winit"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ahash",
"arboard",
@@ -1428,13 +1432,13 @@ dependencies = [
"smithay-clipboard",
"web-time 1.1.0",
"webbrowser",
- "winit",
+ "winit 0.30.8",
]
[[package]]
name = "egui_extras"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ahash",
"egui",
@@ -1451,7 +1455,7 @@ dependencies = [
[[package]]
name = "egui_glow"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ahash",
"bytemuck",
@@ -1462,7 +1466,7 @@ dependencies = [
"profiling",
"wasm-bindgen",
"web-sys",
- "winit",
+ "winit 0.30.8",
]
[[package]]
@@ -1515,7 +1519,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]]
name = "emath"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"bytemuck",
"serde",
@@ -1603,7 +1607,7 @@ dependencies = [
[[package]]
name = "epaint"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
dependencies = [
"ab_glyph",
"ahash",
@@ -1621,7 +1625,7 @@ dependencies = [
[[package]]
name = "epaint_default_fonts"
version = "0.31.1"
-source = "git+https://github.com/damus-io/egui?rev=93cd1cedc1e8eed2b055e317226838e37a845aad#93cd1cedc1e8eed2b055e317226838e37a845aad"
+source = "git+https://github.com/damus-io/egui?rev=05beb0354c293a0e6cf4fac414b6c3b5f59adf51#05beb0354c293a0e6cf4fac414b6c3b5f59adf51"
[[package]]
name = "equivalent"
@@ -2042,7 +2046,7 @@ dependencies = [
"cfg_aliases",
"glutin",
"raw-window-handle",
- "winit",
+ "winit 0.30.9",
]
[[package]]
@@ -2278,6 +2282,7 @@ dependencies = [
"tokio",
"tokio-rustls",
"tower-service",
+ "webpki-roots",
]
[[package]]
@@ -4397,6 +4402,7 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
+ "webpki-roots",
"windows-registry",
]
@@ -6622,6 +6628,57 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
[[package]]
name = "winit"
+version = "0.30.8"
+source = "git+https://github.com/damus-io/winit?rev=14d61a74bee0c9863abe7ef28efae2c4d8bd3743#14d61a74bee0c9863abe7ef28efae2c4d8bd3743"
+dependencies = [
+ "ahash",
+ "android-activity",
+ "atomic-waker",
+ "bitflags 2.9.0",
+ "block2 0.5.1",
+ "bytemuck",
+ "calloop",
+ "cfg_aliases",
+ "concurrent-queue",
+ "core-foundation 0.9.4",
+ "core-graphics",
+ "cursor-icon",
+ "dpi 0.1.1 (git+https://github.com/damus-io/winit?rev=14d61a74bee0c9863abe7ef28efae2c4d8bd3743)",
+ "js-sys",
+ "libc",
+ "memmap2",
+ "ndk",
+ "objc2 0.5.2",
+ "objc2-app-kit 0.2.2",
+ "objc2-foundation 0.2.2",
+ "objc2-ui-kit",
+ "orbclient",
+ "percent-encoding",
+ "pin-project",
+ "raw-window-handle",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.44",
+ "sctk-adwaita",
+ "smithay-client-toolkit",
+ "smol_str",
+ "tracing",
+ "unicode-segmentation",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-protocols-plasma",
+ "web-sys",
+ "web-time 1.1.0",
+ "windows-sys 0.52.0",
+ "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
+]
+
+[[package]]
+name = "winit"
version = "0.30.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0"
@@ -6638,7 +6695,7 @@ dependencies = [
"core-foundation 0.9.4",
"core-graphics",
"cursor-icon",
- "dpi",
+ "dpi 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"js-sys",
"libc",
"memmap2",
@@ -6653,7 +6710,6 @@ dependencies = [
"raw-window-handle",
"redox_syscall 0.4.1",
"rustix 0.38.44",
- "sctk-adwaita",
"smithay-client-toolkit",
"smol_str",
"tracing",
diff --git a/Cargo.toml b/Cargo.toml
@@ -90,15 +90,15 @@ strip = true # Strip symbols from binary*
#egui_extras = { path = "/home/jb55/dev/github/emilk/egui/crates/egui_extras" }
#epaint = { path = "/home/jb55/dev/github/emilk/egui/crates/epaint" }
-egui = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
-eframe = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
-egui-winit = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
-egui-wgpu = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
-egui_extras = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
-epaint = { git = "https://github.com/damus-io/egui", rev = "93cd1cedc1e8eed2b055e317226838e37a845aad" }
+egui = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
+eframe = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
+egui-winit = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
+egui-wgpu = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
+egui_extras = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
+epaint = { git = "https://github.com/damus-io/egui", rev = "05beb0354c293a0e6cf4fac414b6c3b5f59adf51" }
puffin = { git = "https://github.com/jb55/puffin", package = "puffin", rev = "c6a6242adaf90b6292c0f462d2acd34d96d224d2" }
puffin_egui = { git = "https://github.com/jb55/puffin", package = "puffin_egui", rev = "c6a6242adaf90b6292c0f462d2acd34d96d224d2" }
#winit = { git = "https://github.com/damus-io/winit", rev = "14d61a74bee0c9863abe7ef28efae2c4d8bd3743" }
#winit = { path = "/home/jb55/dev/github/rust-windowing/winit" }
-#android-activity = { git = "https://github.com/damus-io/android-activity", rev = "da17773852312a58c3445422dfe477162f2f1265" }
+android-activity = { git = "https://github.com/damus-io/android-activity", rev = "a8948332c7c551303d32eb26a59d0abd676e47a5" }
#android-activity = { path = "/home/jb55/dev/github/rust-mobile/android-activity/android-activity" }
diff --git a/Makefile b/Makefile
@@ -13,7 +13,7 @@ jni: fake
cargo ndk --target arm64-v8a -o $(ANDROID_DIR)/app/src/main/jniLibs/ build --profile release
jni-check: fake
- cargo ndk --target arm64-v8a -o $(ANDROID_DIR)/app/src/main/jniLibs/ check --profile release
+ cargo ndk --target arm64-v8a -o $(ANDROID_DIR)/app/src/main/jniLibs/ check
apk: jni
cd $(ANDROID_DIR) && ./gradlew build
@@ -27,4 +27,4 @@ push-android-config:
android: jni
cd $(ANDROID_DIR) && ./gradlew installDebug
adb shell am start -n com.damus.notedeck/.MainActivity
- adb logcat -v color -s RustStdoutStderr | tee logcat.txt
+ adb logcat -v color -s RustStdoutStderr -s threaded_app | tee logcat.txt
diff --git a/crates/notedeck_chrome/android/app/build.gradle b/crates/notedeck_chrome/android/app/build.gradle
@@ -24,5 +24,5 @@ android {
dependencies {
implementation "com.google.android.material:material:1.5.0"
- implementation "androidx.games:games-activity:2.0.2"
+ implementation "androidx.games:games-activity:4.0.0"
}
diff --git a/crates/notedeck_chrome/src/android.rs b/crates/notedeck_chrome/src/android.rs
@@ -5,7 +5,7 @@ use egui_winit::winit::platform::android::activity::AndroidApp;
use notedeck_columns::Damus;
use notedeck_dave::Dave;
-use crate::{chrome::Chrome, setup::setup_chrome};
+use crate::{app::NotedeckApp, chrome::Chrome, setup::setup_chrome};
use notedeck::Notedeck;
use serde_json::Value;
use std::fs;
@@ -18,7 +18,12 @@ pub async fn android_main(app: AndroidApp) {
use tracing_subscriber::{prelude::*, EnvFilter};
std::env::set_var("RUST_BACKTRACE", "full");
- std::env::set_var("RUST_LOG", "egui=debug,egui-winit=debug,notedeck=debug,notedeck_columns=debug,notedeck_chrome=debug,enostr=debug,android_activity=debug");
+ //std::env::set_var("DAVE_ENDPOINT", "http://ollama.jb55.com/v1");
+ //std::env::set_var("DAVE_MODEL", "hhao/qwen2.5-coder-tools:latest");
+ std::env::set_var(
+ "RUST_LOG",
+ "egui=debug,egui-winit=debug,notedeck=debug,notedeck_columns=debug,notedeck_chrome=debug,enostr=debug,android_activity=debug",
+ );
//std::env::set_var(
// "RUST_LOG",
@@ -84,8 +89,8 @@ pub async fn android_main(app: AndroidApp) {
completely_unrecognized
);
- chrome.add_app(columns);
- chrome.add_app(dave);
+ chrome.add_app(NotedeckApp::Columns(columns));
+ chrome.add_app(NotedeckApp::Dave(dave));
// test dav
chrome.set_active(1);
diff --git a/crates/notedeck_chrome/src/setup.rs b/crates/notedeck_chrome/src/setup.rs
@@ -34,7 +34,9 @@ pub fn setup_chrome(ctx: &egui::Context, args: ¬edeck::Args, theme: ThemePref
pub fn setup_cc(ctx: &egui::Context, is_mobile: bool) {
fonts::setup_fonts(ctx);
- //ctx.set_pixels_per_point(ctx.pixels_per_point() + UI_SCALE_FACTOR);
+ if notedeck::ui::is_compiled_as_mobile() {
+ ctx.set_pixels_per_point(ctx.pixels_per_point() + 0.2);
+ }
//ctx.set_pixels_per_point(1.0);
//
//
@@ -45,8 +47,6 @@ pub fn setup_cc(ctx: &egui::Context, is_mobile: bool) {
ctx.all_styles_mut(|style| theme::add_custom_style(is_mobile, style));
}
-//pub const UI_SCALE_FACTOR: f32 = 0.2;
-
pub fn generate_native_options(paths: DataPath) -> NativeOptions {
let window_builder = Box::new(move |builder: egui::ViewportBuilder| {
let builder = builder
diff --git a/crates/notedeck_columns/src/media_upload.rs b/crates/notedeck_columns/src/media_upload.rs
@@ -1,3 +1,5 @@
+#![cfg_attr(target_os = "android", allow(dead_code, unused_variables))]
+
use std::path::PathBuf;
use base64::{prelude::BASE64_URL_SAFE, Engine};
diff --git a/crates/notedeck_columns/src/ui/note/post.rs b/crates/notedeck_columns/src/ui/note/post.rs
@@ -1,4 +1,5 @@
use crate::draft::{Draft, Drafts, MentionHint};
+#[cfg(not(target_os = "android"))]
use crate::media_upload::{nostrbuild_nip96_upload, MediaPath};
use crate::post::{downcast_post_buffer, MentionType, NewPost};
use crate::ui::search_results::SearchResultsView;