diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 7374a015..8727678a 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -19,9 +19,13 @@ jobs:
timeout-minutes: 60
permissions:
contents: write # Needed for git-auto-commit-action
+ defaults:
+ run:
+ working-directory: ai-sample-catalog
strategy:
fail-fast: false
+
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -48,7 +52,7 @@ jobs:
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 🤖 Apply Spotless formatting
- file_pattern: '**/*.kt **/*.kts **/*.java **/*.xml'
+ file_pattern: '**/*.kt **/*.kts **/*.xml'
- name: Build debug APK
run: ./gradlew assembleDebug --no-configuration-cache
@@ -119,6 +123,7 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew
+ working-directory: ai-sample-catalog
- name: Build projects and run instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
@@ -128,7 +133,7 @@ jobs:
disable-animations: true
disk-size: 6000M
heap-size: 600M
- script: ./gradlew connectedDebugAndroidTest
+ script: cd ai-sample-catalog && ./gradlew connectedDebugAndroidTest
- name: Upload test reports
diff --git a/.gitignore b/.gitignore
index 02b5fd3d..c2a2915a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,7 @@
-/build
-/.gradle
-/.idea
-/.kotlin
-app/google-services.json
-build
-/local.properties
+build/
+.gradle/
+.idea/
+.kotlin/
+**/local.properties
+**/google-services.json
.DS_Store
diff --git a/README.md b/README.md
index e0c035f2..73909c74 100644
--- a/README.md
+++ b/README.md
@@ -1,84 +1,30 @@
-# Android AI Sample Catalog
+# Android AI Samples Repository
-
+Welcome to the official repository for Android Artificial Intelligence (AI) sample applications and developer tools. This repository contains various self-contained samples and modules illustrating how to leverage Generative AI capabilities on Android, utilizing both on-device and cloud-based models.
-This folder contains the Android AI Sample catalog, a stand alone application giving you access to
-individual self-contained samples illustrating some of the Generative AI capabilities unlocked by
-some of Google's models.
+---
-> **Note:** These samples are intended to showcase specific AI capabilities in isolation, and they may use
-> simplified code. They are demo not intended to be used as production-ready code.
-> For best practices follow our documentation and check
-> [Now In Android](https://github.com/android/nowinandroid)
+## 📱 Repository Samples
-> **Requires Firebase setup** the samples relying on Google Cloud models (Gemini Pro, Gemini Flash, etc...)
-> require setting up a Firebase project and connecting the app to Firebase (read more [here](https://firebase.google.com/docs/ai-logic/get-started?platform=android&api=dev#set-up-firebase)).
+The table below catalogs the samples and applications available in this repository:
-> 🚧 **Work-in-Progress:** we are working on bringing more samples into the application.
+| Sample App | Description | Directory |
+| :--- | :--- | :--- |
+| **Android AI Sample Catalog**
 | A standalone showcase application containing multiple standalone, self-contained samples demonstrating various Gemini integration capabilities (hybrid inference, chat, multimodal, summarization, writing assistance, etc.) on Android. | [ai-sample-catalog/](ai-sample-catalog/) |
+| **Jetpacker (Coming Soon)** | A sample showing Jetpacker integration and AI-guided capabilities for Android development. | *To be added soon* |
-## How to run
+---
-1. Clone the repository
-2. Open the whole project in Android Studio.
-3. Set up a Firebase project and connect your app to Firebase by adding your Firebase configuration
-file (`google-services.json`) to the `/app` directory. Read more in the [Firebase documentation](https://firebase.google.com/docs/ai-logic/get-started?platform=android&api=dev#set-up-firebase) and the [Android-specific setup guide](https://firebase.google.com/docs/android/learn-more?authuser=0#google-services-plugin-and-file).
-4. Sync & Run `app` configuration
+## 🛠️ Getting Started
-The app will open with the samples list screen that allows you to navigate throughout the different
-available samples.
+To explore or run a specific sample, navigate to its respective directory and follow the setup instructions inside its local `README.md`.
-## Samples
-Here is the list of samples you can find in the `/samples` folder:
+For example, to run the Android AI Sample Catalog:
+1. Open the [ai-sample-catalog/](ai-sample-catalog/) directory in Android Studio.\n2. Follow the Firebase project configuration instructions detailed in the [ai-sample-catalog/README.md](ai-sample-catalog/README.md).
+3. Build and run the `app` configuration.
-| Samples | |
-|:----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-|
| ✨📱☁️ **Hybrid Inference**:
A sample demonstrating a hybrid approach to generative AI, utilizing both on-device (Gemini Nano via ML Kit) and cloud-based (Gemini via Firebase AI SDK) models. It showcases how to fallback to the cloud when on-device capabilities are unavailable.
**[> Browse code](samples/gemini-hybrid)**
|
-| | |
-|
| ✨🖼️🍌 **Gemini Image Chat**:
A chatbot app using the new [Gemini 3 Pro Image model](https://deepmind.google/models/gemini-image/pro/) (a.k.a. "Nano Banana Pro") enabling image generation and iterations via conversation with the Gemini model. Ask the model to generate an image and ask for tweaks in the chat.
**[> Browse code](samples/gemini-image-chat)**
|
-| | |
-|
| ✨🗣️ **Gemini Chatbot**:
A chatbot app using the Gemini Flash model. You can tweak the [system instructions](https://firebase.google.com/docs/ai-logic/system-instructions) in the model configuration to change the tone or the persona of the model.
**[> Browse code](samples/gemini-chatbot)**
|
-| | |
-|
| ✨📸 **Gemini Multimodal**:
A sample leveraging the [multimodal capabilities](https://developer.android.com/ai/gemini/developer-api#generate-text-from-media) of the Gemini Flash model (in this case text and image-to-text) to let you prompt the model with an image.
**[> Browse code](samples/gemini-multimodal)**
|
-| | |
-|
| ✨📱📰 **On-device Summarization**:
A sample letting you summarize text on-device using Gemini Nano via the [GenAI Summarization API](https://developers.google.com/ml-kit/genai/summarization/android).
**[> Browse code](samples/genai-summarization)**
|
-| | |
-|
| ✨📱🔍 **On-device Image Description**:
A sample letting you generate image descriptions using Gemini Nano via the [GenAI Image Description API](https://developers.google.com/ml-kit/genai/image-description/android).
**[> Browse code](samples/genai-image-description)**
|
-| | |
-|
| ✨📱🖋️ **On-device Writing Assistance**:
A sample letting you proofread and rewrite text using Gemini Nano via the [GenAI Rewriting API](https://developers.google.com/ml-kit/genai/rewriting/android).
**[> Browse code](samples/genai-writing-assistance)**
|
-| | |
-|
| 🖼️🍌 **Nanobanana**:
A sample using [Gemini 3.1 Flash Image model](https://developer.android.com/ai/gemini) (a.k.a. \"Nano Banana\") to generate images of landscapes, objects and people in various artistic style.
**[> Browse code](samples/nanobanana)**
|
-| | |
-|
| 🖼️📸 **Magic Selfie**:
A sample using [ML Kit subject Segmentation SDK](https://developers.google.com/ml-kit/vision/subject-segmentation/android) to remove the background behind a person, and Nano Banana to generate new background.
**[> Browse code](samples/magic-selfie)**
|
-| | |
-|
| ✨🎥 **Gemini Video Summarization**:
A sample using Gemini Flash to [summarize videos](https://firebase.google.com/docs/ai-logic/analyze-video?api=dev) leveraging the [large file support](https://firebase.google.com/docs/ai-logic/solutions/cloud-storage).
**[> Browse code](samples/gemini-video-summarization)**
|
-| | |
-|
| ✨🎥 **Gemini Video Metadata Creation**:
A sample using Gemini Flash to generate thumbnails, descriptions, hashtags, account tags, chapters and links from a video. This sample leverages the ability to provide a [Youtube video link](https://firebase.google.com/docs/ai-logic/input-file-requirements?api=dev#provide-file-using-url) to the model context for inference.
**[> Browse code](samples/gemini-video-metadata-creation)**
|
-| | |
-|
| ✨🗣️ **Gemini Live API To-do App**:
A to-do list app using the [Gemini Live API](https://developer.android.com/ai/gemini/live) to let the user interact with Gemini via voice to update the todo list.
**[> Browse code](samples/gemini-live-todo)**
|
+---
-## Reporting issues
+## 🤝 Contributions and Feedback
-You can report [issues with the samples](https://github.com/android/ai-samples/issues) using
-this repository. When doing so, make sure to specify which sample you are referring to.
-
-## Contributions
-
-We aren't open to contribution to this project at the moment.
-
-## License
-
-```
-Copyright 2023 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-```
+Please check the individual sample directories for guidelines on contribution, reporting issues, or licenses specific to those projects.
diff --git a/ai-sample-catalog/.gitignore b/ai-sample-catalog/.gitignore
new file mode 100644
index 00000000..943c290d
--- /dev/null
+++ b/ai-sample-catalog/.gitignore
@@ -0,0 +1,7 @@
+build/
+.gradle/
+.idea/
+.kotlin/
+app/google-services.json
+local.properties
+.DS_Store
diff --git a/.google/packaging.yaml b/ai-sample-catalog/.google/packaging.yaml
similarity index 100%
rename from .google/packaging.yaml
rename to ai-sample-catalog/.google/packaging.yaml
diff --git a/ai-sample-catalog/README.md b/ai-sample-catalog/README.md
new file mode 100644
index 00000000..e0c035f2
--- /dev/null
+++ b/ai-sample-catalog/README.md
@@ -0,0 +1,84 @@
+# Android AI Sample Catalog
+
+
+
+This folder contains the Android AI Sample catalog, a stand alone application giving you access to
+individual self-contained samples illustrating some of the Generative AI capabilities unlocked by
+some of Google's models.
+
+> **Note:** These samples are intended to showcase specific AI capabilities in isolation, and they may use
+> simplified code. They are demo not intended to be used as production-ready code.
+> For best practices follow our documentation and check
+> [Now In Android](https://github.com/android/nowinandroid)
+
+> **Requires Firebase setup** the samples relying on Google Cloud models (Gemini Pro, Gemini Flash, etc...)
+> require setting up a Firebase project and connecting the app to Firebase (read more [here](https://firebase.google.com/docs/ai-logic/get-started?platform=android&api=dev#set-up-firebase)).
+
+> 🚧 **Work-in-Progress:** we are working on bringing more samples into the application.
+
+## How to run
+
+1. Clone the repository
+2. Open the whole project in Android Studio.
+3. Set up a Firebase project and connect your app to Firebase by adding your Firebase configuration
+file (`google-services.json`) to the `/app` directory. Read more in the [Firebase documentation](https://firebase.google.com/docs/ai-logic/get-started?platform=android&api=dev#set-up-firebase) and the [Android-specific setup guide](https://firebase.google.com/docs/android/learn-more?authuser=0#google-services-plugin-and-file).
+4. Sync & Run `app` configuration
+
+The app will open with the samples list screen that allows you to navigate throughout the different
+available samples.
+
+## Samples
+Here is the list of samples you can find in the `/samples` folder:
+
+| Samples | |
+|:----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+|
| ✨📱☁️ **Hybrid Inference**:
A sample demonstrating a hybrid approach to generative AI, utilizing both on-device (Gemini Nano via ML Kit) and cloud-based (Gemini via Firebase AI SDK) models. It showcases how to fallback to the cloud when on-device capabilities are unavailable.
**[> Browse code](samples/gemini-hybrid)**
|
+| | |
+|
| ✨🖼️🍌 **Gemini Image Chat**:
A chatbot app using the new [Gemini 3 Pro Image model](https://deepmind.google/models/gemini-image/pro/) (a.k.a. "Nano Banana Pro") enabling image generation and iterations via conversation with the Gemini model. Ask the model to generate an image and ask for tweaks in the chat.
**[> Browse code](samples/gemini-image-chat)**
|
+| | |
+|
| ✨🗣️ **Gemini Chatbot**:
A chatbot app using the Gemini Flash model. You can tweak the [system instructions](https://firebase.google.com/docs/ai-logic/system-instructions) in the model configuration to change the tone or the persona of the model.
**[> Browse code](samples/gemini-chatbot)**
|
+| | |
+|
| ✨📸 **Gemini Multimodal**:
A sample leveraging the [multimodal capabilities](https://developer.android.com/ai/gemini/developer-api#generate-text-from-media) of the Gemini Flash model (in this case text and image-to-text) to let you prompt the model with an image.
**[> Browse code](samples/gemini-multimodal)**
|
+| | |
+|
| ✨📱📰 **On-device Summarization**:
A sample letting you summarize text on-device using Gemini Nano via the [GenAI Summarization API](https://developers.google.com/ml-kit/genai/summarization/android).
**[> Browse code](samples/genai-summarization)**
|
+| | |
+|
| ✨📱🔍 **On-device Image Description**:
A sample letting you generate image descriptions using Gemini Nano via the [GenAI Image Description API](https://developers.google.com/ml-kit/genai/image-description/android).
**[> Browse code](samples/genai-image-description)**
|
+| | |
+|
| ✨📱🖋️ **On-device Writing Assistance**:
A sample letting you proofread and rewrite text using Gemini Nano via the [GenAI Rewriting API](https://developers.google.com/ml-kit/genai/rewriting/android).
**[> Browse code](samples/genai-writing-assistance)**
|
+| | |
+|
| 🖼️🍌 **Nanobanana**:
A sample using [Gemini 3.1 Flash Image model](https://developer.android.com/ai/gemini) (a.k.a. \"Nano Banana\") to generate images of landscapes, objects and people in various artistic style.
**[> Browse code](samples/nanobanana)**
|
+| | |
+|
| 🖼️📸 **Magic Selfie**:
A sample using [ML Kit subject Segmentation SDK](https://developers.google.com/ml-kit/vision/subject-segmentation/android) to remove the background behind a person, and Nano Banana to generate new background.
**[> Browse code](samples/magic-selfie)**
|
+| | |
+|
| ✨🎥 **Gemini Video Summarization**:
A sample using Gemini Flash to [summarize videos](https://firebase.google.com/docs/ai-logic/analyze-video?api=dev) leveraging the [large file support](https://firebase.google.com/docs/ai-logic/solutions/cloud-storage).
**[> Browse code](samples/gemini-video-summarization)**
|
+| | |
+|
| ✨🎥 **Gemini Video Metadata Creation**:
A sample using Gemini Flash to generate thumbnails, descriptions, hashtags, account tags, chapters and links from a video. This sample leverages the ability to provide a [Youtube video link](https://firebase.google.com/docs/ai-logic/input-file-requirements?api=dev#provide-file-using-url) to the model context for inference.
**[> Browse code](samples/gemini-video-metadata-creation)**
|
+| | |
+|
| ✨🗣️ **Gemini Live API To-do App**:
A to-do list app using the [Gemini Live API](https://developer.android.com/ai/gemini/live) to let the user interact with Gemini via voice to update the todo list.
**[> Browse code](samples/gemini-live-todo)**
|
+
+## Reporting issues
+
+You can report [issues with the samples](https://github.com/android/ai-samples/issues) using
+this repository. When doing so, make sure to specify which sample you are referring to.
+
+## Contributions
+
+We aren't open to contribution to this project at the moment.
+
+## License
+
+```
+Copyright 2023 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
diff --git a/android_architecture.md b/ai-sample-catalog/android_architecture.md
similarity index 100%
rename from android_architecture.md
rename to ai-sample-catalog/android_architecture.md
diff --git a/app/.gitignore b/ai-sample-catalog/app/.gitignore
similarity index 100%
rename from app/.gitignore
rename to ai-sample-catalog/app/.gitignore
diff --git a/app/build.gradle.kts b/ai-sample-catalog/app/build.gradle.kts
similarity index 100%
rename from app/build.gradle.kts
rename to ai-sample-catalog/app/build.gradle.kts
diff --git a/app/google-services.json b/ai-sample-catalog/app/google-services.json
similarity index 100%
rename from app/google-services.json
rename to ai-sample-catalog/app/google-services.json
diff --git a/app/proguard-rules.pro b/ai-sample-catalog/app/proguard-rules.pro
similarity index 100%
rename from app/proguard-rules.pro
rename to ai-sample-catalog/app/proguard-rules.pro
diff --git a/app/src/main/AndroidManifest.xml b/ai-sample-catalog/app/src/main/AndroidManifest.xml
similarity index 100%
rename from app/src/main/AndroidManifest.xml
rename to ai-sample-catalog/app/src/main/AndroidManifest.xml
diff --git a/app/src/main/java/com/android/ai/catalog/CatalogApplication.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/CatalogApplication.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/CatalogApplication.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/CatalogApplication.kt
diff --git a/app/src/main/java/com/android/ai/catalog/MainActivity.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/MainActivity.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/MainActivity.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/MainActivity.kt
diff --git a/app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt
index 51b15282..ad0e9b4e 100644
--- a/app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt
+++ b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/domain/SampleCatalog.kt
@@ -23,6 +23,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import com.android.ai.catalog.R
import com.android.ai.samples.geminichatbot.GeminiChatbotScreen
+import com.android.ai.samples.geminihybrid.GeminiHybridScreen
import com.android.ai.samples.geminiimagechat.GeminiImageChatScreen
import com.android.ai.samples.geminilivetodo.ui.TodoScreen
import com.android.ai.samples.geminimultimodal.ui.GeminiMultimodalScreen
@@ -31,9 +32,8 @@ import com.android.ai.samples.geminivideosummary.ui.VideoSummarizationScreen
import com.android.ai.samples.genai_image_description.GenAIImageDescriptionScreen
import com.android.ai.samples.genai_summarization.GenAISummarizationScreen
import com.android.ai.samples.genai_writing_assistance.GenAIWritingAssistanceScreen
-import com.android.ai.samples.geminihybrid.GeminiHybridScreen
-import com.android.ai.samples.nanobanana.ui.NanobananaScreen
import com.android.ai.samples.magicselfie.ui.MagicSelfieScreen
+import com.android.ai.samples.nanobanana.ui.NanobananaScreen
import com.android.ai.theme.extendedColorScheme
import com.google.firebase.ai.type.PublicPreviewAPI
diff --git a/app/src/main/java/com/android/ai/catalog/ui/CatalogApp.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogApp.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/ui/CatalogApp.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogApp.kt
diff --git a/app/src/main/java/com/android/ai/catalog/ui/CatalogRowCard.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogRowCard.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/ui/CatalogRowCard.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogRowCard.kt
diff --git a/app/src/main/java/com/android/ai/catalog/ui/CatalogWideCard.kt b/ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogWideCard.kt
similarity index 100%
rename from app/src/main/java/com/android/ai/catalog/ui/CatalogWideCard.kt
rename to ai-sample-catalog/app/src/main/java/com/android/ai/catalog/ui/CatalogWideCard.kt
diff --git a/app/src/main/res/drawable-hdpi/img_bg_landing.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_bg_landing.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_bg_landing.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_bg_landing.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_chatbot.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_chatbot.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_chatbot.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_chatbot.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_imagen.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_imagen.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_imagen.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_imagen.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_img_desc.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_img_desc.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_img_desc.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_img_desc.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_magic_selfie.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_magic_selfie.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_magic_selfie.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_magic_selfie.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_metadata.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_metadata.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_metadata.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_metadata.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_multimodal.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_multimodal.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_multimodal.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_multimodal.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_summary.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_summary.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_summary.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_text.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_text.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_text.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_text.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_todo.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_todo.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_todo.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_todo.png
diff --git a/app/src/main/res/drawable-hdpi/img_keyart_video_summary.png b/ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_video_summary.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/img_keyart_video_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-hdpi/img_keyart_video_summary.png
diff --git a/app/src/main/res/drawable-mdpi/img_bg_landing.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_bg_landing.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_bg_landing.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_bg_landing.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_chatbot.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_chatbot.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_chatbot.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_chatbot.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_imagen.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_imagen.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_imagen.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_imagen.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_img_desc.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_img_desc.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_img_desc.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_img_desc.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_magic_selfie.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_magic_selfie.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_magic_selfie.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_magic_selfie.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_metadata.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_metadata.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_metadata.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_metadata.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_multimodal.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_multimodal.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_multimodal.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_multimodal.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_summary.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_summary.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_summary.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_text.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_text.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_text.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_text.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_todo.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_todo.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_todo.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_todo.png
diff --git a/app/src/main/res/drawable-mdpi/img_keyart_video_summary.png b/ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_video_summary.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/img_keyart_video_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-mdpi/img_keyart_video_summary.png
diff --git a/app/src/main/res/drawable-xhdpi/img_bg_landing.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_bg_landing.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_bg_landing.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_bg_landing.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_chatbot.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_chatbot.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_chatbot.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_chatbot.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_imagen.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_imagen.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_imagen.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_imagen.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_img_desc.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_img_desc.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_img_desc.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_img_desc.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_magic_selfie.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_magic_selfie.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_magic_selfie.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_magic_selfie.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_metadata.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_metadata.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_metadata.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_metadata.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_multimodal.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_multimodal.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_multimodal.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_multimodal.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_summary.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_text.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_text.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_text.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_text.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_todo.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_todo.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_todo.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_todo.png
diff --git a/app/src/main/res/drawable-xhdpi/img_keyart_video_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_video_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/img_keyart_video_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xhdpi/img_keyart_video_summary.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_bg_landing.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_bg_landing.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_bg_landing.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_bg_landing.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_chatbot.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_chatbot.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_chatbot.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_chatbot.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_imagen.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_imagen.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_imagen.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_imagen.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_img_desc.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_img_desc.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_img_desc.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_img_desc.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_magic_selfie.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_magic_selfie.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_magic_selfie.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_magic_selfie.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_metadata.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_metadata.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_metadata.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_metadata.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_multimodal.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_multimodal.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_multimodal.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_multimodal.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_summary.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_text.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_text.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_text.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_text.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_todo.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_todo.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_todo.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_todo.png
diff --git a/app/src/main/res/drawable-xxhdpi/img_keyart_video_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_video_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/img_keyart_video_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxhdpi/img_keyart_video_summary.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_bg_landing.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_bg_landing.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_bg_landing.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_bg_landing.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_chatbot.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_chatbot.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_chatbot.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_chatbot.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_imagen.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_imagen.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_imagen.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_imagen.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_img_desc.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_img_desc.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_img_desc.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_img_desc.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_magic_selfie.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_magic_selfie.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_magic_selfie.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_magic_selfie.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_metadata.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_metadata.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_metadata.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_metadata.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_multimodal.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_multimodal.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_multimodal.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_multimodal.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_summary.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_text.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_text.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_text.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_text.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_todo.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_todo.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_todo.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_todo.png
diff --git a/app/src/main/res/drawable-xxxhdpi/img_keyart_video_summary.png b/ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_video_summary.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/img_keyart_video_summary.png
rename to ai-sample-catalog/app/src/main/res/drawable-xxxhdpi/img_keyart_video_summary.png
diff --git a/app/src/main/res/drawable/bg.png b/ai-sample-catalog/app/src/main/res/drawable/bg.png
similarity index 100%
rename from app/src/main/res/drawable/bg.png
rename to ai-sample-catalog/app/src/main/res/drawable/bg.png
diff --git a/app/src/main/res/drawable/spark_android.xml b/ai-sample-catalog/app/src/main/res/drawable/spark_android.xml
similarity index 100%
rename from app/src/main/res/drawable/spark_android.xml
rename to ai-sample-catalog/app/src/main/res/drawable/spark_android.xml
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ai-sample-catalog/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to ai-sample-catalog/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ai-sample-catalog/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to ai-sample-catalog/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ai-sample-catalog/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to ai-sample-catalog/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ai-sample-catalog/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to ai-sample-catalog/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ai-sample-catalog/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to ai-sample-catalog/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/app/src/main/res/values/strings.xml b/ai-sample-catalog/app/src/main/res/values/strings.xml
similarity index 100%
rename from app/src/main/res/values/strings.xml
rename to ai-sample-catalog/app/src/main/res/values/strings.xml
diff --git a/app/src/main/res/values/themes.xml b/ai-sample-catalog/app/src/main/res/values/themes.xml
similarity index 100%
rename from app/src/main/res/values/themes.xml
rename to ai-sample-catalog/app/src/main/res/values/themes.xml
diff --git a/app/src/main/res/xml/backup_rules.xml b/ai-sample-catalog/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from app/src/main/res/xml/backup_rules.xml
rename to ai-sample-catalog/app/src/main/res/xml/backup_rules.xml
diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/ai-sample-catalog/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from app/src/main/res/xml/data_extraction_rules.xml
rename to ai-sample-catalog/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/app/src/main/res/xml/provider_paths.xml b/ai-sample-catalog/app/src/main/res/xml/provider_paths.xml
similarity index 100%
rename from app/src/main/res/xml/provider_paths.xml
rename to ai-sample-catalog/app/src/main/res/xml/provider_paths.xml
diff --git a/build.gradle.kts b/ai-sample-catalog/build.gradle.kts
similarity index 100%
rename from build.gradle.kts
rename to ai-sample-catalog/build.gradle.kts
diff --git a/gradle.properties b/ai-sample-catalog/gradle.properties
similarity index 100%
rename from gradle.properties
rename to ai-sample-catalog/gradle.properties
diff --git a/gradle/libs.versions.toml b/ai-sample-catalog/gradle/libs.versions.toml
similarity index 100%
rename from gradle/libs.versions.toml
rename to ai-sample-catalog/gradle/libs.versions.toml
diff --git a/gradle/wrapper/gradle-wrapper.jar b/ai-sample-catalog/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.jar
rename to ai-sample-catalog/gradle/wrapper/gradle-wrapper.jar
diff --git a/gradle/wrapper/gradle-wrapper.properties b/ai-sample-catalog/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.properties
rename to ai-sample-catalog/gradle/wrapper/gradle-wrapper.properties
diff --git a/gradlew b/ai-sample-catalog/gradlew
similarity index 100%
rename from gradlew
rename to ai-sample-catalog/gradlew
diff --git a/gradlew.bat b/ai-sample-catalog/gradlew.bat
similarity index 100%
rename from gradlew.bat
rename to ai-sample-catalog/gradlew.bat
diff --git a/samples/gemini-chatbot/.gitignore b/ai-sample-catalog/samples/gemini-chatbot/.gitignore
similarity index 100%
rename from samples/gemini-chatbot/.gitignore
rename to ai-sample-catalog/samples/gemini-chatbot/.gitignore
diff --git a/samples/gemini-chatbot/README.md b/ai-sample-catalog/samples/gemini-chatbot/README.md
similarity index 100%
rename from samples/gemini-chatbot/README.md
rename to ai-sample-catalog/samples/gemini-chatbot/README.md
diff --git a/samples/gemini-chatbot/build.gradle.kts b/ai-sample-catalog/samples/gemini-chatbot/build.gradle.kts
similarity index 100%
rename from samples/gemini-chatbot/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-chatbot/build.gradle.kts
diff --git a/samples/gemini-chatbot/consumer-rules.pro b/ai-sample-catalog/samples/gemini-chatbot/consumer-rules.pro
similarity index 100%
rename from samples/gemini-chatbot/consumer-rules.pro
rename to ai-sample-catalog/samples/gemini-chatbot/consumer-rules.pro
diff --git a/samples/gemini-chatbot/gemini_chatbot.png b/ai-sample-catalog/samples/gemini-chatbot/gemini_chatbot.png
similarity index 100%
rename from samples/gemini-chatbot/gemini_chatbot.png
rename to ai-sample-catalog/samples/gemini-chatbot/gemini_chatbot.png
diff --git a/samples/gemini-chatbot/proguard-rules.pro b/ai-sample-catalog/samples/gemini-chatbot/proguard-rules.pro
similarity index 100%
rename from samples/gemini-chatbot/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-chatbot/proguard-rules.pro
diff --git a/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotScreen.kt b/ai-sample-catalog/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotScreen.kt
similarity index 100%
rename from samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotScreen.kt
rename to ai-sample-catalog/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotScreen.kt
diff --git a/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotViewModel.kt b/ai-sample-catalog/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotViewModel.kt
similarity index 100%
rename from samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotViewModel.kt
rename to ai-sample-catalog/samples/gemini-chatbot/src/main/java/com/android/ai/samples/geminichatbot/GeminiChatbotViewModel.kt
diff --git a/samples/gemini-chatbot/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-chatbot/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-chatbot/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-chatbot/src/main/res/values/strings.xml
diff --git a/samples/gemini-hybrid/.gitignore b/ai-sample-catalog/samples/gemini-hybrid/.gitignore
similarity index 100%
rename from samples/gemini-hybrid/.gitignore
rename to ai-sample-catalog/samples/gemini-hybrid/.gitignore
diff --git a/samples/gemini-hybrid/README.md b/ai-sample-catalog/samples/gemini-hybrid/README.md
similarity index 100%
rename from samples/gemini-hybrid/README.md
rename to ai-sample-catalog/samples/gemini-hybrid/README.md
diff --git a/samples/gemini-hybrid/build.gradle.kts b/ai-sample-catalog/samples/gemini-hybrid/build.gradle.kts
similarity index 100%
rename from samples/gemini-hybrid/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-hybrid/build.gradle.kts
diff --git a/samples/gemini-hybrid/consumer-rules.pro b/ai-sample-catalog/samples/gemini-hybrid/consumer-rules.pro
similarity index 100%
rename from samples/gemini-hybrid/consumer-rules.pro
rename to ai-sample-catalog/samples/gemini-hybrid/consumer-rules.pro
diff --git a/samples/gemini-hybrid/gemini_hybrid.png b/ai-sample-catalog/samples/gemini-hybrid/gemini_hybrid.png
similarity index 100%
rename from samples/gemini-hybrid/gemini_hybrid.png
rename to ai-sample-catalog/samples/gemini-hybrid/gemini_hybrid.png
diff --git a/samples/gemini-hybrid/proguard-rules.pro b/ai-sample-catalog/samples/gemini-hybrid/proguard-rules.pro
similarity index 100%
rename from samples/gemini-hybrid/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-hybrid/proguard-rules.pro
diff --git a/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt b/ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt
similarity index 99%
rename from samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt
rename to ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt
index f465ca4f..771455b0 100644
--- a/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt
+++ b/ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridScreen.kt
@@ -80,13 +80,12 @@ import com.google.firebase.ai.InferenceMode
import com.google.firebase.ai.OnDeviceModelOption
import com.google.firebase.ai.type.PublicPreviewAPI
-
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable
fun GeminiHybridScreen(viewModel: GeminiHybridViewModel = hiltViewModel()) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
-
+
val context = LocalContext.current
val backDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
@@ -167,7 +166,7 @@ fun GeminiHybridScreen(viewModel: GeminiHybridViewModel = hiltViewModel()) {
onTranslate = {
viewModel.translate(
uiState.reviewText,
- uiState.selectedLanguage
+ uiState.selectedLanguage,
)
},
onReset = viewModel::reset,
@@ -412,10 +411,7 @@ fun LanguageDropdown(
@PublicPreviewAPI
@Composable
-fun InferenceModeDropdown(
- selectedMode: InferenceMode,
- onModeSelected: (InferenceMode) -> Unit,
-) {
+fun InferenceModeDropdown(selectedMode: InferenceMode, onModeSelected: (InferenceMode) -> Unit, modifier: Modifier = Modifier) {
var expanded by remember { mutableStateOf(false) }
val modes = listOf(
InferenceMode.ONLY_ON_DEVICE to stringResource(R.string.gemini_hybrid_mode_only_on_device),
@@ -425,7 +421,7 @@ fun InferenceModeDropdown(
)
val selectedText = modes.find { it.first == selectedMode }?.second ?: ""
- Box(modifier = Modifier.padding(start = 8.dp, top = 12.dp)) {
+ Box(modifier = modifier.padding(start = 8.dp, top = 12.dp)) {
SplitButtonLayout(
leadingButton = {
SplitButtonDefaults.LeadingButton(
diff --git a/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt b/ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt
similarity index 93%
rename from samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt
rename to ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt
index 691f9eec..0498a669 100644
--- a/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt
+++ b/ai-sample-catalog/samples/gemini-hybrid/src/main/java/com/android/ai/samples/geminihybrid/GeminiHybridViewModel.kt
@@ -22,9 +22,9 @@ import com.google.firebase.Firebase
import com.google.firebase.ai.InferenceMode
import com.google.firebase.ai.InferenceSource
import com.google.firebase.ai.OnDeviceConfig
-import com.google.firebase.ai.ai
import com.google.firebase.ai.OnDeviceModelOption
import com.google.firebase.ai.OnDeviceModelStatus
+import com.google.firebase.ai.ai
import com.google.firebase.ai.type.GenerativeBackend
import com.google.firebase.ai.type.PublicPreviewAPI
import dagger.hilt.android.lifecycle.HiltViewModel
@@ -40,13 +40,13 @@ sealed interface GeminiStatus {
data class Generating(
val isCloud: Boolean,
val partialOutput: String = "",
- val isTranslation: Boolean = false
+ val isTranslation: Boolean = false,
) : GeminiStatus
data class Success(
val output: String,
val isCloud: Boolean,
- val isTranslation: Boolean = false
+ val isTranslation: Boolean = false,
) : GeminiStatus
data class Error(val message: String) : GeminiStatus
@@ -61,7 +61,7 @@ data class GeminiHybridUiState(
val reviewText: String = "",
val reviewInferenceStatus: Int? = null,
val selectedLanguage: String = "Korean",
- val status: GeminiStatus = GeminiStatus.Initial
+ val status: GeminiStatus = GeminiStatus.Initial,
)
@PublicPreviewAPI
@@ -82,8 +82,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
"gemini-2.5-flash-lite",
onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.ONLY_ON_DEVICE,
- modelOption = OnDeviceModelOption.PREVIEW
- )
+ modelOption = OnDeviceModelOption.PREVIEW,
+ ),
)
val status = model.onDeviceExtension?.checkStatus()
val isAvailable = status == OnDeviceModelStatus.AVAILABLE
@@ -109,7 +109,7 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
"Korean" to R.string.gemini_hybrid_lang_korean,
"Spanish" to R.string.gemini_hybrid_lang_spanish,
"French" to R.string.gemini_hybrid_lang_french,
- "German" to R.string.gemini_hybrid_lang_german
+ "German" to R.string.gemini_hybrid_lang_german,
)
fun setInferenceMode(mode: InferenceMode) {
@@ -150,8 +150,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
it.copy(
status = GeminiStatus.Generating(
isCloud = it.selectedMode == InferenceMode.ONLY_IN_CLOUD,
- isTranslation = false
- )
+ isTranslation = false,
+ ),
)
}
try {
@@ -165,8 +165,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
"gemini-2.5-flash-lite",
onDeviceConfig = OnDeviceConfig(
mode = _uiState.value.selectedMode,
- modelOption = _uiState.value.selectedModelOption
- )
+ modelOption = _uiState.value.selectedModelOption,
+ ),
)
model.generateContentStream(prompt).collect { chunk ->
val isCloud = chunk.inferenceSource == InferenceSource.IN_CLOUD
@@ -175,13 +175,13 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
val newStatus = if (currentStatus is GeminiStatus.Generating) {
currentStatus.copy(
isCloud = isCloud,
- partialOutput = currentStatus.partialOutput + (chunk.text ?: "")
+ partialOutput = currentStatus.partialOutput + (chunk.text ?: ""),
)
} else {
GeminiStatus.Generating(
isCloud = isCloud,
partialOutput = chunk.text ?: "",
- isTranslation = false
+ isTranslation = false,
)
}
state.copy(status = newStatus)
@@ -201,7 +201,7 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
it.copy(
reviewText = output,
reviewInferenceStatus = inferenceStatusResId,
- status = GeminiStatus.Success(output, finalStatus.isCloud, isTranslation = false)
+ status = GeminiStatus.Success(output, finalStatus.isCloud, isTranslation = false),
)
}
}
@@ -225,8 +225,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
it.copy(
status = GeminiStatus.Generating(
isCloud = it.selectedMode == InferenceMode.ONLY_IN_CLOUD,
- isTranslation = true
- )
+ isTranslation = true,
+ ),
)
}
try {
@@ -238,8 +238,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
"gemini-2.5-flash-lite",
onDeviceConfig = OnDeviceConfig(
mode = _uiState.value.selectedMode,
- modelOption = _uiState.value.selectedModelOption
- )
+ modelOption = _uiState.value.selectedModelOption,
+ ),
)
model.generateContentStream(prompt).collect { chunk ->
@@ -249,13 +249,13 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
val newStatus = if (currentStatus is GeminiStatus.Generating) {
currentStatus.copy(
isCloud = isCloud,
- partialOutput = currentStatus.partialOutput + (chunk.text ?: "")
+ partialOutput = currentStatus.partialOutput + (chunk.text ?: ""),
)
} else {
GeminiStatus.Generating(
isCloud = isCloud,
partialOutput = chunk.text ?: "",
- isTranslation = true
+ isTranslation = true,
)
}
state.copy(status = newStatus)
@@ -270,8 +270,8 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
status = GeminiStatus.Success(
finalStatus.partialOutput,
finalStatus.isCloud,
- isTranslation = true
- )
+ isTranslation = true,
+ ),
)
}
}
@@ -286,7 +286,7 @@ class GeminiHybridViewModel @Inject constructor() : ViewModel() {
fun reset() {
_uiState.value = GeminiHybridUiState(
- isPreviewModelAvailable = _uiState.value.isPreviewModelAvailable
+ isPreviewModelAvailable = _uiState.value.isPreviewModelAvailable,
)
}
}
diff --git a/samples/gemini-hybrid/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-hybrid/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-hybrid/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-hybrid/src/main/res/values/strings.xml
diff --git a/samples/gemini-image-chat/.gitignore b/ai-sample-catalog/samples/gemini-image-chat/.gitignore
similarity index 100%
rename from samples/gemini-image-chat/.gitignore
rename to ai-sample-catalog/samples/gemini-image-chat/.gitignore
diff --git a/samples/gemini-image-chat/README.md b/ai-sample-catalog/samples/gemini-image-chat/README.md
similarity index 100%
rename from samples/gemini-image-chat/README.md
rename to ai-sample-catalog/samples/gemini-image-chat/README.md
diff --git a/samples/gemini-image-chat/android_nano_banana.png b/ai-sample-catalog/samples/gemini-image-chat/android_nano_banana.png
similarity index 100%
rename from samples/gemini-image-chat/android_nano_banana.png
rename to ai-sample-catalog/samples/gemini-image-chat/android_nano_banana.png
diff --git a/samples/gemini-image-chat/build.gradle.kts b/ai-sample-catalog/samples/gemini-image-chat/build.gradle.kts
similarity index 100%
rename from samples/gemini-image-chat/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-image-chat/build.gradle.kts
diff --git a/samples/gemini-image-chat/consumer-rules.pro b/ai-sample-catalog/samples/gemini-image-chat/consumer-rules.pro
similarity index 100%
rename from samples/gemini-image-chat/consumer-rules.pro
rename to ai-sample-catalog/samples/gemini-image-chat/consumer-rules.pro
diff --git a/samples/gemini-image-chat/proguard-rules.pro b/ai-sample-catalog/samples/gemini-image-chat/proguard-rules.pro
similarity index 100%
rename from samples/gemini-image-chat/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-image-chat/proguard-rules.pro
diff --git a/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatScreen.kt b/ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatScreen.kt
similarity index 100%
rename from samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatScreen.kt
rename to ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatScreen.kt
diff --git a/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatViewModel.kt b/ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatViewModel.kt
similarity index 100%
rename from samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatViewModel.kt
rename to ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/geminiimagechat/GeminiImageChatViewModel.kt
diff --git a/samples/gemini-image-chat/src/main/java/com/android/ai/samples/util/BitmapUtils.kt b/ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/util/BitmapUtils.kt
similarity index 100%
rename from samples/gemini-image-chat/src/main/java/com/android/ai/samples/util/BitmapUtils.kt
rename to ai-sample-catalog/samples/gemini-image-chat/src/main/java/com/android/ai/samples/util/BitmapUtils.kt
diff --git a/samples/gemini-image-chat/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-image-chat/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-image-chat/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-image-chat/src/main/res/values/strings.xml
diff --git a/samples/gemini-live-todo/.gitignore b/ai-sample-catalog/samples/gemini-live-todo/.gitignore
similarity index 100%
rename from samples/gemini-live-todo/.gitignore
rename to ai-sample-catalog/samples/gemini-live-todo/.gitignore
diff --git a/samples/gemini-live-todo/README.md b/ai-sample-catalog/samples/gemini-live-todo/README.md
similarity index 100%
rename from samples/gemini-live-todo/README.md
rename to ai-sample-catalog/samples/gemini-live-todo/README.md
diff --git a/samples/gemini-live-todo/build.gradle.kts b/ai-sample-catalog/samples/gemini-live-todo/build.gradle.kts
similarity index 100%
rename from samples/gemini-live-todo/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-live-todo/build.gradle.kts
diff --git a/samples/gemini-live-todo/consumer-rules.pro b/ai-sample-catalog/samples/gemini-live-todo/consumer-rules.pro
similarity index 100%
rename from samples/gemini-live-todo/consumer-rules.pro
rename to ai-sample-catalog/samples/gemini-live-todo/consumer-rules.pro
diff --git a/samples/gemini-live-todo/gemini_live_todo.png b/ai-sample-catalog/samples/gemini-live-todo/gemini_live_todo.png
similarity index 100%
rename from samples/gemini-live-todo/gemini_live_todo.png
rename to ai-sample-catalog/samples/gemini-live-todo/gemini_live_todo.png
diff --git a/samples/gemini-live-todo/proguard-rules.pro b/ai-sample-catalog/samples/gemini-live-todo/proguard-rules.pro
similarity index 100%
rename from samples/gemini-live-todo/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-live-todo/proguard-rules.pro
diff --git a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt
similarity index 99%
rename from samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt
index 953ec7fc..755d72d5 100644
--- a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt
+++ b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/Todo.kt
@@ -17,7 +17,6 @@ package com.android.ai.samples.geminilivetodo.data
import kotlin.random.Random
-
data class Todo(
val id: Int = Random.nextInt(),
val task: String,
diff --git a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt
similarity index 97%
rename from samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt
index 8729e1b6..160e9441 100644
--- a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt
+++ b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/data/TodoRepository.kt
@@ -41,7 +41,7 @@ class TodoRepository @Inject constructor() {
fun getTodoList(): List = _todos.value
- fun addTodo(taskDescription: String) : Int? {
+ fun addTodo(taskDescription: String): Int? {
if (taskDescription.isNotBlank()) {
val newTodo = Todo(task = taskDescription)
_todos.update { currentList ->
diff --git a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreen.kt b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreen.kt
similarity index 100%
rename from samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreen.kt
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreen.kt
diff --git a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenUiState.kt b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenUiState.kt
similarity index 100%
rename from samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenUiState.kt
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenUiState.kt
diff --git a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt
similarity index 99%
rename from samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt
index 05dbd7ab..0fb1ddb1 100644
--- a/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt
+++ b/ai-sample-catalog/samples/gemini-live-todo/src/main/java/com/android/ai/samples/geminilivetodo/ui/TodoScreenViewModel.kt
@@ -52,7 +52,6 @@ import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.int
import kotlinx.serialization.json.jsonPrimitive
-import kotlinx.serialization.json.long
@OptIn(PublicPreviewAPI::class)
@HiltViewModel
@@ -198,7 +197,7 @@ class TodoScreenViewModel @Inject constructor(private val todoRepository: TodoRe
val taskDescription = functionCall.args["taskDescription"]!!.jsonPrimitive.content
val id = todoRepository.addTodo(taskDescription)
- if (id!=null) {
+ if (id != null) {
val response = JsonObject(
mapOf(
"success" to JsonPrimitive(true),
@@ -215,7 +214,6 @@ class TodoScreenViewModel @Inject constructor(private val todoRepository: TodoRe
)
FunctionResponsePart(functionCall.name, response, functionCall.id)
}
-
}
"removeTodo" -> {
try {
@@ -237,7 +235,6 @@ class TodoScreenViewModel @Inject constructor(private val todoRepository: TodoRe
)
FunctionResponsePart(functionCall.name, response, functionCall.id)
}
-
}
"toggleTodoStatus" -> {
val taskId = functionCall.args["todoId"]!!.jsonPrimitive.int
diff --git a/samples/gemini-live-todo/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-live-todo/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-live-todo/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-live-todo/src/main/res/values/strings.xml
diff --git a/samples/gemini-multimodal/.gitignore b/ai-sample-catalog/samples/gemini-multimodal/.gitignore
similarity index 100%
rename from samples/gemini-multimodal/.gitignore
rename to ai-sample-catalog/samples/gemini-multimodal/.gitignore
diff --git a/samples/gemini-multimodal/README.md b/ai-sample-catalog/samples/gemini-multimodal/README.md
similarity index 100%
rename from samples/gemini-multimodal/README.md
rename to ai-sample-catalog/samples/gemini-multimodal/README.md
diff --git a/samples/gemini-multimodal/build.gradle.kts b/ai-sample-catalog/samples/gemini-multimodal/build.gradle.kts
similarity index 100%
rename from samples/gemini-multimodal/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-multimodal/build.gradle.kts
diff --git a/samples/gemini-multimodal/consumer-rules.pro b/ai-sample-catalog/samples/gemini-multimodal/consumer-rules.pro
similarity index 100%
rename from samples/gemini-multimodal/consumer-rules.pro
rename to ai-sample-catalog/samples/gemini-multimodal/consumer-rules.pro
diff --git a/samples/gemini-multimodal/gemini_multimodal.png b/ai-sample-catalog/samples/gemini-multimodal/gemini_multimodal.png
similarity index 100%
rename from samples/gemini-multimodal/gemini_multimodal.png
rename to ai-sample-catalog/samples/gemini-multimodal/gemini_multimodal.png
diff --git a/samples/gemini-multimodal/proguard-rules.pro b/ai-sample-catalog/samples/gemini-multimodal/proguard-rules.pro
similarity index 100%
rename from samples/gemini-multimodal/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-multimodal/proguard-rules.pro
diff --git a/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/data/GeminiDataSource.kt b/ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/data/GeminiDataSource.kt
similarity index 100%
rename from samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/data/GeminiDataSource.kt
rename to ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/data/GeminiDataSource.kt
diff --git a/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalScreen.kt b/ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalScreen.kt
similarity index 100%
rename from samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalScreen.kt
rename to ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalScreen.kt
diff --git a/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalUiState.kt b/ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalUiState.kt
similarity index 100%
rename from samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalUiState.kt
rename to ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalUiState.kt
diff --git a/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalViewModel.kt b/ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalViewModel.kt
similarity index 100%
rename from samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalViewModel.kt
rename to ai-sample-catalog/samples/gemini-multimodal/src/main/java/com/android/ai/samples/geminimultimodal/ui/GeminiMultimodalViewModel.kt
diff --git a/samples/gemini-multimodal/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-multimodal/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-multimodal/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-multimodal/src/main/res/values/strings.xml
diff --git a/samples/gemini-video-metadata-creation/README.md b/ai-sample-catalog/samples/gemini-video-metadata-creation/README.md
similarity index 100%
rename from samples/gemini-video-metadata-creation/README.md
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/README.md
diff --git a/samples/gemini-video-metadata-creation/build.gradle.kts b/ai-sample-catalog/samples/gemini-video-metadata-creation/build.gradle.kts
similarity index 100%
rename from samples/gemini-video-metadata-creation/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/build.gradle.kts
diff --git a/samples/gemini-video-metadata-creation/gemini_video_metadata.png b/ai-sample-catalog/samples/gemini-video-metadata-creation/gemini_video_metadata.png
similarity index 100%
rename from samples/gemini-video-metadata-creation/gemini_video_metadata.png
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/gemini_video_metadata.png
diff --git a/samples/gemini-video-metadata-creation/proguard-rules.pro b/ai-sample-catalog/samples/gemini-video-metadata-creation/proguard-rules.pro
similarity index 100%
rename from samples/gemini-video-metadata-creation/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/proguard-rules.pro
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateAccountTags.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateAccountTags.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateAccountTags.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateAccountTags.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateChapters.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateChapters.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateChapters.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateChapters.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateDescription.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateDescription.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateDescription.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateDescription.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateHashtags.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateHashtags.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateHashtags.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateHashtags.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateLinks.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateLinks.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateLinks.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateLinks.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateThumbnails.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateThumbnails.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateThumbnails.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateThumbnails.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/ExtractHDRThumbnails.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/ExtractHDRThumbnails.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/ExtractHDRThumbnails.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/ExtractHDRThumbnails.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoPlayer.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoPlayer.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoPlayer.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoPlayer.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoSelectionDropdown.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoSelectionDropdown.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoSelectionDropdown.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoSelectionDropdown.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataButtonRow.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataButtonRow.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataButtonRow.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataButtonRow.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataComponents.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataComponents.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataComponents.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/MetadataComponents.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/VideoMetadataCreationScreen.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/VideoMetadataCreationScreen.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/VideoMetadataCreationScreen.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/ui/VideoMetadataCreationScreen.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/util/VideoList.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/util/VideoList.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/util/VideoList.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/util/VideoList.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/viewmodel/VideoMetadataCreationViewModel.kt b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/viewmodel/VideoMetadataCreationViewModel.kt
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/viewmodel/VideoMetadataCreationViewModel.kt
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/viewmodel/VideoMetadataCreationViewModel.kt
diff --git a/samples/gemini-video-metadata-creation/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-video-metadata-creation/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-video-metadata-creation/src/main/res/values/strings.xml
diff --git a/samples/gemini-video-summarization/.gitignore b/ai-sample-catalog/samples/gemini-video-summarization/.gitignore
similarity index 100%
rename from samples/gemini-video-summarization/.gitignore
rename to ai-sample-catalog/samples/gemini-video-summarization/.gitignore
diff --git a/samples/gemini-video-summarization/README.md b/ai-sample-catalog/samples/gemini-video-summarization/README.md
similarity index 100%
rename from samples/gemini-video-summarization/README.md
rename to ai-sample-catalog/samples/gemini-video-summarization/README.md
diff --git a/samples/gemini-video-summarization/build.gradle.kts b/ai-sample-catalog/samples/gemini-video-summarization/build.gradle.kts
similarity index 100%
rename from samples/gemini-video-summarization/build.gradle.kts
rename to ai-sample-catalog/samples/gemini-video-summarization/build.gradle.kts
diff --git a/samples/gemini-video-summarization/gemini_video_summarization.png b/ai-sample-catalog/samples/gemini-video-summarization/gemini_video_summarization.png
similarity index 100%
rename from samples/gemini-video-summarization/gemini_video_summarization.png
rename to ai-sample-catalog/samples/gemini-video-summarization/gemini_video_summarization.png
diff --git a/samples/gemini-video-summarization/proguard-rules.pro b/ai-sample-catalog/samples/gemini-video-summarization/proguard-rules.pro
similarity index 100%
rename from samples/gemini-video-summarization/proguard-rules.pro
rename to ai-sample-catalog/samples/gemini-video-summarization/proguard-rules.pro
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/OutputTextDisplay.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/OutputTextDisplay.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/OutputTextDisplay.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/OutputTextDisplay.kt
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/SummarizationSheet.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/SummarizationSheet.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/SummarizationSheet.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/SummarizationSheet.kt
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/TextToSpeechControls.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/TextToSpeechControls.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/TextToSpeechControls.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/TextToSpeechControls.kt
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/VideoSummarizationScreen.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/VideoSummarizationScreen.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/VideoSummarizationScreen.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/ui/VideoSummarizationScreen.kt
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/util/VideoList.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/util/VideoList.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/util/VideoList.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/util/VideoList.kt
diff --git a/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/viewmodel/VideoSummarizationViewModel.kt b/ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/viewmodel/VideoSummarizationViewModel.kt
similarity index 100%
rename from samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/viewmodel/VideoSummarizationViewModel.kt
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/java/com/android/ai/samples/geminivideosummary/viewmodel/VideoSummarizationViewModel.kt
diff --git a/samples/gemini-video-summarization/src/main/res/values/strings.xml b/ai-sample-catalog/samples/gemini-video-summarization/src/main/res/values/strings.xml
similarity index 100%
rename from samples/gemini-video-summarization/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/gemini-video-summarization/src/main/res/values/strings.xml
diff --git a/samples/genai-image-description/.gitignore b/ai-sample-catalog/samples/genai-image-description/.gitignore
similarity index 100%
rename from samples/genai-image-description/.gitignore
rename to ai-sample-catalog/samples/genai-image-description/.gitignore
diff --git a/samples/genai-image-description/README.md b/ai-sample-catalog/samples/genai-image-description/README.md
similarity index 100%
rename from samples/genai-image-description/README.md
rename to ai-sample-catalog/samples/genai-image-description/README.md
diff --git a/samples/genai-image-description/build.gradle.kts b/ai-sample-catalog/samples/genai-image-description/build.gradle.kts
similarity index 100%
rename from samples/genai-image-description/build.gradle.kts
rename to ai-sample-catalog/samples/genai-image-description/build.gradle.kts
diff --git a/samples/genai-image-description/consumer-rules.pro b/ai-sample-catalog/samples/genai-image-description/consumer-rules.pro
similarity index 100%
rename from samples/genai-image-description/consumer-rules.pro
rename to ai-sample-catalog/samples/genai-image-description/consumer-rules.pro
diff --git a/samples/genai-image-description/nano_image_description.png b/ai-sample-catalog/samples/genai-image-description/nano_image_description.png
similarity index 100%
rename from samples/genai-image-description/nano_image_description.png
rename to ai-sample-catalog/samples/genai-image-description/nano_image_description.png
diff --git a/samples/genai-image-description/proguard-rules.pro b/ai-sample-catalog/samples/genai-image-description/proguard-rules.pro
similarity index 100%
rename from samples/genai-image-description/proguard-rules.pro
rename to ai-sample-catalog/samples/genai-image-description/proguard-rules.pro
diff --git a/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionScreen.kt b/ai-sample-catalog/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionScreen.kt
similarity index 100%
rename from samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionScreen.kt
rename to ai-sample-catalog/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionScreen.kt
diff --git a/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionViewModel.kt b/ai-sample-catalog/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionViewModel.kt
similarity index 100%
rename from samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionViewModel.kt
rename to ai-sample-catalog/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionViewModel.kt
diff --git a/samples/genai-image-description/src/main/res/values/strings.xml b/ai-sample-catalog/samples/genai-image-description/src/main/res/values/strings.xml
similarity index 100%
rename from samples/genai-image-description/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/genai-image-description/src/main/res/values/strings.xml
diff --git a/samples/genai-summarization/.gitignore b/ai-sample-catalog/samples/genai-summarization/.gitignore
similarity index 100%
rename from samples/genai-summarization/.gitignore
rename to ai-sample-catalog/samples/genai-summarization/.gitignore
diff --git a/samples/genai-summarization/README.md b/ai-sample-catalog/samples/genai-summarization/README.md
similarity index 100%
rename from samples/genai-summarization/README.md
rename to ai-sample-catalog/samples/genai-summarization/README.md
diff --git a/samples/genai-summarization/build.gradle.kts b/ai-sample-catalog/samples/genai-summarization/build.gradle.kts
similarity index 100%
rename from samples/genai-summarization/build.gradle.kts
rename to ai-sample-catalog/samples/genai-summarization/build.gradle.kts
diff --git a/samples/genai-summarization/consumer-rules.pro b/ai-sample-catalog/samples/genai-summarization/consumer-rules.pro
similarity index 100%
rename from samples/genai-summarization/consumer-rules.pro
rename to ai-sample-catalog/samples/genai-summarization/consumer-rules.pro
diff --git a/samples/genai-summarization/nano_summarization.png b/ai-sample-catalog/samples/genai-summarization/nano_summarization.png
similarity index 100%
rename from samples/genai-summarization/nano_summarization.png
rename to ai-sample-catalog/samples/genai-summarization/nano_summarization.png
diff --git a/samples/genai-summarization/proguard-rules.pro b/ai-sample-catalog/samples/genai-summarization/proguard-rules.pro
similarity index 100%
rename from samples/genai-summarization/proguard-rules.pro
rename to ai-sample-catalog/samples/genai-summarization/proguard-rules.pro
diff --git a/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationScreen.kt b/ai-sample-catalog/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationScreen.kt
similarity index 100%
rename from samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationScreen.kt
rename to ai-sample-catalog/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationScreen.kt
diff --git a/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationViewModel.kt b/ai-sample-catalog/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationViewModel.kt
similarity index 100%
rename from samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationViewModel.kt
rename to ai-sample-catalog/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationViewModel.kt
diff --git a/samples/genai-summarization/src/main/res/values/strings.xml b/ai-sample-catalog/samples/genai-summarization/src/main/res/values/strings.xml
similarity index 100%
rename from samples/genai-summarization/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/genai-summarization/src/main/res/values/strings.xml
diff --git a/samples/genai-writing-assistance/.gitignore b/ai-sample-catalog/samples/genai-writing-assistance/.gitignore
similarity index 100%
rename from samples/genai-writing-assistance/.gitignore
rename to ai-sample-catalog/samples/genai-writing-assistance/.gitignore
diff --git a/samples/genai-writing-assistance/README.md b/ai-sample-catalog/samples/genai-writing-assistance/README.md
similarity index 100%
rename from samples/genai-writing-assistance/README.md
rename to ai-sample-catalog/samples/genai-writing-assistance/README.md
diff --git a/samples/genai-writing-assistance/build.gradle.kts b/ai-sample-catalog/samples/genai-writing-assistance/build.gradle.kts
similarity index 100%
rename from samples/genai-writing-assistance/build.gradle.kts
rename to ai-sample-catalog/samples/genai-writing-assistance/build.gradle.kts
diff --git a/samples/genai-writing-assistance/consumer-rules.pro b/ai-sample-catalog/samples/genai-writing-assistance/consumer-rules.pro
similarity index 100%
rename from samples/genai-writing-assistance/consumer-rules.pro
rename to ai-sample-catalog/samples/genai-writing-assistance/consumer-rules.pro
diff --git a/samples/genai-writing-assistance/nano_rewrite.png b/ai-sample-catalog/samples/genai-writing-assistance/nano_rewrite.png
similarity index 100%
rename from samples/genai-writing-assistance/nano_rewrite.png
rename to ai-sample-catalog/samples/genai-writing-assistance/nano_rewrite.png
diff --git a/samples/genai-writing-assistance/proguard-rules.pro b/ai-sample-catalog/samples/genai-writing-assistance/proguard-rules.pro
similarity index 100%
rename from samples/genai-writing-assistance/proguard-rules.pro
rename to ai-sample-catalog/samples/genai-writing-assistance/proguard-rules.pro
diff --git a/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceScreen.kt b/ai-sample-catalog/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceScreen.kt
similarity index 100%
rename from samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceScreen.kt
rename to ai-sample-catalog/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceScreen.kt
diff --git a/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceViewModel.kt b/ai-sample-catalog/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceViewModel.kt
similarity index 100%
rename from samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceViewModel.kt
rename to ai-sample-catalog/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceViewModel.kt
diff --git a/samples/genai-writing-assistance/src/main/res/values/strings.xml b/ai-sample-catalog/samples/genai-writing-assistance/src/main/res/values/strings.xml
similarity index 100%
rename from samples/genai-writing-assistance/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/genai-writing-assistance/src/main/res/values/strings.xml
diff --git a/samples/magic-selfie/.gitignore b/ai-sample-catalog/samples/magic-selfie/.gitignore
similarity index 100%
rename from samples/magic-selfie/.gitignore
rename to ai-sample-catalog/samples/magic-selfie/.gitignore
diff --git a/samples/magic-selfie/README.md b/ai-sample-catalog/samples/magic-selfie/README.md
similarity index 100%
rename from samples/magic-selfie/README.md
rename to ai-sample-catalog/samples/magic-selfie/README.md
diff --git a/samples/magic-selfie/build.gradle.kts b/ai-sample-catalog/samples/magic-selfie/build.gradle.kts
similarity index 100%
rename from samples/magic-selfie/build.gradle.kts
rename to ai-sample-catalog/samples/magic-selfie/build.gradle.kts
diff --git a/samples/magic-selfie/magic_selfie.png b/ai-sample-catalog/samples/magic-selfie/magic_selfie.png
similarity index 100%
rename from samples/magic-selfie/magic_selfie.png
rename to ai-sample-catalog/samples/magic-selfie/magic_selfie.png
diff --git a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt
similarity index 99%
rename from samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt
rename to ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt
index 19952fef..842edbd9 100644
--- a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt
+++ b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/data/MagicSelfieRepository.kt
@@ -33,7 +33,7 @@ class MagicSelfieRepository @Inject constructor() {
modelName = "gemini-3.1-flash-image-preview",
generationConfig = generationConfig {
responseModalities = listOf(ResponseModality.TEXT, ResponseModality.IMAGE)
- }
+ },
)
}
diff --git a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/ImageUtils.kt b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/ImageUtils.kt
similarity index 100%
rename from samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/ImageUtils.kt
rename to ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/ImageUtils.kt
diff --git a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieScreen.kt b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieScreen.kt
similarity index 100%
rename from samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieScreen.kt
rename to ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieScreen.kt
diff --git a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieUiState.kt b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieUiState.kt
similarity index 100%
rename from samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieUiState.kt
rename to ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieUiState.kt
diff --git a/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieViewModel.kt b/ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieViewModel.kt
similarity index 100%
rename from samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieViewModel.kt
rename to ai-sample-catalog/samples/magic-selfie/src/main/java/com/android/ai/samples/magicselfie/ui/MagicSelfieViewModel.kt
diff --git a/samples/magic-selfie/src/main/res/values/strings.xml b/ai-sample-catalog/samples/magic-selfie/src/main/res/values/strings.xml
similarity index 100%
rename from samples/magic-selfie/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/magic-selfie/src/main/res/values/strings.xml
diff --git a/samples/nanobanana/.gitignore b/ai-sample-catalog/samples/nanobanana/.gitignore
similarity index 100%
rename from samples/nanobanana/.gitignore
rename to ai-sample-catalog/samples/nanobanana/.gitignore
diff --git a/samples/nanobanana/README.md b/ai-sample-catalog/samples/nanobanana/README.md
similarity index 100%
rename from samples/nanobanana/README.md
rename to ai-sample-catalog/samples/nanobanana/README.md
diff --git a/samples/nanobanana/build.gradle.kts b/ai-sample-catalog/samples/nanobanana/build.gradle.kts
similarity index 100%
rename from samples/nanobanana/build.gradle.kts
rename to ai-sample-catalog/samples/nanobanana/build.gradle.kts
diff --git a/samples/nanobanana/consumer-rules.pro b/ai-sample-catalog/samples/nanobanana/consumer-rules.pro
similarity index 100%
rename from samples/nanobanana/consumer-rules.pro
rename to ai-sample-catalog/samples/nanobanana/consumer-rules.pro
diff --git a/samples/nanobanana/proguard-rules.pro b/ai-sample-catalog/samples/nanobanana/proguard-rules.pro
similarity index 100%
rename from samples/nanobanana/proguard-rules.pro
rename to ai-sample-catalog/samples/nanobanana/proguard-rules.pro
diff --git a/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt b/ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt
similarity index 99%
rename from samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt
rename to ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt
index 1408c6d3..5a0fda69 100644
--- a/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt
+++ b/ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/data/NanobananaDataSource.kt
@@ -32,7 +32,7 @@ class NanobananaDataSource @Inject constructor() {
modelName = "gemini-3.1-flash-image-preview",
generationConfig = generationConfig {
responseModalities = listOf(ResponseModality.IMAGE)
- }
+ },
)
}
diff --git a/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaScreen.kt b/ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaScreen.kt
similarity index 100%
rename from samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaScreen.kt
rename to ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaScreen.kt
diff --git a/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaUIState.kt b/ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaUIState.kt
similarity index 100%
rename from samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaUIState.kt
rename to ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaUIState.kt
diff --git a/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaViewModel.kt b/ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaViewModel.kt
similarity index 100%
rename from samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaViewModel.kt
rename to ai-sample-catalog/samples/nanobanana/src/main/java/com/android/ai/samples/nanobanana/ui/NanobananaViewModel.kt
diff --git a/samples/nanobanana/src/main/res/values/strings.xml b/ai-sample-catalog/samples/nanobanana/src/main/res/values/strings.xml
similarity index 100%
rename from samples/nanobanana/src/main/res/values/strings.xml
rename to ai-sample-catalog/samples/nanobanana/src/main/res/values/strings.xml
diff --git a/settings.gradle.kts b/ai-sample-catalog/settings.gradle.kts
similarity index 100%
rename from settings.gradle.kts
rename to ai-sample-catalog/settings.gradle.kts
diff --git a/spotless/copyright.kt b/ai-sample-catalog/spotless/copyright.kt
similarity index 100%
rename from spotless/copyright.kt
rename to ai-sample-catalog/spotless/copyright.kt
diff --git a/ui-component/.gitignore b/ai-sample-catalog/ui-component/.gitignore
similarity index 100%
rename from ui-component/.gitignore
rename to ai-sample-catalog/ui-component/.gitignore
diff --git a/ui-component/build.gradle.kts b/ai-sample-catalog/ui-component/build.gradle.kts
similarity index 100%
rename from ui-component/build.gradle.kts
rename to ai-sample-catalog/ui-component/build.gradle.kts
diff --git a/ui-component/src/main/java/com/android/ai/theme/Color.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Color.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/theme/Color.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Color.kt
diff --git a/ui-component/src/main/java/com/android/ai/theme/Theme.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Theme.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/theme/Theme.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Theme.kt
diff --git a/ui-component/src/main/java/com/android/ai/theme/Type.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Type.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/theme/Type.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/theme/Type.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/Buttons.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Buttons.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/Buttons.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Buttons.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/ImageInput.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/ImageInput.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/ImageInput.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/ImageInput.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/MarkdownText.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/MarkdownText.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/MarkdownText.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/MarkdownText.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/Message.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Message.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/Message.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Message.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/SampleDetailTopAppBar.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SampleDetailTopAppBar.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/SampleDetailTopAppBar.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SampleDetailTopAppBar.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/SeeCodeButton.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SeeCodeButton.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/SeeCodeButton.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SeeCodeButton.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/SelectionDropdown.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SelectionDropdown.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/SelectionDropdown.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/SelectionDropdown.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/Tag.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Tag.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/Tag.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/Tag.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/TextInput.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/TextInput.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/TextInput.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/TextInput.kt
diff --git a/ui-component/src/main/java/com/android/ai/uicomponent/VideoPlayer.kt b/ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/VideoPlayer.kt
similarity index 100%
rename from ui-component/src/main/java/com/android/ai/uicomponent/VideoPlayer.kt
rename to ai-sample-catalog/ui-component/src/main/java/com/android/ai/uicomponent/VideoPlayer.kt
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_add.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_add.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_add.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_add.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_add_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_add_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_add_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_add_text.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_bg.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_chapters.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_chapters.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_chapters.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_chapters.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_edit.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_edit.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_edit.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_edit.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_hashtags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_hashtags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_hashtags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_hashtags.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_img.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_img.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_img.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_img.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_mic.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_mic.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_mic.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_mic.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_send.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_send.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_send.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_send.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_summary.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_summary.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_summary.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_summary.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_tags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_tags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_tags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_tags.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_ai_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_ai_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_ai_text.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_code.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_code.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_code.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_code.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_delete.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_delete.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_delete.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_delete.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_dev_guide.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_dev_guide.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_dev_guide.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_dev_guide.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_redo.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_redo.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_redo.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_redo.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_video_forward_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_forward_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_video_forward_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_forward_10.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_video_pause.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_pause.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_video_pause.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_pause.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_video_play.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_play.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_video_play.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_play.png
diff --git a/ui-component/src/main/res/drawable-hdpi/ic_video_rewind_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_rewind_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/ic_video_rewind_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/ic_video_rewind_10.png
diff --git a/ui-component/src/main/res/drawable-hdpi/img_bg_general.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/img_bg_general.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/img_bg_general.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/img_bg_general.png
diff --git a/ui-component/src/main/res/drawable-hdpi/img_fill.png b/ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/img_fill.png
similarity index 100%
rename from ui-component/src/main/res/drawable-hdpi/img_fill.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-hdpi/img_fill.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_add.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_add.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_add.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_add.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_add_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_add_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_add_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_add_text.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_bg.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_chapters.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_chapters.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_chapters.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_chapters.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_edit.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_edit.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_edit.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_edit.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_hashtags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_hashtags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_hashtags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_hashtags.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_img.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_img.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_img.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_img.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_mic.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_mic.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_mic.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_mic.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_send.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_send.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_send.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_send.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_summary.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_summary.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_summary.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_summary.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_tags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_tags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_tags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_tags.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_ai_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_ai_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_ai_text.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_code.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_code.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_code.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_code.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_delete.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_delete.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_delete.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_delete.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_dev_guide.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_dev_guide.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_dev_guide.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_dev_guide.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_redo.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_redo.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_redo.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_redo.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_video_forward_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_forward_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_video_forward_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_forward_10.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_video_pause.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_pause.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_video_pause.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_pause.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_video_play.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_play.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_video_play.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_play.png
diff --git a/ui-component/src/main/res/drawable-mdpi/ic_video_rewind_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_rewind_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/ic_video_rewind_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/ic_video_rewind_10.png
diff --git a/ui-component/src/main/res/drawable-mdpi/img_bg_general.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/img_bg_general.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/img_bg_general.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/img_bg_general.png
diff --git a/ui-component/src/main/res/drawable-mdpi/img_fill.png b/ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/img_fill.png
similarity index 100%
rename from ui-component/src/main/res/drawable-mdpi/img_fill.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-mdpi/img_fill.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_add.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_add.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_add.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_add.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_add_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_add_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_add_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_add_text.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_bg.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_chapters.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_chapters.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_chapters.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_chapters.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_edit.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_edit.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_edit.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_edit.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_hashtags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_hashtags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_hashtags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_hashtags.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_img.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_img.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_img.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_img.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_mic.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_mic.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_mic.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_mic.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_send.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_send.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_send.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_send.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_summary.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_summary.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_summary.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_summary.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_tags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_tags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_tags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_tags.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_ai_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_ai_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_ai_text.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_code.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_code.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_code.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_code.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_delete.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_delete.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_delete.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_delete.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_dev_guide.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_dev_guide.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_dev_guide.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_dev_guide.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_redo.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_redo.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_redo.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_redo.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_video_forward_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_forward_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_video_forward_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_forward_10.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_video_pause.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_pause.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_video_pause.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_pause.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_video_play.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_play.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_video_play.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_play.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/ic_video_rewind_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_rewind_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/ic_video_rewind_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/ic_video_rewind_10.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/img_bg_general.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/img_bg_general.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/img_bg_general.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/img_bg_general.png
diff --git a/ui-component/src/main/res/drawable-xhdpi/img_fill.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/img_fill.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xhdpi/img_fill.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xhdpi/img_fill.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_add.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_add.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_add.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_add.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_add_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_add_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_add_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_add_text.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_bg.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_chapters.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_chapters.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_chapters.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_chapters.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_edit.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_edit.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_edit.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_edit.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_hashtags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_hashtags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_hashtags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_hashtags.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_img.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_img.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_img.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_img.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_mic.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_mic.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_mic.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_mic.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_send.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_send.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_send.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_send.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_summary.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_summary.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_summary.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_summary.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_tags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_tags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_tags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_tags.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_ai_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_ai_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_ai_text.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_code.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_code.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_code.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_code.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_delete.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_delete.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_delete.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_delete.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_dev_guide.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_dev_guide.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_dev_guide.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_dev_guide.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_redo.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_redo.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_redo.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_redo.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_video_forward_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_forward_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_video_forward_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_forward_10.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_video_pause.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_pause.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_video_pause.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_pause.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_video_play.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_play.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_video_play.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_play.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/ic_video_rewind_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_rewind_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/ic_video_rewind_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/ic_video_rewind_10.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/img_bg_general.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/img_bg_general.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/img_bg_general.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/img_bg_general.png
diff --git a/ui-component/src/main/res/drawable-xxhdpi/img_fill.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/img_fill.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxhdpi/img_fill.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxhdpi/img_fill.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_add.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_add.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_add.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_add.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_add_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_add_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_add_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_add_text.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_bg.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_chapters.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_chapters.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_chapters.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_chapters.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_edit.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_edit.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_edit.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_edit.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_hashtags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_hashtags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_hashtags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_hashtags.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_img.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_img.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_img.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_img.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_mic.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_mic.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_mic.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_mic.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_send.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_send.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_send.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_send.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_summary.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_summary.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_summary.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_summary.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_tags.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_tags.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_tags.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_tags.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_text.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_text.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_ai_text.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_ai_text.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_code.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_code.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_code.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_code.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_delete.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_delete.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_delete.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_delete.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_dev_guide.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_dev_guide.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_dev_guide.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_dev_guide.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_redo.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_redo.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_redo.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_redo.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_video_forward_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_forward_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_video_forward_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_forward_10.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_video_pause.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_pause.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_video_pause.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_pause.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_video_play.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_play.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_video_play.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_play.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/ic_video_rewind_10.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_rewind_10.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/ic_video_rewind_10.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/ic_video_rewind_10.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/img_bg_general.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/img_bg_general.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/img_bg_general.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/img_bg_general.png
diff --git a/ui-component/src/main/res/drawable-xxxhdpi/img_fill.png b/ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/img_fill.png
similarity index 100%
rename from ui-component/src/main/res/drawable-xxxhdpi/img_fill.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable-xxxhdpi/img_fill.png
diff --git a/ui-component/src/main/res/drawable/bg.png b/ai-sample-catalog/ui-component/src/main/res/drawable/bg.png
similarity index 100%
rename from ui-component/src/main/res/drawable/bg.png
rename to ai-sample-catalog/ui-component/src/main/res/drawable/bg.png
diff --git a/ui-component/src/main/res/drawable/ic_spark.xml b/ai-sample-catalog/ui-component/src/main/res/drawable/ic_spark.xml
similarity index 100%
rename from ui-component/src/main/res/drawable/ic_spark.xml
rename to ai-sample-catalog/ui-component/src/main/res/drawable/ic_spark.xml
diff --git a/ui-component/src/main/res/values-v23/font_certs.xml b/ai-sample-catalog/ui-component/src/main/res/values-v23/font_certs.xml
similarity index 100%
rename from ui-component/src/main/res/values-v23/font_certs.xml
rename to ai-sample-catalog/ui-component/src/main/res/values-v23/font_certs.xml
diff --git a/ui-component/src/main/res/values/strings.xml b/ai-sample-catalog/ui-component/src/main/res/values/strings.xml
similarity index 100%
rename from ui-component/src/main/res/values/strings.xml
rename to ai-sample-catalog/ui-component/src/main/res/values/strings.xml