diff --git a/.gitignore b/.gitignore
index d6b88489..a5f512bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@
third_party/runtime/
!third_party/runtime/CMakeLists.txt
__pycache__/
-.pytest_cache/
\ No newline at end of file
+.pytest_cache/
+.venv
diff --git a/agents/examples/android/README.md b/agents/examples/android/README.md
index 8d047378..025718ae 100644
--- a/agents/examples/android/README.md
+++ b/agents/examples/android/README.md
@@ -10,16 +10,36 @@ Example Android app demonstrating the Notifications Summarizer Agent integration
## Setup
-1. **Add Credentials in Code**
- Open `app/src/main/java/dev/deliteai/examples/App.kt` and replace the placeholder values in the `NimbleNetConfig` block (`YOUR_CLIENT_ID`, `YOUR_HOST`, `YOUR_CLIENT_SECRET`) with your own credentials.
+1. **Run the following commands**
-2. **Open in Android Studio**
+ **Change to repo root**
```bash
- cd deliteAI/agents/examples/android
+ cd "$(git rev-parse --show-toplevel)"
+ ```
+
+2. **Download Llama ONNX assets**
+ ```bash
+ python3 coreruntime/tests/utils/download_from_s3.py \
+ --default_bucket deliteai \
+ --prefix build-dependencies/llama-3.2-1B/onnx \
+ --output agents/examples/android/app/src/main/assets/llama-3 \
+ --archive_output True
+ ```
+
+3. **Generate Python AST and move it into your Android assets**
+ ```bash
+ coreruntime/scripts/gen_python_ast.py \
+ agents/notifications_summarizer/delitepyAssets/main.py \
+ && mv "${_%.py}.ast" agents/examples/android/app/src/main/assets/
+ ```
+
+4. **Open in Android Studio**
+ ```bash
+ cd agents/examples/android
```
Open this directory in Android Studio.
-3. **Sync and Build**
+5. **Sync and Build**
Let Gradle sync, then build the project.
## Running the App
@@ -54,4 +74,4 @@ App-Wise Summary:
com.whatsapp
Meeting reminder message.
Group chat has 2 new messages.
-```
\ No newline at end of file
+```
diff --git a/agents/examples/android/app/build.gradle.kts b/agents/examples/android/app/build.gradle.kts
index abdb505b..e3b408b2 100644
--- a/agents/examples/android/app/build.gradle.kts
+++ b/agents/examples/android/app/build.gradle.kts
@@ -20,14 +20,15 @@ if (propertiesFile.exists()) {
}
android {
- signingConfigs {
- create("release") {
- storeFile = file(localProperties["storeFile"] as String)
- storePassword = localProperties["storePassword"] as String
- keyPassword = localProperties["keyPassword"] as String
- keyAlias = localProperties["keyAlias"] as String
- }
- }
+// TODO: uncomment when building for release
+// signingConfigs {
+// create("release") {
+// storeFile = file(localProperties["storeFile"] as String)
+// storePassword = localProperties["storePassword"] as String
+// keyPassword = localProperties["keyPassword"] as String
+// keyAlias = localProperties["keyAlias"] as String
+// }
+// }
lint {
disable += "NullSafeMutableLiveData"
}
@@ -42,6 +43,9 @@ android {
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+
+ // Resolve NimbleNet external flavor for missing dimension
+ missingDimensionStrategy("default", "external")
}
buildTypes {
@@ -51,7 +55,8 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
- signingConfig = signingConfigs.getByName("release")
+// TODO: uncomment when building for release
+// signingConfig = signingConfigs.getByName("release")
}
}
compileOptions {
diff --git a/agents/examples/android/app/src/main/AndroidManifest.xml b/agents/examples/android/app/src/main/AndroidManifest.xml
index c3984a41..1d3093c7 100644
--- a/agents/examples/android/app/src/main/AndroidManifest.xml
+++ b/agents/examples/android/app/src/main/AndroidManifest.xml
@@ -22,7 +22,7 @@
android:supportsRtl="true"
android:theme="@style/Theme.Examples"
tools:targetApi="31">
-
+
+
+
+
+
+
+
- Log.i(HOST_TAG, "initializeAgent: $notificationSummary")
+ Log.i("AGENTS-EXAMPLE", "initializeAgent: $notificationSummary")
}
)
- copyEspeakDataIfNeeded(application, "espeak-ng-data")
+ val assets: List