Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
4baeba6
chore: add 'sh' to README.md
0xbrayo Jul 18, 2024
7503d15
docs: update deprecated magick command
0xbrayo Jul 18, 2024
45ec429
refactor: refactored to improve accuracy of the timeline
0xbrayo Aug 19, 2025
050a8e1
feat:use device name as hostname
0xbrayo Oct 3, 2025
5bfaa03
chore: gradle version bump and misc
0xbrayo Oct 8, 2025
70edb5b
feat(android): add SyncInterface.kt with JNI bindings for aw-sync
0xbrayo Oct 16, 2025
6095ed3
feat(android): implement automatic background sync
0xbrayo Oct 16, 2025
94faca4
build(deps): updated project dependencies, jvm target to 11, gradle t…
konrad-krol-incubly Sep 26, 2025
2f00811
feat: implemented generic web watcher with support of multiple web br…
konrad-krol-incubly Sep 26, 2025
e0af0b6
feat: always active in the background
0xbrayo Nov 24, 2025
5d420e9
chore: minimum api target bump
0xbrayo Nov 26, 2025
b2780c8
feat: experimental parsing of events in background
0xbrayo Dec 11, 2025
00b7720
fix: fix launch on boot not working
0xbrayo Dec 11, 2025
010db47
build: update makefile to package aw-sync.so
0xbrayo Dec 22, 2025
172d208
fix: fix single-instance errors on android
0xbrayo Dec 23, 2025
5f2b2ef
fix: fix doNotStrip property not working
0xbrayo Jan 2, 2026
8b6e2f0
Update mobile/src/main/java/net/activitywatch/android/watcher/WebWatc…
0xbrayo Jan 2, 2026
add577c
style: fix linting warrnings
0xbrayo Jan 11, 2026
290ac3d
chore: replace the default android.jks.age
0xbrayo Sep 4, 2024
544c8b9
feat: add sync support methods to RustInterface
0xbrayo Jan 30, 2026
9068cde
refactor: improve RustInterface initialization
0xbrayo Jan 31, 2026
f4f1074
chore: update aw-server-rust submodule reference
0xbrayo Jan 31, 2026
a6857f4
feat: implement category time widget
0xbrayo Jan 31, 2026
86f2993
feat: enhance widget with visual indicators
0xbrayo Feb 1, 2026
8634540
feat: implement widget background worker
0xbrayo Feb 8, 2026
67a9f9a
refactor: optimize widget layout for 4x1 size
0xbrayo Feb 9, 2026
4ba143b
feat: add widget refresh animation
0xbrayo Feb 9, 2026
d33f128
refactor: simplify widget styling and worker logic
0xbrayo Feb 12, 2026
594f7e0
feat: media watcher
0xbrayo Feb 27, 2026
1124707
chore: update aw-server-rust submodule to upstream main to fix aw-web…
0xbrayo Mar 17, 2026
0e4853f
feat: bump ci versions
0xbrayo Mar 17, 2026
980af8d
fix(ci): update sdkmanager, avdmanager, and emulator paths for setup-…
0xbrayo Mar 17, 2026
2d3a627
fix(ci): remove fail-on-cache-miss from cache restore
0xbrayo Mar 17, 2026
29bd4dc
fix(ci): restore missing path key and set fail-on-cache-miss: false i…
0xbrayo Mar 17, 2026
c969e72
refactor(ci): replace manual emulator setup with reactivecircus/andro…
0xbrayo Mar 18, 2026
bf2bc7a
fix(ci): launch app, sleep 1s, screenshot and logcat in emulator-runn…
0xbrayo Mar 18, 2026
0266114
fix(ci): correct am start intent to use debug package + full class name
0xbrayo Mar 18, 2026
592e87a
fix(ci): install apk explicitly and use monkey to launch app before s…
0xbrayo Mar 18, 2026
b082e26
fix(ci): bypass onboarding, grant usage stats perm, unlock screen bef…
0xbrayo Mar 18, 2026
a62d504
fix(ci): pass jniLibs via artifact upload/download instead of cache
0xbrayo Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 71 additions & 190 deletions .github/workflows/build.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 8 additions & 3 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 28 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ export ON_ANDROID := -- --android
aw-server-rust: $(JNILIBS)

.PHONY: $(JNILIBS)
$(JNILIBS): $(JNI_arm7)/libaw_server.so $(JNI_arm8)/libaw_server.so $(JNI_x86)/libaw_server.so $(JNI_x64)/libaw_server.so
$(JNILIBS): $(JNI_arm7)/libaw_server.so $(JNI_arm8)/libaw_server.so $(JNI_x86)/libaw_server.so $(JNI_x64)/libaw_server.so \
$(JNI_arm7)/libaw_sync.so $(JNI_arm8)/libaw_sync.so $(JNI_x86)/libaw_sync.so $(JNI_x64)/libaw_sync.so
@ls -lL $@/*/* # Check that symlinks are valid

# There must be a better way to do this without repeating almost the same rule over and over?
Expand All @@ -170,6 +171,20 @@ $(JNI_x64)/libaw_server.so: $(TARGETDIR_x64)/$(RELEASE_TYPE)/libaw_server.so
mkdir -p $$(dirname $@)
if [ -z "$(TARGET)" ] || [ "$(TARGET)" == "x86_64" ]; then ln -fnv $$(pwd)/$^ $@; fi

$(JNI_arm7)/libaw_sync.so: $(TARGETDIR_arm7)/$(RELEASE_TYPE)/libaw_sync.so
mkdir -p $$(dirname $@)
# if target is empty, then create symlink
if [ -z "$(TARGET)" ] || [ "$(TARGET)" == "arm" ]; then ln -fnv $$(pwd)/$^ $@; fi
$(JNI_arm8)/libaw_sync.so: $(TARGETDIR_arm8)/$(RELEASE_TYPE)/libaw_sync.so
mkdir -p $$(dirname $@)
if [ -z "$(TARGET)" ] || [ "$(TARGET)" == "arm64" ]; then ln -fnv $$(pwd)/$^ $@; fi
$(JNI_x86)/libaw_sync.so: $(TARGETDIR_x86)/$(RELEASE_TYPE)/libaw_sync.so
mkdir -p $$(dirname $@)
if [ -z "$(TARGET)" ] || [ "$(TARGET)" == "x86" ]; then ln -fnv $$(pwd)/$^ $@; fi
$(JNI_x64)/libaw_sync.so: $(TARGETDIR_x64)/$(RELEASE_TYPE)/libaw_sync.so
mkdir -p $$(dirname $@)
if [ -z "$(TARGET)" ] || [ "$(TARGET)" == "x86_64" ]; then ln -fnv $$(pwd)/$^ $@; fi

RUSTFLAGS_ANDROID="-C debuginfo=2 -Awarnings"
# Explanation of RUSTFLAGS:
# `-Awarnings` allows all warnings, for cleaner output (warnings should be detected in aw-server-rust CI anyway)
Expand All @@ -192,6 +207,17 @@ $(RS_SRCDIR)/target/%/$(RELEASE_TYPE)/libaw_server.so: $(RS_SOURCES) $(WEBUI_DIS
env RUSTFLAGS=$(RUSTFLAGS_ANDROID) make -C aw-server-rust android; \
fi

# Same rule for libaw_sync.so (but without webui dependency)
$(RS_SRCDIR)/target/%/$(RELEASE_TYPE)/libaw_sync.so: $(RS_SOURCES)
@echo $@
@echo "Release type: $(RELEASE_TYPE)"
@if [ "$$USE_PREBUILT" == "true" ] && [ -f $@ ]; then \
echo "Using prebuilt libaw_sync.so"; \
else \
echo "Building libaw_sync.so from aw-server-rust repo"; \
env RUSTFLAGS=$(RUSTFLAGS_ANDROID) make -C aw-server-rust android; \
fi

# aw-webui
.PHONY: $(WEBUI_DISTDIR)
$(WEBUI_DISTDIR):
Expand All @@ -210,4 +236,4 @@ clean:

.PHONY: fastlane/metadata/android/en-US/images/icon.png
fastlane/metadata/android/en-US/images/icon.png: aw-server-rust/aw-webui/media/logo/logo.png
convert $< -resize 75% -gravity center -background white -extent 512x512 $@
magick $< -resize 75% -gravity center -background white -extent 512x512 $@
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ If you haven't already, initialize the submodules with: `git submodule update --

To build aw-server-rust you need to have Rust nightly installed (with rustup). Then you can build it with:

```
```sh
export ANDROID_NDK_HOME=`pwd`/aw-server-rust/NDK # The path to your NDK
pushd aw-server-rust && ./install-ndk.sh; popd # This configures the NDK for use with Rust, and installs the NDK if missing
env RELEASE=false make aw-server-rust # Set RELEASE=true to build in release mode (slower build, harder to debug)
Expand Down
Binary file modified android.jks.age
Binary file not shown.
2 changes: 1 addition & 1 deletion aw-server-rust
Submodule aw-server-rust updated 48 files
+8 −3 .github/workflows/build.yml
+2 −5 .github/workflows/lint.yml
+25 −0 .pre-commit-config.yaml
+1,290 −814 Cargo.lock
+4 −1 Makefile
+37 −0 README.md
+8 −1 aw-client-rust/Cargo.toml
+12 −1 aw-client-rust/src/blocking.rs
+144 −0 aw-client-rust/src/classes.rs
+85 −3 aw-client-rust/src/lib.rs
+484 −0 aw-client-rust/src/queries.rs
+84 −0 aw-client-rust/src/single_instance.rs
+16 −0 aw-client-rust/tests/test.rs
+2 −2 aw-datastore/Cargo.toml
+28 −26 aw-datastore/src/datastore.rs
+5 −5 aw-datastore/src/legacy_import.rs
+17 −2 aw-datastore/src/worker.rs
+41 −4 aw-datastore/tests/datastore.rs
+5 −0 aw-models/src/lib.rs
+76 −0 aw-models/src/settings.rs
+1 −1 aw-query/Cargo.toml
+0 −1 aw-query/src/datatype.rs
+0 −3 aw-query/src/functions.rs
+2 −2 aw-server.service
+9 −6 aw-server/Cargo.toml
+6 −0 aw-server/build.rs
+144 −3 aw-server/src/android/mod.rs
+4 −0 aw-server/src/config.rs
+78 −12 aw-server/src/dirs.rs
+21 −21 aw-server/src/endpoints/bucket.rs
+1 −0 aw-server/src/endpoints/cors.rs
+19 −0 aw-server/src/endpoints/mod.rs
+0 −3 aw-server/src/lib.rs
+7 −2 aw-server/src/main.rs
+2 −1 aw-server/tests/api.rs
+18 −4 aw-sync/Cargo.toml
+70 −13 aw-sync/README.md
+241 −0 aw-sync/src/android.rs
+11 −5 aw-sync/src/dirs.rs
+4 −1 aw-sync/src/lib.rs
+176 −69 aw-sync/src/main.rs
+12 −3 aw-sync/src/sync.rs
+8 −27 aw-sync/src/sync_wrapper.rs
+1 −1 aw-sync/src/util.rs
+2 −2 aw-transform/Cargo.toml
+35 −5 aw-transform/src/split_url.rs
+1 −1 aw-webui
+9 −0 compile-android.sh
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.7.20'
ext.androidXTestVersion = '1.5.0'
ext.espressoVersion = '3.5.0'
ext.extJUnitVersion = '1.1.4'
ext.kotlin_version = '1.9.0'
ext.androidXTestVersion = '1.7.0'
ext.espressoVersion = '3.7.0'
ext.extJUnitVersion = '1.3.0'
ext.servicesVersion = '1.4.2'
repositories {
google()
Expand All @@ -14,7 +14,7 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.1'
classpath 'com.android.tools.build:gradle:8.13.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'gradle.plugin.org.mozilla.rust-android-gradle:plugin:0.8.3'

Expand Down
Binary file modified fastlane/metadata/android/en-US/images/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ org.gradle.jvmargs=-Xmx1536m
kotlin.code.style=official
android.useAndroidX=true
android.enableJetifier=true

# Enable native symbol preservation for debugging
# doNotStrip=true
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 4 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#Fri Sep 26 14:49:59 CEST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading
Loading