diff --git a/.github/workflows/android_build.yml b/.github/workflows/android_build.yml index fc246da..56dbde7 100644 --- a/.github/workflows/android_build.yml +++ b/.github/workflows/android_build.yml @@ -13,7 +13,7 @@ jobs: - name: Set Up JDK uses: actions/setup-java@v1 with: - java-version: '11' + java-version: '17' - name: Run Tests run: ./gradlew test diff --git a/.gitignore b/.gitignore index dd93dc8..4685890 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,11 @@ proguard-project.txt *.iml .idea -.DS_Store \ No newline at end of file +.DS_Store + +# FIXME: from GHP +/captures +.externalNativeBuild +.cxx +_versions.txt +_logs.txt diff --git a/app/.gitignore b/3p-ecosystem/.gitignore similarity index 100% rename from app/.gitignore rename to 3p-ecosystem/.gitignore diff --git a/3p-ecosystem/README.md b/3p-ecosystem/README.md new file mode 100644 index 0000000..a58dc7b --- /dev/null +++ b/3p-ecosystem/README.md @@ -0,0 +1,101 @@ +# Google Home Sample App for Matter -- 3p-ecosystem + +The **Google Home Sample App for Matter** (GHSAFM-3p-ecosystem) provides a concrete example of how to +use the [Home Mobile SDK](https://developers.home.google.com/matter/apis/home) to make it +easy to commission and share [Matter](https://developers.home.google.com/matter/overview) devices +across Apps and ecosystems. It also demonstrates how to use commissioning and Cluster libraries +from the +[Matter repo (`connectedhomeip`)](https://github.com/project-chip/connectedhomeip). + +This is a sample application that can be used as the starting point to build your +smart home application for Matter devices. + +It can also be used as a learning tool to better understand key Matter concepts, as well as a tool +to debug and troubleshoot interactions with Matter devices. + +## Clone the repository + +The Sample app GitHub repository includes third party libraries from the +[Matter repo (`connectedhomeip`)](https://github.com/project-chip/connectedhomeip). +These native libraries are over 50MB, and require the use of Git Large File +Storage (LFS). + +To clone the repository, complete the following steps: + +1. Install [Git LFS](https://git-lfs.github.com/). + +2. Initialize Git LFS. + + ```console + $ git lfs install + ``` + + When complete, the console displays the following: + + ```console + Updated Git hooks. + Git LFS initialized. + ``` + +3. Once Git LFS is installed and initialized, you're ready to clone the + repository. When cloning completes, Git checks out the `main` branch + and downloads the native libraries for you. + + ```console + $ git clone https://github.com/google-home/sample-apps-for-matter-android.git + ``` + +## Version + +Google Home Sample App for Matter follows the [Semantic](http://semver.org/) +and [Android](https://developer.android.com/studio/publish/versioning) versioning guidelines for +release cycle transparency and to maintain backwards compatibility. + +## Releases + +Always use the latest release as shown at +https://github.com/google-home/sample-apps-for-matter-android/releases + +## Get started + +* Check the presentation "Building Smart Home Apps with the Google Home Mobile SDK" + (docs/GoogleHomeMobileSDK.pdf) for an overview of the Sample App and key APIs + of the Mobile SDK. +* To make sure that your device has the latest Matter support, review the + [Verify Matter Modules & Services](https://developers.home.google.com/matter/verify-services) + guide. +* Build a Matter device with On/Off capabilities. This sample app works with a virtual device + and an ESP32. + * [Build a Matter Virtual Device](https://developers.home.google.com/codelabs/matter-device-virtual) + with the `rootnode_dimmablelight_bCwGYSDpoe` app. When you + [Create a Matter integration](https://developers.home.google.com/matter/integration/create) + in the [Home Developer Console](https://console.home.google.com/projects), + use `0xFFF1` as your Vendor ID and `0x8000` as your Product ID. + * [Build an Espressif Device](https://developers.home.google.com/matter/vendors/espressif) + with the `all-clusters-app`. When you + [Create a Matter integration](https://developers.home.google.com/matter/integration/create) + in the [Home Developer Console](https://console.home.google.com/projects), + use `0xFFF1` as your Vendor ID and `0x8001` as your Product ID. +* For an overview of the user interface and features, refer to + the [Google Home Sample App for Matter Guide](https://developers.home.google.com/samples/matter-app). +* To review code samples and start building, refer to + the [Build an Android App for Matter](https://developers.home.google.com/codelabs/matter-sample-app) + Codelab. + +## Issues? + +If you run into problems with the sample app, please submit an issue on the +[Issues page](https://github.com/google-home/sample-apps-for-matter-android/issues). + +It is always greatly appreciated if you can try to reproduce the issue you encountered +from a clean state as described in document +["How to investigate issues with GHSAFM‐3p‐ecosystem"](https://github.com/google-home/sample-apps-for-matter-android/wiki/How-to-investigate-issues-with-GHSAFM%E2%80%903p%E2%80%90ecosystem). + +## License + +Google Home Sample App for Matter is licensed under +the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Only use the Google Home Sample App for Matter name and marks when accurately referencing this +software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise +affiliated with Nest, Google, or the Connectivity Standards Alliance (CSA). diff --git a/3p-ecosystem/build.gradle.kts b/3p-ecosystem/build.gradle.kts new file mode 100644 index 0000000..f0e2f81 --- /dev/null +++ b/3p-ecosystem/build.gradle.kts @@ -0,0 +1,166 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("com.google.protobuf") version "0.9.1" + id("org.jetbrains.kotlin.kapt") + id("dagger.hilt.android.plugin") + id("androidx.navigation.safeargs") + id("com.google.dagger.hilt.android") + id("com.ncorti.ktfmt.gradle") version "0.12.0" +} + +android { + namespace = "com.google.homesampleapp" + compileSdk = 33 + + defaultConfig { + // DeviceSharingClone: Change this value for the target commissioner cloned app + applicationId = "com.google.homesampleapp" + minSdk = 27 + targetSdk = 33 + versionCode = 15 + versionName = "1.4.1" + testInstrumentationRunner = "com.google.homesampleapp.CustomTestRunner" + } + + buildTypes { + getByName("release") { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro") + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + kotlinOptions { + jvmTarget = "17" + } + buildFeatures { + dataBinding = true + } + sourceSets { + getByName("main") { + jniLibs.srcDirs(listOf("third_party/connectedhomeip/libs/jniLibs")) + } + } + android.buildFeatures.viewBinding = true + + // Specifies one flavor dimension. + flavorDimensions += "version" + productFlavors { + create("default") { + dimension = "version" + applicationIdSuffix = ".default" + versionNameSuffix = "-default" + } + create("targetcommissioner") { + dimension = "version" + applicationIdSuffix = ".targetcommissioner" + versionNameSuffix = "-targetcommissioner" + } + } + // Gradle will use the NDK that"s associated by default with its plugin. + // If it"s not available (from the SDK Manager), then stripping the .so"s will not happen + // (message: Unable to strip library...) + // See https://github.com/google-home/sample-app-for-matter-android/issues/82. + // https://developer.android.com/studio/projects/install-ndk + // If you want to use a specific NDK, then uncomment the statement below with the proper + // NDK version. + // ndkVersion = "25.2.9519653" +} + +dependencies { + // Native libs + implementation(fileTree(mapOf("dir" to "third_party/connectedhomeip/libs", "include" to listOf("*.jar", "*.so")))) + + // Connected Home + implementation("com.google.android.gms:play-services-base:18.2.0") + implementation("com.google.android.gms:play-services-home:16.0.0") + + // AndroidX + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("androidx.constraintlayout:constraintlayout:2.1.4") + implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.databinding:databinding-runtime:8.0.2") + implementation("androidx.legacy:legacy-support-v4:1.0.0") + implementation("androidx.preference:preference:1.2.0") + + // Navigation + implementation("androidx.navigation:navigation-fragment-ktx:2.6.0") + implementation("androidx.navigation:navigation-ui-ktx:2.6.0") + + // Lifecycle + implementation("androidx.lifecycle:lifecycle-extensions:2.2.0") + implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") + implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1") + + // Datastore + implementation("androidx.datastore:datastore:1.0.0") + implementation("androidx.datastore:datastore-core:1.0.0") + implementation("com.google.protobuf:protobuf-javalite:3.18.0") + + // Hilt + // https://dagger.dev/hilt/gradle-setup + implementation("com.google.dagger:hilt-android:2.46.1") + kapt("com.google.dagger:hilt-compiler:2.46.1") + implementation("com.google.ar:core:1.38.0") + + + // Hilt For instrumentation tests + androidTestImplementation("com.google.dagger:hilt-android-testing:2.44.2") + kaptAndroidTest("com.google.dagger:hilt-compiler:2.46.1") + + // Task.await() + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4") + + // Other + implementation("com.google.android.material:material:1.9.0") + implementation("com.jakewharton.timber:timber:5.0.1") + + // Test + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + androidTestImplementation("androidx.test.espresso:espresso-intents:3.5.1") + androidTestImplementation("androidx.test.espresso:espresso-contrib:3.5.1") + androidTestImplementation("androidx.test:runner:1.5.2") + androidTestImplementation("androidx.test:rules:1.5.0") + androidTestImplementation("androidx.test.uiautomator:uiautomator:2.2.0") +} + +// Issue with androidx.test.espresso:espresso-contrib:3.5.1 +// https://github.com/android/android-test/issues/999 +configurations.configureEach { + exclude(group = "com.google.protobuf", module = "protobuf-lite") +} + +kapt { + correctErrorTypes = true +} + +protobuf { + protoc { + // For Apple M1 Chip + val isMac = System.getProperty("os.name").toLowerCase().contains("mac") + val protocDepSuffix = if (isMac) ":osx-x86_64" else "" + artifact = "com.google.protobuf:protoc:3.14.0" + protocDepSuffix + } + + // Generates the java Protobuf-lite code for the Protobufs in this project. See + // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation + // for more information. + generateProtoTasks { + all().forEach { task -> + task.builtins { + create("java") { + option("lite") + } + } + } + } +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/3p-ecosystem/proguard-rules.pro similarity index 94% rename from app/proguard-rules.pro rename to 3p-ecosystem/proguard-rules.pro index 481bb43..ff59496 100644 --- a/app/proguard-rules.pro +++ b/3p-ecosystem/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. +# proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html diff --git a/app/src/androidTest/java/com/google/homesampleapp/CommissionDeviceAndToggleOnOffTest.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/CommissionDeviceAndToggleOnOffTest.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/CommissionDeviceAndToggleOnOffTest.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/CommissionDeviceAndToggleOnOffTest.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/CustomTestRunner.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/CustomTestRunner.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/CustomTestRunner.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/CustomTestRunner.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/TestUtils.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/TestUtils.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/TestUtils.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/TestUtils.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/CommissionableFragmentTest.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/CommissionableFragmentTest.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/CommissionableFragmentTest.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/CommissionableFragmentTest.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/MatterBeaconProducerBleFake.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/MatterBeaconProducerBleFake.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/MatterBeaconProducerBleFake.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/MatterBeaconProducerBleFake.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/ModuleBleTest.kt_donotcompile b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/ModuleBleTest.kt_donotcompile similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/ModuleBleTest.kt_donotcompile rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/ble/ModuleBleTest.kt_donotcompile diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/MatterBeaconProducerMdnsFake.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/MatterBeaconProducerMdnsFake.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/MatterBeaconProducerMdnsFake.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/MatterBeaconProducerMdnsFake.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/ModuleMdnsTest.kt_donotcompile b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/ModuleMdnsTest.kt_donotcompile similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/ModuleMdnsTest.kt_donotcompile rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/mdns/ModuleMdnsTest.kt_donotcompile diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/MatterBeaconProducerWifiFake.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/MatterBeaconProducerWifiFake.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/MatterBeaconProducerWifiFake.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/MatterBeaconProducerWifiFake.kt diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/ModuleWifiTest.kt_donotcompile b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/ModuleWifiTest.kt_donotcompile similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/ModuleWifiTest.kt_donotcompile rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/commissionable/wifi/ModuleWifiTest.kt_donotcompile diff --git a/app/src/androidTest/java/com/google/homesampleapp/screens/home/HomeFragmentRecyclerViewTest.kt b/3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/home/HomeFragmentRecyclerViewTest.kt similarity index 100% rename from app/src/androidTest/java/com/google/homesampleapp/screens/home/HomeFragmentRecyclerViewTest.kt rename to 3p-ecosystem/src/androidTest/java/com/google/homesampleapp/screens/home/HomeFragmentRecyclerViewTest.kt diff --git a/app/src/main/AndroidManifest.xml b/3p-ecosystem/src/main/AndroidManifest.xml similarity index 95% rename from app/src/main/AndroidManifest.xml rename to 3p-ecosystem/src/main/AndroidManifest.xml index af12272..901affc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/3p-ecosystem/src/main/AndroidManifest.xml @@ -16,8 +16,7 @@ --> + xmlns:tools="http://schemas.android.com/tools"> @@ -44,7 +43,7 @@ - GHSAFM + GHSAFM-3p-ecosystem unspecified diff --git a/app/src/main/res/values/themes.xml b/3p-ecosystem/src/main/res/values/themes.xml similarity index 100% rename from app/src/main/res/values/themes.xml rename to 3p-ecosystem/src/main/res/values/themes.xml diff --git a/app/src/main/res/xml/settings_developer_utiltities_screen.xml b/3p-ecosystem/src/main/res/xml/settings_developer_utiltities_screen.xml similarity index 100% rename from app/src/main/res/xml/settings_developer_utiltities_screen.xml rename to 3p-ecosystem/src/main/res/xml/settings_developer_utiltities_screen.xml diff --git a/app/src/main/res/xml/settings_preferences_screen.xml b/3p-ecosystem/src/main/res/xml/settings_preferences_screen.xml similarity index 100% rename from app/src/main/res/xml/settings_preferences_screen.xml rename to 3p-ecosystem/src/main/res/xml/settings_preferences_screen.xml diff --git a/app/src/targetcommissioner/ic_launcher-playstore.png b/3p-ecosystem/src/targetcommissioner/ic_launcher-playstore.png similarity index 100% rename from app/src/targetcommissioner/ic_launcher-playstore.png rename to 3p-ecosystem/src/targetcommissioner/ic_launcher-playstore.png diff --git a/app/src/targetcommissioner/res/drawable/ic_launcher_foreground.xml b/3p-ecosystem/src/targetcommissioner/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from app/src/targetcommissioner/res/drawable/ic_launcher_foreground.xml rename to 3p-ecosystem/src/targetcommissioner/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher.xml b/3p-ecosystem/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher.xml rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher_round.xml b/3p-ecosystem/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from app/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/app/src/targetcommissioner/res/mipmap-hdpi/ic_launcher_foreground.png b/3p-ecosystem/src/targetcommissioner/res/mipmap-hdpi/ic_launcher_foreground.png similarity index 100% rename from app/src/targetcommissioner/res/mipmap-hdpi/ic_launcher_foreground.png rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-hdpi/ic_launcher_foreground.png diff --git a/app/src/targetcommissioner/res/mipmap-mdpi/ic_launcher_foreground.png b/3p-ecosystem/src/targetcommissioner/res/mipmap-mdpi/ic_launcher_foreground.png similarity index 100% rename from app/src/targetcommissioner/res/mipmap-mdpi/ic_launcher_foreground.png rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-mdpi/ic_launcher_foreground.png diff --git a/app/src/targetcommissioner/res/mipmap-xhdpi/ic_launcher_foreground.png b/3p-ecosystem/src/targetcommissioner/res/mipmap-xhdpi/ic_launcher_foreground.png similarity index 100% rename from app/src/targetcommissioner/res/mipmap-xhdpi/ic_launcher_foreground.png rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/app/src/targetcommissioner/res/mipmap-xxhdpi/ic_launcher_foreground.png b/3p-ecosystem/src/targetcommissioner/res/mipmap-xxhdpi/ic_launcher_foreground.png similarity index 100% rename from app/src/targetcommissioner/res/mipmap-xxhdpi/ic_launcher_foreground.png rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/app/src/targetcommissioner/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/3p-ecosystem/src/targetcommissioner/res/mipmap-xxxhdpi/ic_launcher_foreground.png similarity index 100% rename from app/src/targetcommissioner/res/mipmap-xxxhdpi/ic_launcher_foreground.png rename to 3p-ecosystem/src/targetcommissioner/res/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/app/src/targetcommissioner/res/values/colors.xml b/3p-ecosystem/src/targetcommissioner/res/values/colors.xml similarity index 100% rename from app/src/targetcommissioner/res/values/colors.xml rename to 3p-ecosystem/src/targetcommissioner/res/values/colors.xml diff --git a/app/src/targetcommissioner/res/values/ic_launcher_background.xml b/3p-ecosystem/src/targetcommissioner/res/values/ic_launcher_background.xml similarity index 100% rename from app/src/targetcommissioner/res/values/ic_launcher_background.xml rename to 3p-ecosystem/src/targetcommissioner/res/values/ic_launcher_background.xml diff --git a/app/src/targetcommissioner/res/values/strings.xml b/3p-ecosystem/src/targetcommissioner/res/values/strings.xml similarity index 90% rename from app/src/targetcommissioner/res/values/strings.xml rename to 3p-ecosystem/src/targetcommissioner/res/values/strings.xml index b643a21..5528d1d 100644 --- a/app/src/targetcommissioner/res/values/strings.xml +++ b/3p-ecosystem/src/targetcommissioner/res/values/strings.xml @@ -15,5 +15,5 @@ --> - GHSAFM-TC + GHSAFM-3p-ecosystem-TC \ No newline at end of file diff --git a/app/src/test/java/com/google/homesampleapp/UtilsTest.kt b/3p-ecosystem/src/test/java/com/google/homesampleapp/UtilsTest.kt similarity index 100% rename from app/src/test/java/com/google/homesampleapp/UtilsTest.kt rename to 3p-ecosystem/src/test/java/com/google/homesampleapp/UtilsTest.kt diff --git a/app/third_party/connectedhomeip/LICENSE b/3p-ecosystem/third_party/connectedhomeip/LICENSE similarity index 100% rename from app/third_party/connectedhomeip/LICENSE rename to 3p-ecosystem/third_party/connectedhomeip/LICENSE diff --git a/app/third_party/connectedhomeip/libs/AndroidPlatform.jar b/3p-ecosystem/third_party/connectedhomeip/libs/AndroidPlatform.jar similarity index 100% rename from app/third_party/connectedhomeip/libs/AndroidPlatform.jar rename to 3p-ecosystem/third_party/connectedhomeip/libs/AndroidPlatform.jar diff --git a/app/third_party/connectedhomeip/libs/CHIPController.jar b/3p-ecosystem/third_party/connectedhomeip/libs/CHIPController.jar similarity index 100% rename from app/third_party/connectedhomeip/libs/CHIPController.jar rename to 3p-ecosystem/third_party/connectedhomeip/libs/CHIPController.jar diff --git a/app/third_party/connectedhomeip/libs/jniLibs/README.md b/3p-ecosystem/third_party/connectedhomeip/libs/README.md similarity index 100% rename from app/third_party/connectedhomeip/libs/jniLibs/README.md rename to 3p-ecosystem/third_party/connectedhomeip/libs/README.md diff --git a/app/third_party/connectedhomeip/libs/SetupPayloadParser.jar b/3p-ecosystem/third_party/connectedhomeip/libs/SetupPayloadParser.jar similarity index 100% rename from app/third_party/connectedhomeip/libs/SetupPayloadParser.jar rename to 3p-ecosystem/third_party/connectedhomeip/libs/SetupPayloadParser.jar diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/README.md b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/README.md new file mode 100644 index 0000000..c35dd62 --- /dev/null +++ b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/README.md @@ -0,0 +1,3 @@ +This directory will contain .so files required by CHIPTool demo app for Android. +The .so files must be organized into folders by the name of the corresponding +Android architecture for which they are built, eg. arm64-v8a, x86, x86_64, etc. diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so new file mode 100755 index 0000000..69d7422 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so new file mode 100755 index 0000000..12672de Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so new file mode 100755 index 0000000..bcc051d Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so new file mode 100755 index 0000000..383521a Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so new file mode 100755 index 0000000..5f3bd2c Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so new file mode 100755 index 0000000..6a188d3 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so new file mode 100755 index 0000000..bbdb16e Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so new file mode 100755 index 0000000..b0cc957 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so new file mode 100755 index 0000000..64dda66 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so new file mode 100755 index 0000000..9607731 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so new file mode 100755 index 0000000..2703933 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so differ diff --git a/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so new file mode 100755 index 0000000..c1bf123 Binary files /dev/null and b/3p-ecosystem/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so differ diff --git a/README.md b/README.md index 804989f..244daa4 100644 --- a/README.md +++ b/README.md @@ -1,104 +1,40 @@ -# Google Home Sample App for Matter +# Google Home Mobile SDK Sample Applications for Matter -The **Google Home Sample App for Matter** (GHSA for Matter) provides a concrete example of how to -use the [Home Mobile SDK](https://developers.home.google.com/matter/apis/home) to make it -easy to commission and share [Matter](https://developers.home.google.com/matter/overview) devices -across Apps and ecosystems. It also demonstrates how to use commissioning and Cluster libraries -from the -[Matter repo (`connectedhomeip`)](https://github.com/project-chip/connectedhomeip). +The "[Google Home Application (GHA)](https://play.google.com/store/apps/details?id=com.google.android.apps.chromecast.app)" +is Google's flagship application for interacting with smart home +devices that are part of the Google ecosystem. -This is a sample application that can be used as the starting point to build your -smart home application for Matter devices. - -It can also be used as a learning tool to better understand key Matter concepts, as well as a tool -to debug and troubleshoot interactions with Matter devices. - -> **Warning:** There is still work to be done on this sample app, but we are making it available -> at this point to allow developers to get a headstart on learning how to use the Home Mobile SDK. - -## Clone the repository - -The Sample app GitHub repository includes third party libraries from the -[Matter repo (`connectedhomeip`)](https://github.com/project-chip/connectedhomeip). -These native libraries are over 50MB, and require the use of Git Large File -Storage (LFS). - -To clone the repository, complete the following steps: - -1. Install [Git LFS](https://git-lfs.github.com/). - -2. Initialize Git LFS. - - ```console - $ git lfs install - ``` +Google also offers the [Google Home Mobile SDK](https://developers.home.google.com/mobile-sdk) +for developers interested in building their own Android applications to interact with +smart home devices. - When complete, the console displays the following: +This repository features a suite of "Google Home Mobile SDK Sample Applications for Matter" +that provide concrete examples of how to +use the [Google Home Mobile SDK](https://developers.home.google.com/mobile-sdk). - ```console - Updated Git hooks. - Git LFS initialized. - ``` - -3. Once Git LFS is installed and initialized, you're ready to clone the - repository. When cloning completes, Git checks out the `main` branch - and downloads the native libraries for you. - - ```console - $ git clone https://github.com/google-home/sample-app-for-matter-android.git - ``` - -## Version - -Google Home Sample App for Matter follows the [Semantic](http://semver.org/) -and [Android](https://developer.android.com/studio/publish/versioning) versioning guidelines for -release cycle transparency and to maintain backwards compatibility. - -## Releases - -Always use the latest release as shown at -https://github.com/google-home/sample-app-for-matter-android/releases - -## Get started +These sample applications can be used as the starting point to build your +smart home application for Matter devices. +They can also be used as learning tools to better understand key Matter concepts, as well as tools +to debug and troubleshoot interactions with Matter devices. -* Check the presentation "Building Smart Home Apps with the Google Home Mobile SDK" - (docs/GoogleHomeMobileSDK.pdf) for an overview of the Sample App and key APIs - of the Mobile SDK. -* To make sure that your device has the latest Matter support, review the - [Verify Matter Modules & Services](https://developers.home.google.com/matter/verify-services) - guide. -* Build a Matter device with On/Off capabilities. This sample app works with a virtual device - and an ESP32. - * [Build a Matter Virtual Device](https://developers.home.google.com/codelabs/matter-device-virtual) - with the `rootnode_dimmablelight_bCwGYSDpoe` app. When you - [Create a Matter integration](https://developers.home.google.com/matter/integration/create) - in the [Home Developer Console](https://console.home.google.com/projects), - use `0xFFF1` as your Vendor ID and `0x8000` as your Product ID. - * [Build an Espressif Device](https://developers.home.google.com/matter/vendors/espressif) - with the `all-clusters-app`. When you - [Create a Matter integration](https://developers.home.google.com/matter/integration/create) - in the [Home Developer Console](https://console.home.google.com/projects), - use `0xFFF1` as your Vendor ID and `0x8001` as your Product ID. -* For an overview of the user interface and features, refer to - the [Google Home Sample App for Matter Guide](https://developers.home.google.com/samples/matter-app). -* To review code samples and start building, refer to - the [Build an Android App for Matter](https://developers.home.google.com/codelabs/matter-sample-app) - Codelab. +These sample applications have been developed to cater to the following use-case +scenarios. -## Issues? +**Third-Party Ecosystem (3p-ecosystem)** +If your organization supports its own ecosystem of smart devices, then the "3p-ecosystem" +sample application is for you. It leverages the commissioning, device sharing, and discovery +APIs offered in the [Google Home Mobile SDK](https://developers.home.google.com/mobile-sdk). +Note that the sample application provides supports only for a demo fabric based on the Matter SDK. +If you plan to make your application available in production, then you will have to deal +with the complexity of managing in a secure fashion your own Matter fabric. -If you run into problems with the sample app, please submit an issue on the -[Issues page](https://github.com/google-home/sample-app-for-matter-android/issues). +Note: This application used to be known as GHSAFM. It has been renamed GHSAFM-3p-ecosystem. -It is always greatly appreciated if you can try to reproduce the issue you encountered -from a clean state as described in document -["Investigating Issues with the Sample App"](https://github.com/google-home/sample-app-for-matter-android/wiki/How-to-investigate-issues-with-the-sample-app-(GHSAFM)). +See [3p-ecosystem sample app](3p-ecosystem/). -## License +## Clone the repository -Google Home Sample App for Matter is licensed under -the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). +```console +$ git clone https://github.com/google-home/sample-apps-for-matter-android.git +``` -Only use the Google Home Sample App for Matter name and marks when accurately referencing this -software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise -affiliated with Nest, Google, or the Connectivity Standards Alliance (CSA). diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index c95a8bf..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,163 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "com.google.protobuf" version "0.8.17" - id "org.jetbrains.kotlin.kapt" - id "dagger.hilt.android.plugin" - id "androidx.navigation.safeargs" - id "com.google.dagger.hilt.android" - id "com.ncorti.ktfmt.gradle" version "0.12.0" -} - -android { - // namespace 'com.google.homesampleapp.homesampleapp' - compileSdk 33 - - defaultConfig { - // DeviceSharingClone: Change this value for the target commissioner cloned app - applicationId "com.google.homesampleapp" - minSdk 27 - targetSdk 33 - versionCode 15 - versionName "1.4.1" - testInstrumentationRunner "com.google.homesampleapp.CustomTestRunner" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } - buildFeatures { - dataBinding true - } - sourceSets { - main { - jniLibs.srcDirs = ['third_party/connectedhomeip/libs/jniLibs'] - } - } - android.buildFeatures.viewBinding = true - - // Specifies one flavor dimension. - flavorDimensions += "version" - productFlavors { - create("default") { - dimension = "version" - applicationIdSuffix = ".default" - versionNameSuffix = "-default" - } - create("targetcommissioner") { - dimension = "version" - applicationIdSuffix = ".targetcommissioner" - versionNameSuffix = "-targetcommissioner" - } - } - // Gradle will use the NDK that's associated by default with its plugin. - // If it's not available (from the SDK Manager), then stripping the .so's will not happen - // (message: Unable to strip library...) - // See https://github.com/google-home/sample-app-for-matter-android/issues/82. - // https://developer.android.com/studio/projects/install-ndk - // If you want to use a specific NDK, then uncomment the statement below with the proper - // NDK version. - // ndkVersion = "25.2.9519653" -} - -dependencies { - // Native libs - implementation fileTree(dir: "third_party/connectedhomeip/libs", include: ["*.jar", "*.so"]) - - // Connected Home - implementation 'com.google.android.gms:play-services-base:18.1.0' - implementation 'com.google.android.gms:play-services-home:16.0.0' - - // AndroidX - implementation 'androidx.appcompat:appcompat:1.5.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'androidx.core:core-ktx:1.9.0' - implementation 'androidx.databinding:databinding-runtime:7.3.1' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.preference:preference:1.2.0' - - // Navigation - implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' - implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' - - // Lifecycle - implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtensionsVersion" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion" - implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion" - - // Datastore - implementation "androidx.datastore:datastore:$dataStoreVersion" - implementation 'androidx.datastore:datastore-core:1.0.0' - implementation 'com.google.protobuf:protobuf-javalite:3.18.0' - - // Hilt - // https://dagger.dev/hilt/gradle-setup - implementation 'com.google.dagger:hilt-android:2.44.2' - implementation 'com.google.ar:core:1.35.0' - kapt 'com.google.dagger:hilt-compiler:2.44.2' - - // Hilt For instrumentation tests - androidTestImplementation("com.google.dagger:hilt-android-testing:2.44.2") - kaptAndroidTest 'com.google.dagger:hilt-compiler:2.44.2' - - // Task.await() - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4' - - // Other - implementation 'com.google.android.material:material:1.7.0' - implementation 'com.jakewharton.timber:timber:5.0.1' - - // Test - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.5' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' - androidTestImplementation 'androidx.test.espresso:espresso-intents:3.5.1' - androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.1' - androidTestImplementation 'androidx.test:runner:1.5.2' - androidTestImplementation 'androidx.test:rules:1.5.0' - androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' -} - -// Issue with androidx.test.espresso:espresso-contrib:3.5.1 -// https://github.com/android/android-test/issues/999 -configurations.configureEach { - exclude group: "com.google.protobuf", module: "protobuf-lite" -} - -kapt { - correctErrorTypes true -} - -protobuf { - protoc { - // For Apple M1 Chip - def isMac = System.properties['os.name'].toLowerCase().contains('mac') - def protocDepSuffix = isMac ? ":osx-x86_64" : "" - artifact = "com.google.protobuf:protoc:3.14.0" + protocDepSuffix - } - - // Generates the java Protobuf-lite code for the Protobufs in this project. See - // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation - // for more information. - generateProtoTasks { - all().each { task -> - task.builtins { - java { - option 'lite' - } - } - } - } -} \ No newline at end of file diff --git a/app/third_party/connectedhomeip/libs/README.md b/app/third_party/connectedhomeip/libs/README.md deleted file mode 100644 index e99f165..0000000 --- a/app/third_party/connectedhomeip/libs/README.md +++ /dev/null @@ -1,2 +0,0 @@ -This directory will contain any .jar files required by the CHIPTool demo app for -Android. diff --git a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so b/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so deleted file mode 100755 index 55f7012..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libCHIPController.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d60814fe2b12b468797e7a10a1bb75e6300cc7fa78460666065db4ed2fbdf25 -size 26543344 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so b/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so deleted file mode 100755 index 9dc5598..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49172a4725747ab3c78f1634373bb7ec985986f420f6be9abc2ced727635b2db -size 340704 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so b/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so deleted file mode 100755 index ed00734..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/arm64-v8a/libc++_shared.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ae25a86d07a3f017d9f415bbf90f2e0be8becd86c724836b018b5c1523f35662 -size 1021888 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so b/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so deleted file mode 100755 index bbd268d..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libCHIPController.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:902edc42d3a4eea8005e473d6733efce3901c5bd3365e32ee8549c19f6f25044 -size 12435400 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so b/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so deleted file mode 100755 index 3c11f20..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e48f35a5ddfc4dbe7f4d00a9907cc10b17c511b172f00763a3b98f6d3cc27d4e -size 186956 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so b/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so deleted file mode 100755 index 9e4a11b..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/armeabi-v7a/libc++_shared.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17cabb5ae19eebc6180987be5908b055e9cd19188b48de4bae48d67d42697822 -size 609784 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so b/app/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so deleted file mode 100755 index cfe6040..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86/libCHIPController.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a1a1a8e3c32f6f8a9041db460383d977bfcf9c3db8642e7f9a0c542ab698c6b -size 31553788 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so b/app/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so deleted file mode 100755 index 7707a61..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86/libSetupPayloadParser.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c14386ed77f5e0589ed77ffb01d3e2489bb4ede0ac9d0c5aee050c5f0e4177b -size 382248 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so b/app/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so deleted file mode 100755 index cc127f2..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86/libc++_shared.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f317595c17f2629e3328ce3032d6de01a739a3f56d469f0ed46dd09b7e1f371c -size 989916 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so b/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so deleted file mode 100755 index 687891c..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libCHIPController.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d52b3ceac3f9685abc39076f9c1fd6a07e02e345f4e795f7992168d93a9a1ce0 -size 27852176 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so b/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so deleted file mode 100755 index bdea613..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libSetupPayloadParser.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da053357dcd9a779a6da5c10df2e31015cce6eb62aca04ffa058a04ce352e4c5 -size 351888 diff --git a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so b/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so deleted file mode 100755 index 183f384..0000000 --- a/app/third_party/connectedhomeip/libs/jniLibs/x86_64/libc++_shared.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a20835b5163565e94d2f9dbbbf4432d268fb63274cb7db6d3b415cb1e1086f59 -size 1045944 diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 7820d59..0000000 --- a/build.gradle +++ /dev/null @@ -1,39 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - google() - mavenCentral() - maven { url "https://plugins.gradle.org/m2/" } - } - dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10" - classpath 'com.google.protobuf:protobuf-java:3.17.2' - classpath 'com.google.dagger:hilt-android-gradle-plugin:2.42' - classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3") - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} - -ext { - supportLibVersion = '1.4.1' - constraintLayoutVersion = '2.1.3' - coreVersion = '1.7.0' - coroutinesVersion = '1.6.0' - dataStoreVersion = '1.0.0' - materialVersion = '1.5.0' - protobufVersion = '3.19.4' - lifecycleVersion = '2.5.1' - lifecycleExtensionsVersion = '2.2.0' - - runnerVersion = '1.4.0' - rulesVersion = '1.4.0' - junitVersion = '4.13.2' - espressoVersion = '3.4.0' -} - diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..339e715 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,47 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id("com.android.application") version "8.0.2" apply false + id("com.android.library") version "8.0.2" apply false + id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.google.dagger.hilt.android") version "2.46.1" apply false + id("androidx.navigation.safeargs") version "2.5.3" apply false +} + + +//buildscript { +// repositories { +// google() +// mavenCentral() +// maven { url "https://plugins.gradle.org/m2/" } +// } +// dependencies { +// classpath "com.android.tools.build:gradle:7.4.1" +// classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10" +// classpath "com.google.protobuf:protobuf-java:3.17.2" +// classpath "com.google.dagger:hilt-android-gradle-plugin:2.42" +// classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3") +// // NOTE: Do not place your application dependencies here; they belong +// // in the individual module build.gradle files +// } +//} + +//task clean(type: Delete) { +// delete rootProject.buildDir +//} + + + val supportLibVersion = "1.4.1" + val constraintLayoutVersion = "2.1.3" + val coreVersion = "1.7.0" + val coroutinesVersion = "1.6.0" + val dataStoreVersion = "1.0.0" + val materialVersion = "1.5.0" + val protobufVersion = "3.19.4" + val lifecycleVersion = "2.5.1" + val lifecycleExtensionsVersion = "2.2.0" + + val runnerVersion = "1.4.0" + val rulesVersion = "1.4.0" + val junitVersion = "4.13.2" + val espressoVersion = "3.4.0" + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b05841a..be15590 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Feb 08 17:25:38 PST 2022 +#Thu Jul 20 16:18:38 PDT 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle.kts similarity index 64% rename from settings.gradle rename to settings.gradle.kts index ef0b6e5..2479e8c 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -1,16 +1,19 @@ pluginManagement { repositories { - gradlePluginPortal() google() + mavenLocal() mavenCentral() + gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() + mavenLocal() mavenCentral() } } -rootProject.name = "GHSAFM" -include ':app' +rootProject.name = "Google Home Mobile SDK Sample Apps" +include(":3p-ecosystem") +//include(":google-ecosystem")