diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml
index 0e25603f7719d..1199f4db4f7d9 100644
--- a/mobile/android/android-components/.buildconfig.yml
+++ b/mobile/android/android-components/.buildconfig.yml
@@ -417,6 +417,10 @@ projects:
- components:ui-icons
- components:ui-tabcounter
- components:ui-widgets
+ components:concept-accelerometer:
+ description: An abstract definition of an accelerometer.
+ path: components/concept/accelerometer
+ publish: true
components:concept-awesomebar:
description: An abstract definition of an awesomebar component.
path: components/concept/awesomebar
@@ -461,6 +465,10 @@ projects:
- components:support-base
- components:support-test
- components:tooling-lint
+ components:concept-llm:
+ description: An abstract definition of an LLM request.
+ path: components/concept/llm
+ publish: true
components:concept-menu:
description: An abstract definition of a browser menu component.
path: components/concept/menu
@@ -1373,6 +1381,10 @@ projects:
- components:ui-icons
- components:ui-tabcounter
- components:ui-widgets
+ components:feature-summarize:
+ description: A feature that handles displaying summarized browser content
+ path: components/feature/summarize
+ publish: true
components:feature-syncedtabs:
description: Feature that provides access to other devices' tabs in the same account.
path: components/feature/syncedtabs
@@ -1628,6 +1640,11 @@ projects:
- components:ui-icons
- components:ui-tabcounter
- components:ui-widgets
+ components:lib-accelerometer-sensormanager:
+ description: An implementation of the accelerometer concept that uses the Android
+ SensorManager
+ path: components/lib/accelerometer-sensormanager
+ publish: true
components:lib-auth:
description: A component for various kinds of authentication mechanisms.
path: components/lib/auth
@@ -1702,6 +1719,15 @@ projects:
publish: true
upstream_dependencies:
- components:tooling-lint
+ components:lib-llm-gemini-nano:
+ description: A Gemini Nano implementation of the LLM concept.
+ path: components/lib/llm-gemini-nano
+ publish: true
+ components:lib-llm-mlpa:
+ description: A off-device implementation of the LLM concept that uses the MLPA
+ proxy server
+ path: components/lib/llm-mlpa
+ publish: true
components:lib-publicsuffixlist:
description: A library for reading and using the public suffix list.
path: components/lib/publicsuffixlist
@@ -1723,6 +1749,10 @@ projects:
- components:support-base
- components:support-test
- components:tooling-lint
+ components:lib-shake:
+ description: A library to detect shake gestures from accelerometer data
+ path: components/lib/shake
+ publish: true
components:lib-state:
description: A library for maintaining application state.
path: components/lib/state
diff --git a/mobile/android/android-components/components/concept/accelerometer/README.md b/mobile/android/android-components/components/concept/accelerometer/README.md
new file mode 100644
index 0000000000000..a2b9517ffc443
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Concept > Accelerometer
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/concept/accelerometer/build.gradle b/mobile/android/android-components/components/concept/accelerometer/build.gradle
new file mode 100644
index 0000000000000..f810518649933
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.concept.accelerometer'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/concept/accelerometer/lint-baseline.xml b/mobile/android/android-components/components/concept/accelerometer/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/concept/accelerometer/proguard-rules.pro b/mobile/android/android-components/components/concept/accelerometer/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/concept/accelerometer/src/main/AndroidManifest.xml b/mobile/android/android-components/components/concept/accelerometer/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/concept/accelerometer/src/main/java/mozilla/components/concept/accelerometer/Example.kt b/mobile/android/android-components/components/concept/accelerometer/src/main/java/mozilla/components/concept/accelerometer/Example.kt
new file mode 100644
index 0000000000000..8ce9068f30a7e
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/src/main/java/mozilla/components/concept/accelerometer/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.concept.accelerometer
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/concept/accelerometer/src/test/java/mozilla/components/concept/accelerometer/ExampleTest.kt b/mobile/android/android-components/components/concept/accelerometer/src/test/java/mozilla/components/concept/accelerometer/ExampleTest.kt
new file mode 100644
index 0000000000000..1973a779cd3fb
--- /dev/null
+++ b/mobile/android/android-components/components/concept/accelerometer/src/test/java/mozilla/components/concept/accelerometer/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.concept.accelerometer
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/concept/llm/README.md b/mobile/android/android-components/components/concept/llm/README.md
new file mode 100644
index 0000000000000..c6c34ea1a050a
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Concept > LLM
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/concept/llm/build.gradle b/mobile/android/android-components/components/concept/llm/build.gradle
new file mode 100644
index 0000000000000..757dd378b6da4
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.concept.llm'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/concept/llm/lint-baseline.xml b/mobile/android/android-components/components/concept/llm/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/concept/llm/proguard-rules.pro b/mobile/android/android-components/components/concept/llm/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/concept/llm/src/main/AndroidManifest.xml b/mobile/android/android-components/components/concept/llm/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/concept/llm/src/main/java/mozilla/components/concept/llm/Example.kt b/mobile/android/android-components/components/concept/llm/src/main/java/mozilla/components/concept/llm/Example.kt
new file mode 100644
index 0000000000000..946a72987dbce
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/src/main/java/mozilla/components/concept/llm/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.concept.llm
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/concept/llm/src/test/java/mozilla/components/concept/llm/ExampleTest.kt b/mobile/android/android-components/components/concept/llm/src/test/java/mozilla/components/concept/llm/ExampleTest.kt
new file mode 100644
index 0000000000000..07fe378ec99c4
--- /dev/null
+++ b/mobile/android/android-components/components/concept/llm/src/test/java/mozilla/components/concept/llm/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.concept.llm
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/feature/summarize/README.md b/mobile/android/android-components/components/feature/summarize/README.md
new file mode 100644
index 0000000000000..c3fb625baf0ac
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Feature > SUMMARIZE
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/feature/summarize/build.gradle b/mobile/android/android-components/components/feature/summarize/build.gradle
new file mode 100644
index 0000000000000..76446964bba0c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.feature.summarize'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/feature/summarize/lint-baseline.xml b/mobile/android/android-components/components/feature/summarize/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/feature/summarize/proguard-rules.pro b/mobile/android/android-components/components/feature/summarize/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/feature/summarize/src/main/AndroidManifest.xml b/mobile/android/android-components/components/feature/summarize/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/Example.kt b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/Example.kt
new file mode 100644
index 0000000000000..5b27d22175818
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.feature.summarize
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/feature/summarize/src/test/java/mozilla/components/feature/summarize/ExampleTest.kt b/mobile/android/android-components/components/feature/summarize/src/test/java/mozilla/components/feature/summarize/ExampleTest.kt
new file mode 100644
index 0000000000000..38c8c494c749a
--- /dev/null
+++ b/mobile/android/android-components/components/feature/summarize/src/test/java/mozilla/components/feature/summarize/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.feature.summarize
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/README.md b/mobile/android/android-components/components/lib/accelerometer-sensormanager/README.md
new file mode 100644
index 0000000000000..5c61ae0087075
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Lib > ACCELEROMETER-SENSORMANAGER
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/build.gradle b/mobile/android/android-components/components/lib/accelerometer-sensormanager/build.gradle
new file mode 100644
index 0000000000000..f30b5bc381dae
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.lib.accelerometer.sensormanager'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/lint-baseline.xml b/mobile/android/android-components/components/lib/accelerometer-sensormanager/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/proguard-rules.pro b/mobile/android/android-components/components/lib/accelerometer-sensormanager/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/AndroidManifest.xml b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/java/mozilla/components/lib/accelerometer/sensormanager/Example.kt b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/java/mozilla/components/lib/accelerometer/sensormanager/Example.kt
new file mode 100644
index 0000000000000..26aac63d2c599
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/main/java/mozilla/components/lib/accelerometer/sensormanager/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.lib.accelerometer.sensormanager
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/test/java/mozilla/components/lib/accelerometer/sensormanager/ExampleTest.kt b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/test/java/mozilla/components/lib/accelerometer/sensormanager/ExampleTest.kt
new file mode 100644
index 0000000000000..f9323258b6f6d
--- /dev/null
+++ b/mobile/android/android-components/components/lib/accelerometer-sensormanager/src/test/java/mozilla/components/lib/accelerometer/sensormanager/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.lib.accelerometer.sensormanager
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/README.md b/mobile/android/android-components/components/lib/llm-gemini-nano/README.md
new file mode 100644
index 0000000000000..a7219f44b990e
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Lib > LLM-GEMINI-NANO
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/build.gradle b/mobile/android/android-components/components/lib/llm-gemini-nano/build.gradle
new file mode 100644
index 0000000000000..0115596122892
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.lib.llm.gemini.nano'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/lint-baseline.xml b/mobile/android/android-components/components/lib/llm-gemini-nano/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/proguard-rules.pro b/mobile/android/android-components/components/lib/llm-gemini-nano/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/AndroidManifest.xml b/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/java/mozilla/components/lib/llm/gemini/nano/Example.kt b/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/java/mozilla/components/lib/llm/gemini/nano/Example.kt
new file mode 100644
index 0000000000000..688a9bd533c45
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/src/main/java/mozilla/components/lib/llm/gemini/nano/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.lib.llm.gemini.nano
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/lib/llm-gemini-nano/src/test/java/mozilla/components/lib/llm/gemini/nano/ExampleTest.kt b/mobile/android/android-components/components/lib/llm-gemini-nano/src/test/java/mozilla/components/lib/llm/gemini/nano/ExampleTest.kt
new file mode 100644
index 0000000000000..5c7fdbac4a89a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-gemini-nano/src/test/java/mozilla/components/lib/llm/gemini/nano/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.lib.llm.gemini.nano
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/README.md b/mobile/android/android-components/components/lib/llm-mlpa/README.md
new file mode 100644
index 0000000000000..4e991a1cc30cf
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Lib > LLM-MLPA
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/build.gradle b/mobile/android/android-components/components/lib/llm-mlpa/build.gradle
new file mode 100644
index 0000000000000..ab3f13f29ed57
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.lib.llm.mlpa'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/lint-baseline.xml b/mobile/android/android-components/components/lib/llm-mlpa/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/proguard-rules.pro b/mobile/android/android-components/components/lib/llm-mlpa/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/src/main/AndroidManifest.xml b/mobile/android/android-components/components/lib/llm-mlpa/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/src/main/java/mozilla/components/lib/llm/mlpa/Example.kt b/mobile/android/android-components/components/lib/llm-mlpa/src/main/java/mozilla/components/lib/llm/mlpa/Example.kt
new file mode 100644
index 0000000000000..ad5dc65d2da8f
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/src/main/java/mozilla/components/lib/llm/mlpa/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.lib.llm.mlpa
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/lib/llm-mlpa/src/test/java/mozilla/components/lib/llm/mlpa/ExampleTest.kt b/mobile/android/android-components/components/lib/llm-mlpa/src/test/java/mozilla/components/lib/llm/mlpa/ExampleTest.kt
new file mode 100644
index 0000000000000..5c271f69d3f19
--- /dev/null
+++ b/mobile/android/android-components/components/lib/llm-mlpa/src/test/java/mozilla/components/lib/llm/mlpa/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.lib.llm.mlpa
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}
diff --git a/mobile/android/android-components/components/lib/shake/README.md b/mobile/android/android-components/components/lib/shake/README.md
new file mode 100644
index 0000000000000..e2a7139cb003e
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/README.md
@@ -0,0 +1,9 @@
+# [Android Components](../../../README.md) > Lib > SHAKE
+
+
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/lib/shake/build.gradle b/mobile/android/android-components/components/lib/shake/build.gradle
new file mode 100644
index 0000000000000..f5e3acb707c7e
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/build.gradle
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+plugins {
+ alias(libs.plugins.dependency.analysis)
+}
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ buildConfigField("String", "LIBRARY_VERSION", "\"" + config.componentsVersion + "\"")
+ }
+
+ buildFeatures {
+ buildConfig = true
+ }
+
+ namespace = 'mozilla.components.lib.shake'
+}
+
+dependencies {
+ testImplementation libs.androidx.test.junit
+}
+
+apply from: '../../../common-config.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)
diff --git a/mobile/android/android-components/components/lib/shake/lint-baseline.xml b/mobile/android/android-components/components/lib/shake/lint-baseline.xml
new file mode 100644
index 0000000000000..19930a6dfaf5a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/lint-baseline.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mobile/android/android-components/components/lib/shake/proguard-rules.pro b/mobile/android/android-components/components/lib/shake/proguard-rules.pro
new file mode 100644
index 0000000000000..f1b424510da51
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/lib/shake/src/main/AndroidManifest.xml b/mobile/android/android-components/components/lib/shake/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000..e16cda1d34462
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/mobile/android/android-components/components/lib/shake/src/main/java/mozilla/components/lib/shake/Example.kt b/mobile/android/android-components/components/lib/shake/src/main/java/mozilla/components/lib/shake/Example.kt
new file mode 100644
index 0000000000000..03737f4ebaf82
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/src/main/java/mozilla/components/lib/shake/Example.kt
@@ -0,0 +1,7 @@
+package mozilla.components.lib.shake
+
+class Example {
+ fun hello(): String {
+ return "hello"
+ }
+}
diff --git a/mobile/android/android-components/components/lib/shake/src/test/java/mozilla/components/lib/shake/ExampleTest.kt b/mobile/android/android-components/components/lib/shake/src/test/java/mozilla/components/lib/shake/ExampleTest.kt
new file mode 100644
index 0000000000000..1bc91c60e9d4a
--- /dev/null
+++ b/mobile/android/android-components/components/lib/shake/src/test/java/mozilla/components/lib/shake/ExampleTest.kt
@@ -0,0 +1,11 @@
+package mozilla.components.lib.shake
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class ExampleTest {
+ @Test
+ fun testHello() {
+ assertEquals("hello", Example().hello())
+ }
+}