From 9324a7776da8b2d2210b76a88330c3f695d9b9f6 Mon Sep 17 00:00:00 2001
From: MuniSakkuru
Date: Wed, 15 Dec 2021 17:49:48 +0000
Subject: [PATCH] Version 4.0.0 Alexa Auto SDK
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles.
**v4.0.0**
* v4.0.0 released on 2021-12-15
**Enhancements**
* Deprecated the C++ and Java platform interfaces in favor of an asynchronous message-based API. Auto SDK client applications use the new `MessageBroker` to publish and subscribe to Alexa Auto Services Bridge (AASB) messages. The C++ sample app is refactored to use the new API to provide a reference implementation for Linux platforms. The Alexa Auto Client Service (AACS) sample app provides the reference implementation for Android platforms. See the [Auto SDK Migration Guide](./MIGRATION.md) for help migrating your application to use the new API.
* Enhanced the Auto SDK build system with the Conan package manager. The new build system introduces modular builds, better dependency management, and simpler build artifacts. The Auto SDK build system includes the Auto SDK Builder Tool script, which wraps the Conan build commands with a simple interface similar to the previous version of Auto SDK Builder. See the [Build Alexa Auto SDK documentation](./BUILDING.md) for details about the build system and the [Migration Guide](./MIGRATION.md) for help migrating your build to the new version of Builder Tool.
* Extended the features of Alexa Presentation Language (APL) support for automotive. The `APL` module provides messages to report vehicle properties such as the display theme, driving state, and ambient light conditions. The property settings affect how APL documents render on screen; for example, some APL content is automatically hidden when the vehicle starts moving, and the display contrast updates with the day or night mode setting. Auto SDK 4.0 supports APL 1.9. For more information about the Auto SDK `APL` interface, see the [APL module documentation.](./modules/apl/README.md)
* Added the `CustomDomain` interface, which establishes a bidirectional communication channel between your Auto SDK client application and your custom cloud skill. `CustomDomain` includes messages for exchanging directives, events, and context between the vehicle and your skill, achieving a fully customizable experience. For more information about the Auto SDK `CustomDomain` interface, See the [Custom Domain module documentation.](./modules/custom-domain/README.md)
* Added the `MediaPlaybackRequestor` interface, which enables Alexa to play the user’s favorite media content as soon as they start their vehicle. `MediaPlaybackRequestor` simplifies content selection for the user by removing the need for the user to use buttons or voice commands to resume the Alexa media content that was playing when they stopped the vehicle. For more information about the Auto SDK `MediaPlaybackRequestor` interface, See the [Alexa module documentation.](./modules/alexa/README.md)
* Extended the `AudioOutput` interface and added configuration to allow ducking Alexa media. Your application can use this feature for enhanced control of Alexa content audio focus according to your platform requirements. For more information about audio ducking, see the [Core module documentation.](./modules/core/README.md)
* Updated the Auto SDK to use AVS Device SDK Version 1.25.0. For information about this version of AVS Device SDK, see the [AVS Device SDK release notes.](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/release-notes.html#version-1250)
* Added LVC support for Alexa Custom Assistant specialized handoffs. You can configure the default fallback and self-introduction prompts for your custom assistant while offline. For more information, see the `Alexa Custom Assistant` extension documentation.
* Integrated the Auto SDK Conan build system enhancements to AACS and the AACS sample app. You can use a single Gradle command to build AACS and the AACS sample app. For build instructions, see the [AACS documentation.](./aacs/android/README.md)
* Added the following enhancements to the AACS sample app:
* **Additional languages—** The AACS sample app supports the following languages: *US English* (`en-US`), *Australian English* (`en-AU`), *Canadian English* (`en-CA`), *Indian English* (`en-IN`), *British English* (`en-GB`), *German* (d`e-DE`), *Spanish* (`es-ES`), *Mexican Spanish* (`es-MX`), *US Spanish* (`es-US`), *French* (`fr-FR`), *Canadian French* (`fr-CA`), *Hindi* (`hi-IN`), *Italian* (`it-IT`), *Japanese* (`ja-JP`), and *Brazilian Portuguese* (`pr-BR`).
The sample app language setting matches the device’s system language setting and syncs the with Alexa as long as the setting is in the supported language list. If Alexa does not support the system language, the sample app GUI defaults to en-US and presents a list of languages for the user to choose from. Once the user selects the language override, the system language does not sync with the sample app again until the user logs out or disables Alexa.
* **Network error prompts—** You can configure the sample app to provide feedback to the user when Alexa cannot respond due internet connection issues. The feedback is a voice prompt or an error screen depending on the user action.
* **Alexa app assets—** The sample app can show Alexa logos (assets) on the setup screen and display cards instead of showing placeholder assets.
* **Comms UI improvements—** Updated the contacts uploading logic in the `Comms UI` AACS app component to ensure the sample app only uploads the contacts for the primary phone.
* Updated the AACS Telephony library to get the outgoing phone account using the Android standard API `getDefaultOutgoingPhoneAccount`. AACS Telephony no longer sends an account query intent when receiving the `PhoneCallController.Dial` message from the Auto SDK Engine.
* Added a new intent `com.amazon.aacstelephony.bluetooth.connectionCheckCompleted`, which AACS Telephony service broadcasts when it finishes the initial bluetooth connection check.
* Updated the `alexa-auto-lwa-auth` app component to use the `Authorization` Auto SDK interface for CBL authorization.
**Other changes**
* Moved several source code directories within the `aac-sdk` root directory to support the enhanced build system.
* Removed `aac-sdk/platforms/android/`. The deprecated Java platform interfaces and JNI are in their respective modules. For example, the Alexa module Java interfaces and JNI are moved from `aac-sdk/platforms/android/modules/alexa/` to `aac-sdk/modules/alexa/android/`
* Removed `aac-sdk/extensions/aasb/` because using AASB messages with MessageBroker is the primary Auto SDK API. AASB code for each module is in the respective module directory. For example, the AASB code for the Alexa module is in `aac-sdk/modules/alexa/aasb/`. Note that the AASB message headers to include in your application are not in this directory since they are generated as part of the Auto SDK build output.
* Moved `aac-sdk/extensions/system-audio/` to `aac-sdk/modules/system-audio/`
* Moved `aac-sdk/extensions/bluetooth/` to `aac-sdk/modules/bluetooth/`
* Moved `aac-sdk/extensions/loopback-detector/` to `aac-sdk/modules/loopback-detector/`
* Moved `aac-sdk/platforms/android/alexa-auto-client-service/` to `aac-sdk/aacs/android/`
* Moved `aac-sdk/platforms/android/alexa-auto-client-service/app-components/` to `aac-sdk/aacs/android/app-components/`
* Moved `aac-sdk/samples/android-aacs-sample-app/` to `aac-sdk/aacs/android/sample-app/`
* Moved `aac-sdk/platforms/android/alexa-auto-client-service` `/commonutils/` , `/ipc/`, and `/constants/` to `aac-sdk/aacs/android/common/`
* Moved AACS media player files to a directory `audioOutput` within `aac-sdk/platforms/android/alexa-auto-client-service/service/`
* Moved the Media App Command and Control Android library from `aac-sdk/platforms/android/maccandroid/` to `aac-sdk/aacs/android/service/modules/maccandroid/`
* In the LVC extension, the `LocalSearchProvider` AASB messages now have topic `LocalNavigation`. For example, the existing message `LocalSearchProvider.SearchRequest` in 3.3 is `LocalNavigation.SearchRequest` in 4.0. The next major release version of Auto SDK will change the topic back to `LocalSearchProvider`.
* Deprecated the option to build AACS as an APK. Starting from Auto SDK 4.0, you can only build AACS as an AAR.
* Removed the Android sample app based on the Java platform interfaces. The AACS sample app demonstrates using Auto SDK on Android.
**Resolved Issues**
* Fixed an issue preventing the generic `DEFAULT` type `LocalMediaSource` from working in offline mode with LVC.
* Fixed a race condition in `SpeechRecognizer` in which enabling wake word detection immediately after calling `startCapture()` resulted in a missing call to `stopAudioInput()` when wake word detection was later disabled.
* Fixed a deadlock that could occur in an application that uses the deprecated `AuthProvider` interface and starts, stops, and restarts the Engine in quick succession.
* Fixed an issue in which Spotify playback commands were delayed on QNX.
* Fixed an issue in which the Engine added malformed `PhoneCallController` context to `PhoneCallController` events sent to Alexa.
* Fixed an issue in which AACS did not acquire audio focus prior to playing Alexa speech.
**Known Issues**
**General**
* If you do not specify the `deviceSettings.locales` field of the Alexa module configuration, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"].
The Engine does not automatically declare support for default locale combinations if you assign an empty value to the `locales` field.
* The Engine does not persist the `aace.alexa.wakewordEnabled` Engine property setting across device reboots. Your application has to persist the setting and set the property again at each Engine start. AACS implements persisting this property and hence does not have this issue.
* If your Linux platform does not use AVX2 instructions, the Amazonlite wake word library initialization causes an illegal instruction error.
* When using LVC and stopping the Engine, the `AlexaClient` connection status remains `CONNECTED` because the connection to LVC is not disabled. Your application should not accept user utterances while the Engine is stopped despite the connection status showing `CONNECTED`.
* The [Alexa Automotive UX guidelines](https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.alexa.templateRuntimeCapabilityAgent` Engine configuration. However, the configuration does not provide enough granularity to specify timeouts for different types of display cards. Consequently, there is no way for your application to configure automatically dismissing local search templates (e.g., `LocalSearchListTemplate2`) with a different timeout than other templates (e.g., `WeatherTemplate`). The configuration also does not provide a way for you to specify infinite timeout for `NowPlaying` cards. You must implement your application’s dismissal logic for display cards and media info accordingly.
* When the user requests to view their list of timers on an APL-enabled application, they cannot use an utterance such as “Alexa, scroll up” to scroll through the list shown on the APL card.
* There is a rare race condition in which publishing the `AlexaClient.StopForegroundActivity` message does not cancel the active Alexa interaction. The race condition can happen when the application publishes the message at the beginning of the `THINKING` state `AlexaClient.DialogStateChanged` transition.
* On the Poky Linux 32-bit platform, the C++ sample app shuts down with an error on launch.
* In offline mode with LVC, you might not see the `AlexaClient.DialogStateChanged` `THINKING` state transition if the user invokes Alexa with hold-to-talk and your application provides the audio input data in one large chunk.
* In offline mode with LVC, Alexa gets stuck in the `THINKING` state and does not respond after changing the locale setting. The state recovers after a few minutes.
* The `CBL` module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the Engine attempts the refresh, it might take up to a minute to refresh the token after the internet connection is restored.
* Some `Core` module messages published by the Engine do not have a corresponding message for the application to report a handling failure. For example, if the user invokes Alexa by tap-to-talk, and the application cannot handle the `AudioInput.StartAudioInput` message, the Engine assumes the application handled the message properly and will provide audio data. As a result, the Engine state and application state might become out of sync. The affected messages are the following:
* `AudioInput`:
* `StartAudioInput`
* `AudioOutput`:
* `SetPosition`
* `VolumeChanged`
* `MutedStateChanged`
**Car control**
* If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in the set from Alexa. For example, after you configure set A with endpoints 1, 2, and 3, if you change your car control configuration during development to set B with endpoints 2, 3, and 4, Alexa retains endpoint 1 from set A, which might interfere with resolving the correct endpoint ID for your utterances. However, any endpoint configurations with matching IDs override previous configurations. For example, the configuration of endpoint 2 in set B replaces endpoint 2 in set A. During development, limit configuration changes to create only supersets of previous endpoint configurations. Work with your Solutions Architect or Partner Manager to produce the correct configuration on the first try.
**Communications**
* Alexa does not understand DTMF utterances that include letters. For example, "press A" and "dial 3*#B" do not result in the correct DTMF directives.
* The user might experience unexpected results by trying to dial or place calls in the following ways:
* Using utterances that include “double”, “triple”, “hundred”, or “thousand.” For example, calling a number such as 1-800-xxx-xxxx by saying “Alexa call one eight *double oh*...”
* Pressing special characters such has “#” or “*” by saying "Alexa press * #."
* The user cannot accept or reject incoming Alexa-to-Alexa calls by voice while playing a skill with extended multi-turn dialogs, such as Jeopardy or Skyrim.
**Entertainment**
* If the user requests Alexa to read notifications while music is playing, they might hear the music play for a split second between the end of one notification and the start of the next.
* When an external media player authorization is in progress during Engine shutdown, a rare race condition might cause the Engine to crash.
* If your application cancels an Alexa interaction by sending the `AlexaClient.StopForegroundActivity` message to the Engine during music playback, the Engine might erroneously request your application to dismiss the` NowPlaying` media info by publishing the `TemplateRuntime.ClearPlayerInfo` message. Your application should not dismiss the media info in this scenario.
* When using the `System Audio` module, Audible and Amazon music might not play correctly on i.MX8 boards.
**Local search and navigation**
* In offline mode with LVC, after the user requests a list of POIs with an utterance such as “Alexa, find a nearby Starbucks”, Alexa does not recognize followup requests such as "Alexa, select the first one" and does not display or read detailed information about the requested selection.
**AACS**
* If you do not use the default audio output implementation (i.e., your application handles `AudioOutput` AASB messages), your application will not receive the `AudioOutput.Stop` message if Alexa media is playing when AACS shuts down. As a workaround, your application can listen to `AASB.StopService` or adopt `AACSPinger` to listen to the `STOPPED` state of AACS and stop the media accordingly.
**AACS Sample App**
* The AACS Sample App does not show the language selection screen when the app is built with Preview Mode.
* The AACS Sample App only shows the language selection screen if there is a language mismatch with the system language setting at the first app launch.
[Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/)
---
.gitignore | 3 +-
BUILDING.md | 730 +
CHANGELOG.md | 203 +-
CMakeLists.txt | 52 -
GETSTARTED.md | 4 +-
LICENSE | 203 +-
LICENSE_APACHE_V2 | 202 +
LINUX_INTEGRATION.md | 95 +
MIGRATION.md | 24 +-
MIGRATION_TO_AASB_MESSAGEBROKER.md | 316 +
NOTICE | 20 +-
README.md | 134 +-
SDK_MODULES.md | 86 +
SECURITY.md | 5 +
aacs/android/README.md | 832 +
.../app-components/alexa-auto-apis/.gitignore | 0
.../app-components/alexa-auto-apis/README.md | 35 +
.../alexa-auto-apis/build.gradle | 50 +
.../alexa-auto-apis}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../AnimationProvider.java | 0
.../AssistantManager.java | 0
.../alexaCustomAssistant/EarconProvider.java | 0
.../SettingsProvider.java | 0
.../alexaCustomAssistant/SetupController.java | 0
.../alexaCustomAssistant/SetupProvider.java | 0
.../amazon/alexa/auto/apis/apl/APLTheme.kt | 5 +
.../amazon/alexa/auto/apis/app/AlexaApp.java | 0
.../auto/apis/app/AlexaAppRootComponent.java | 0
.../alexa/auto/apis/app/ScopedComponent.java | 0
.../alexa/auto/apis/auth/AuthController.java | 0
.../amazon/alexa/auto/apis/auth/AuthStatus.kt | 0
.../alexa/auto/apis/auth/AuthWorkflow.kt | 3 +-
.../auth/AuthorizationHandlerInterface.java | 0
.../apis/communication/BluetoothDevice.kt | 0
.../communication/ContactsController.java | 0
.../auto/apis/login/LoginUIEventListener.java | 0
.../auto/apis/module/ModuleInterface.java | 0
.../session/SessionActivityController.java | 42 +
.../apis/session/SessionViewController.java | 0
.../auto/apis/setup/AlexaSetupController.java | 0
.../setup/AlexaSetupWorkflowController.java | 0
.../uxRestrictions/CarUxRestrictionStatus.kt | 10 +
.../CarUxRestrictionsController.java | 35 +
.../alexa-auto-apl-renderer/.gitignore | 0
.../alexa-auto-apl-renderer/README.md | 157 +
.../alexa-auto-apl-renderer/build.gradle | 88 +
.../alexa-auto-apl-renderer/gradle.properties | 0
.../alexa-auto-apl-renderer/libs}/.gitignore | 0
.../modules/apl-render/.gitignore | 0
.../modules/apl-render/README.md | 283 +
.../modules/apl-render/build.gradle | 74 +
.../modules/apl-render/gradle.properties | 0
.../modules/apl-render/lombok.config | 0
.../modules/apl-render}/proguard-rules.pro | 0
.../modules/apl-render/settings.gradle | 0
.../apl-render/src/main/AndroidManifest.xml | 0
.../apl/android/render/APLPresenter.java | 807 +
.../apl/android/render/APLSingleton.java | 2 +-
.../render/audio/AudioFocusController.java | 0
.../content/APLHttpContentRetriever.java | 2 +-
.../render/dagger/ActivityContext.java | 0
.../android/render/dagger/ActivityScope.java | 0
.../render/dagger/ApplicationContext.java | 0
.../render/dagger/ApplicationScope.java | 0
.../dagger/component/ActivityComponent.java | 0
.../component/ApplicationComponent.java | 0
.../dagger/module/APLOptionsModule.java | 13 +-
.../render/dagger/module/ActivityModule.java | 0
.../dagger/module/ApplicationModule.java | 0
.../dagger/module/MediaPlayerModule.java | 0
.../render/dagger/module/NetworkModule.java | 0
.../render/dagger/module/TtsModule.java | 0
.../render/extension/ExtensionManager.java | 142 +
.../render/extension/back/BackExtension.java | 325 +
.../render/extension/back/BackStack.java | 169 +
.../extension/back/BackStackDocument.java | 119 +
.../render/extension/back/IBackCallback.java | 26 +
.../localinfo/LocalInfoExtension.java | 209 +
.../render/font/AutoEmbeddedFontResolver.java | 123 +
.../interfaces/IAPLContentListener.java | 13 +
.../render/interfaces/IAPLEventSender.java | 0
.../IAPLOptionsBuilderProvider.java | 0
.../render/interfaces/IAPLTokenProvider.java | 0
.../render/interfaces/IDismissible.java | 26 +
.../interfaces/ILocalInfoDataConsumer.java | 52 +
.../interfaces/ILocalInfoDataReporter.java | 31 +
.../android/render/interfaces/IPresenter.java | 18 +
.../android/render/media/APLMediaPlayer.java | 2 +-
.../render/media/APLMediaPlayerProvider.java | 0
.../render/network/NetworkExecutor.java | 0
.../render/network/OkHttpClientWrapper.java | 2 +-
.../android/render/payload/APLPayload.java | 2 +-
.../render/payload/ExecuteCommandPayload.java | 0
.../render/payload/PresentationSession.java | 2 +-
.../render/payload/RenderDocumentPayload.java | 2 +-
.../payload/RenderedDocumentStatePayload.java | 0
.../android/render/payload/TimeoutType.java | 0
.../render/payload/UserEventPayload.java | 0
.../apl/android/render/tts/APLTtsPlayer.java | 4 +-
.../render/tts/APLTtsPlayerProvider.java | 2 +-
.../render/utils/RenderDocumentUtils.java | 0
.../android/render/utils/ViewportUtils.java | 0
.../apl-render/src/main}/libs/.gitignore | 0
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 42 +
.../src/main/assets/APLViewport.json | 113 +
.../amazon/alexa/auto/apl/APLDirective.java | 0
.../amazon/alexa/auto/apl/APLFragment.java | 340 +
.../alexa/auto/apl/APLThemeDirective.java | 12 +
.../com/amazon/alexa/auto/apl/Constants.java | 29 +
.../alexa/auto/apl/handler/APLHandler.java | 273 +
.../alexa/auto/apl/receiver/APLReceiver.java | 63 +
.../auto/apl/receiver/APLThemeReceiver.java | 144 +
.../src/main/res/layout/fragment_apl.xml | 19 +
.../src/main/res/values/dimens.xml | 5 +
.../src/main/res/values/strings.xml | 0
.../auto/apl/TestResourceFileReader.java | 0
.../auto/apl/handler/APLHandlerTest.java | 67 +
.../auto/apl/receiver/APLReceiverTest.java | 9 +
.../apl/receiver/APLThemeReceiverTest.java | 101 +
.../test/resources/aacs/ClearDocument.json | 2 +-
.../test/resources/aacs/RenderDocument.json | 2 +-
.../aacs/UpdateAPLRuntimeProperties.json | 14 +
.../alexa-auto-apps-common-ui/.gitignore | 0
.../alexa-auto-apps-common-ui/README.md | 0
.../alexa-auto-apps-common-ui/build.gradle | 66 +
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../ui/CirclePageIndicatorDecoration.java | 0
.../auto/app/common/ui/LoadingDialog.java | 0
.../auto/app/common/ui/TwoChoiceDialog.java | 0
.../auto/app/common/util/PopupDialogUtil.java | 0
.../alexa/auto/app/common/util/ViewUtils.java | 0
.../drawable/alexa_bubble_small.png | Bin 0 -> 1424 bytes
.../res-placeholders/drawable/alexa_logo.png | Bin
.../res/color/radio_button_color_selector.xml | 0
.../src/main/res/drawable/ic_close.xml | 0
.../res/drawable/light_button_background.xml | 0
.../drawable/medium_component_background.xml | 0
.../selected_rect_button_background.xml | 0
.../drawable/small_component_background.xml | 0
.../transparent_button_background.xml | 0
.../transparent_rect_button_background.xml | 0
.../main/res/layout/loading_dialog_layout.xml | 0
.../main/res/layout/simple_dialog_layout.xml | 0
.../res/layout/two_choice_dialog_layout.xml | 0
.../src/main/res/values/attrs.xml | 0
.../src/main/res/values/colors.xml | 0
.../src/main/res/values/dimens.xml | 0
.../src/main/res/values/styles.app.xml | 0
.../src/main/res/values/styles.xml | 0
.../main/res/values/theme-alexa-standard.xml | 0
.../app/common/ui/TwoChoiceDialogTest.java | 0
.../alexa-auto-apps-common-util}/.gitignore | 0
.../alexa-auto-apps-common-util/README.md | 10 +
.../alexa-auto-apps-common-util/build.gradle | 67 +
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 6 +
.../alexa/auto/apps/common/Constants.java | 44 +
.../common/aacs/AACSServiceController.java | 3 +-
.../apps/common/message/AssistantMessage.java | 0
.../apps/common/util/DNDSettingsProvider.java | 69 +
.../util/EarconSoundSettingsProvider.java | 46 +
.../alexa/auto/apps/common/util/FileUtil.java | 219 +
.../auto/apps/common/util/LocaleUtil.java | 44 +
.../auto/apps/common/util/ModuleProvider.java | 7 +-
.../auto/apps/common}/util/NetworkUtil.java | 2 +-
.../auto/apps/common/util/Preconditions.java | 0
.../auto/apps/common/util/UiThemeManager.java | 315 +
.../util/config/AlexaPropertyManager.java | 0
.../common/util/config/LocalesProvider.java | 0
.../aacs/AACSServiceControllerTest.java | 0
.../auto/apps/common/util/FileUtilTest.java | 0
.../apps/common/util/UiThemeManagerTest.java | 128 +
.../src/test/resources/aacs_config.json | 0
.../alexa-auto-carcontrol/.gitignore | 0
.../alexa-auto-carcontrol/README.md | 206 +
.../aacscarcontrol}/.gitignore | 0
.../aacscarcontrol/build.gradle | 60 +
.../aacscarcontrol}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../assets/CarControlEndpointMapping.json | 0
.../AACSCarControlReceiver.java | 0
.../aacscarcontrol/CarControlConstants.java | 0
.../aacscarcontrol/CarControlHandler.java | 0
.../aacscarcontrol/CarControlHelper.java | 0
.../amazon/aacscarcontrol/CarControlUtil.java | 0
.../CarControlHandlerTests.java | 0
.../aacscarcontrol/CarControlHelperTests.java | 0
.../assets/set-fan-speed-to-3.png | Bin
.../assets/set-fan-speed-to-3.puml | 0
.../assets/set-reply-to-engine.png | Bin
.../assets/set-reply-to-engine.puml | 0
.../alexa-auto-carcontrol/build.gradle | 46 +
.../alexa-auto-carcontrol}/gradle.properties | 0
.../alexa-auto-carcontrol/settings.gradle | 9 +
.../alexa-auto-comms-ui/.gitignore | 0
.../alexa-auto-comms-ui/README.md | 28 +
.../alexa-auto-comms-ui/build.gradle | 81 +
.../alexa-auto-comms-ui}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 31 +
.../amazon/alexa/auto/comms/ui/Constants.java | 34 +
.../auto/comms/ui/ContactsControllerImpl.java | 236 +
.../alexa/auto/comms/ui/PreferenceKeys.java | 0
.../alexa/auto/comms/ui/db/BTDevice.java | 0
.../alexa/auto/comms/ui/db/BTDeviceDao.java | 0
.../auto/comms/ui/db/BTDeviceDatabase.java | 0
.../auto/comms/ui/db/BTDeviceRepository.java | 0
.../auto/comms/ui/db/ConnectedBTDevice.java | 0
.../comms/ui/db/ConnectedBTDeviceDao.java | 0
.../ui/db/ConnectedBTDeviceDatabase.java | 0
.../ui/db/ConnectedBTDeviceRepository.java | 198 +
.../comms/ui/dependencies/AndroidModule.java | 0
.../dependencies/CommunicationComponent.java | 0
.../ui/dependencies/CommunicationModule.java | 31 +
.../settings/CommunicationFragment.java | 0
.../CommunicationPreferenceFragment.java | 0
.../setup/CommunicationConsentFragment.java | 4 +-
.../setup/CommunicationConsentViewModel.java | 0
.../ui/handler/BluetoothDirectiveHandler.java | 6 +
.../comms/ui/receiver/BluetoothReceiver.java | 86 +
.../src/main/res/drawable/ic_arrow_right.xml | 0
.../communication_setup_fragment.xml | 93 +
.../layout/communication_consent_layout.xml | 0
.../layout/communication_pair_new_layout.xml | 0
.../communication_preference_layout.xml | 0
.../communication_settings_fragment.xml | 0
.../layout/communication_setup_fragment.xml | 93 +
.../navigation/communication_navigation.xml | 0
.../src/main/res/values-de/strings.xml | 21 +
.../src/main/res/values-en-rAU/strings.xml | 21 +
.../src/main/res/values-en-rCA/strings.xml | 21 +
.../src/main/res/values-en-rIN/strings.xml | 21 +
.../src/main/res/values-en-rUS/strings.xml | 21 +
.../src/main/res/values-en/strings.xml | 21 +
.../src/main/res/values-es-rMX/strings.xml | 21 +
.../src/main/res/values-es-rUS/strings.xml | 21 +
.../src/main/res/values-es/strings.xml | 21 +
.../src/main/res/values-fr-rCA/strings.xml | 21 +
.../src/main/res/values-fr/strings.xml | 21 +
.../src/main/res/values-hi-rIN/strings.xml | 21 +
.../src/main/res/values-it/strings.xml | 21 +
.../src/main/res/values-ja/strings.xml | 21 +
.../src/main/res/values-land/dimens.xml | 24 +
.../src/main/res/values-pt-rBR/strings.xml | 21 +
.../src/main/res/values/dimens.xml | 28 +
.../src/main/res/values/strings.xml | 21 +
.../res/xml/communication_preferences.xml | 0
.../CommunicationConsentFragmentTest.java | 0
.../CommunicationConsentViewModelTest.java | 0
.../BluetoothDirectiveHandlerTest.java | 0
.../ui/receiver/BluetoothReceiverTest.java | 0
.../alexa-auto-contacts/README.md | 146 +
.../aacscontacts}/.gitignore | 0
.../aacscontacts/build.gradle | 50 +
.../aacscontacts}/consumer-rules.pro | 0
.../aacscontacts}/proguard-rules.pro | 0
.../aacscontacts/src/main/AndroidManifest.xml | 0
.../aacscontacts/AACSContactsService.java | 0
.../com/amazon/aacscontacts/Constants.java | 0
.../aacscontacts/PhoneBookController.java | 0
.../res/drawable/alexa_notification_icon.png | Bin
.../src/main/res/values/strings.xml | 0
.../PhoneBookControllerTests.java | 0
.../assets/contactsLib-add.png | Bin
.../assets/contactsLib-add.puml | 0
.../assets/contactsLib-remove.png | Bin
.../assets/contactsLib-remove.puml | 0
.../alexa-auto-contacts/build.gradle | 45 +
.../alexa-auto-contacts}/gradle.properties | 0
.../alexa-auto-contacts/settings.gradle | 9 +
.../alexa-auto-device-usage}/.gitignore | 0
.../alexa-auto-device-usage/README.md | 38 +
.../alexa-auto-device-usage/build.gradle | 0
.../consumer-rules.pro | 0
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../alexa/auto/deviceusage/AASBReceiver.java | 0
.../auto/deviceusage/DeviceUsageHandler.java | 0
.../NetworkStatsManagerRunner.java | 0
.../src/main/res/values/strings.xml | 0
.../alexa-auto-lwa-auth/.gitignore | 0
.../alexa-auto-lwa-auth/README.md | 0
.../alexa-auto-lwa-auth/build.gradle | 62 +
.../alexa-auto-lwa-auth}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 58 +
.../alexa/auto/lwa/AlexaClientReceiver.java | 0
.../amazon/alexa/auto/lwa/AuthReceiver.java | 122 +
.../alexa/auto/lwa/CBLAuthReceiver.java | 214 +
.../alexa/auto/lwa/LWAAuthConstants.java | 26 +
.../alexa/auto/lwa/LWAAuthController.java | 496 +
.../com/amazon/alexa/auto/lwa/TokenStore.java | 0
.../alexa/auto/lwa/UserIdentityStore.java | 0
.../src/main/res/values/strings.xml | 0
.../alexa-auto-media-player}/.gitignore | 0
.../alexa-auto-media-player/README.md | 74 +
.../alexa-auto-media-player/build.gradle | 89 +
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 90 +
.../amazon/alexa/auto/media/Constants.java | 0
.../media/MusicStreamAttributeUpdater.java | 0
.../auto/media/ShutdownActionReceiver.java | 61 +
.../aacs/handlers/AudioPlayerHandler.java | 354 +
.../aacs/handlers/IMediaDuckingObserver.java | 3 +
.../aacs/handlers/TemplateRuntimeHandler.java | 0
.../media/browse/AlexaMediaBrowseService.java | 110 +-
.../content/AlbumArtContentProvider.java | 0
.../auto/media/dependencies/AACSModule.java | 0
.../media/dependencies/AndroidModule.java | 16 +
.../media/dependencies/MediaComponent.java | 0
.../auto/media/dependencies/MediaModule.java | 8 +-
.../MediaPlayerAudioFocusController.java | 46 +-
.../auto/media/player/MediaPlayerExo.java | 3 +-
.../auto/media/player/MediaSourceFactory.java | 149 +
.../alexa/auto/media/player/MediaState.kt | 0
.../media/player/NotificationController.java | 5 +-
.../auto/media/player/PlaylistParser.java | 0
.../media/session/CustomActionProvider.java | 0
.../media/session/CustomActionProviders.java | 0
.../media/session/MediaMetadataProvider.java | 31 +-
.../media/session/MediaSessionManager.java | 792 +
.../PlaybackControlButtonActionProvider.java | 0
.../media/session/PlaybackController.java | 109 +
.../main/res/drawable/default_album_image.xml | 0
.../src/main/res/drawable/media_dislike.xml | 0
.../res/drawable/media_dislike_selected.xml | 0
.../res/drawable/media_item_place_holder.xml | 0
.../src/main/res/drawable/media_like.xml | 0
.../main/res/drawable/media_like_selected.xml | 0
.../src/main/res/drawable/media_repeat.xml | 0
.../res/drawable/media_repeat_selected.xml | 0
.../src/main/res/drawable/media_shuffle.xml | 0
.../res/drawable/media_shuffle_selected.xml | 0
.../drawable/media_skip_backward_selected.xml | 0
.../drawable/media_skip_forward_selected.xml | 0
.../res/drawable/media_skip_next_disabled.xml | 0
.../drawable/media_skip_previous_disabled.xml | 0
.../src/main/res/layout/msp_option_view.xml | 0
.../src/main/res/values-de/strings.xml | 21 +
.../src/main/res/values-en-rAU/strings.xml | 21 +
.../src/main/res/values-en-rCA/strings.xml | 21 +
.../src/main/res/values-en-rIN/strings.xml | 21 +
.../src/main/res/values-en-rUS}/strings.xml | 0
.../src/main/res/values-en/strings.xml | 21 +
.../src/main/res/values-es-rMX/strings.xml | 21 +
.../src/main/res/values-es-rUS/strings.xml | 21 +
.../src/main/res/values-es/strings.xml | 21 +
.../src/main/res/values-fr-rCA/strings.xml | 21 +
.../src/main/res/values-fr/strings.xml | 21 +
.../src/main/res/values-h600dp/dimens.xml | 0
.../src/main/res/values-h600dp/styles.xml | 0
.../src/main/res/values-h600dp/values.xml | 0
.../src/main/res/values-hi-rIN/strings.xml | 21 +
.../src/main/res/values-it/strings.xml | 21 +
.../src/main/res/values-ja/strings.xml | 21 +
.../src/main/res/values-pt-rBR/strings.xml | 21 +
.../src/main/res/values/colors.xml | 0
.../src/main/res/values/dimens.xml | 0
.../src/main/res/values/integers.xml | 0
.../src/main/res/values/strings.xml | 23 +
.../src/main/res/values/styles.xml | 0
.../src/main/res/values/values.xml | 0
.../browse/AlexaMediaBrowseServiceTest.kt | 0
.../MediaPlayerAudioFocusControllerTest.kt | 0
.../media/session/MediaMetadataProverTest.kt | 0
.../media/session/MediaSessionManagerTest.kt | 36 +-
...PlaybackControlButtonActionProviderTest.kt | 0
.../media/session/PlaybackControllerTest.kt | 0
.../media/session/RenderPlayerInfoBuilder.kt | 0
.../org.mockito.plugins.MockMaker | 0
.../alexa-auto-navigation}/.gitignore | 0
.../alexa-auto-navigation/README.md | 0
.../alexa-auto-navigation/build.gradle | 74 +
.../alexa-auto-navigation}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../navigation/dependencies/AACSModule.java | 0
.../dependencies/AndroidModule.java | 0
.../dependencies/GoogleMapsModule.java | 0
.../dependencies/NavigationComponent.java | 0
.../handlers/LocalSearchDirectiveHandler.java | 0
.../handlers/NavigationDirectiveHandler.java | 0
.../navigation/poi/ClearTemplateEvent.java | 0
.../poi/LocalSearchListAdapter.java | 0
.../providers/NavigationProvider.java | 0
.../google/GoogleMapsNavigationProvider.java | 0
.../LocalSearchTemplateRuntimeReceiver.java | 0
.../receiver/NavigationReceiver.java | 0
.../main/res/drawable/circle_background.xml | 0
.../src/main/res/drawable/ic_cancel.xml | 0
.../res/drawable/light_info_background.xml | 0
.../res/drawable/local_search_background.xml | 0
.../main/res/layout/local_search_detail.xml | 4 +-
.../src/main/res/layout/local_search_item.xml | 0
.../src/main/res/layout/local_search_list.xml | 4 +-
.../src/main/res/values-de/strings.xml | 10 +
.../src/main/res/values-en-rAU/strings.xml | 10 +
.../src/main/res/values-en-rCA/strings.xml | 10 +
.../src/main/res/values-en-rIN/strings.xml | 10 +
.../src/main/res/values-en-rUS}/strings.xml | 0
.../src/main/res/values-en/strings.xml | 10 +
.../src/main/res/values-es-rMX/strings.xml | 10 +
.../src/main/res/values-es-rUS/strings.xml | 10 +
.../src/main/res/values-es/strings.xml | 10 +
.../src/main/res/values-fr-rCA/strings.xml | 10 +
.../src/main/res/values-fr/strings.xml | 10 +
.../src/main/res/values-hi-rIN/strings.xml | 10 +
.../src/main/res/values-it/strings.xml | 10 +
.../src/main/res/values-ja/strings.xml | 10 +
.../src/main/res/values-land/dimens.xml | 0
.../src/main/res/values-pt-rBR/strings.xml | 10 +
.../src/main/res/values/dimens.xml | 61 +
.../src/main/res/values/ids.xml | 0
.../src/main/res/values/strings.xml | 10 +
.../src/main/res/values/styles.xml | 0
.../LocalSearchDirectiveHandlerTest.java | 0
.../NavigationDirectiveHandlerTest.java | 0
.../poi/LocalSearchListAdapterTest.java | 0
.../GoogleMapsNavigationProviderTest.java | 0
...ocalSearchTemplateRuntimeReceiverTest.java | 0
.../receiver/NavigationReceiverTest.java | 0
.../receiver/TestResourceFileReader.java | 0
.../test/resources/aacs/CancelNavigation.json | 0
.../test/resources/aacs/ClearTemplate.json | 0
.../resources/aacs/GetNavigationState.json | 0
.../aacs/RenderTemplateLocalSearchDetail.json | 0
.../aacs/RenderTemplateLocalSearchList.json | 0
.../test/resources/aacs/StartNavigation.json | 0
.../alexa-auto-settings/.gitignore | 0
.../alexa-auto-settings/README.md | 12 +
.../alexa-auto-settings/build.gradle | 88 +
.../alexa-auto-settings}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 35 +
.../src/main/assets/locales.json | 221 +
.../auto/settings/AACSMetadataReceiver.java | 6 +
.../auto/settings/AACSPreferenceFragment.java | 0
.../AlexaSettingsLanguagesFragment.java | 267 +
.../AlexaSoundPreferencesFragment.java | 101 +
.../alexa/auto/settings/DNDChangeMessage.java | 17 +
.../alexa/auto/settings/DNDReceiver.java | 59 +
.../alexa/auto/settings/SettingsActivity.java | 7 +
.../settings/SettingsActivityViewModel.java | 36 +-
.../auto/settings/config/AACSConfiguration.kt | 0
.../config/AACSConfigurationPreferences.kt | 0
.../settings/config/AACSConfigurator.java | 3 +-
.../auto/settings/config/PreferenceKeys.java | 72 +
.../settings/dependencies/AACSModule.java | 0
.../settings/dependencies/AndroidModule.java | 0
.../settings/dependencies/ConfigModule.java | 0
.../settings/dependencies/MenuModule.java | 0
.../dependencies/SettingsComponent.java | 8 +
.../home/AlexaSettingsHomeFragment.java | 48 +-
.../home/AlexaSettingsScreenBuilder.java | 0
.../home/AuthSettingsScreenBuilder.java | 27 +-
.../home/DebugSettingsScreenBuilder.java | 0
.../VoiceAssistanceSettingsScreenBuilder.java | 0
.../src/main/res/drawable/ic_arrow_back.xml | 0
.../src/main/res/drawable/ic_check.xml | 0
.../layout/alexa_last_preference_layout.xml | 0
.../res/layout/alexa_preference_layout.xml | 0
.../main/res/layout/navigation_bar_layout.xml | 0
.../res/layout/settings_activity_layout.xml | 0
.../layout/settings_alexa_language_layout.xml | 1535 ++
.../res/navigation/settings_navigation.xml | 12 +-
.../src/main/res/values-de/strings.xml | 57 +
.../src/main/res/values-en-rAU/strings.xml | 57 +
.../src/main/res/values-en-rCA/strings.xml | 57 +
.../src/main/res/values-en-rIN/strings.xml | 57 +
.../src/main/res/values-en-rUS/strings.xml | 71 +
.../src/main/res/values-en/strings.xml | 57 +
.../src/main/res/values-es-rMX/strings.xml | 57 +
.../src/main/res/values-es-rUS/strings.xml | 57 +
.../src/main/res/values-es/strings.xml | 57 +
.../src/main/res/values-fr-rCA/strings.xml | 57 +
.../src/main/res/values-fr/strings.xml | 57 +
.../src/main/res/values-hi-rIN/strings.xml | 57 +
.../src/main/res/values-it/strings.xml | 57 +
.../src/main/res/values-ja/strings.xml | 57 +
.../src/main/res/values-pt-rBR/strings.xml | 57 +
.../src/main/res/values/dimens.xml | 0
.../src/main/res/values/strings.xml | 71 +
.../src/main/res/values/styles.xml | 0
.../src/main/res/xml/aacs_preferences.xml | 0
.../src/main/res/xml/alexa_preferences.xml | 10 +
.../main/res/xml/alexa_sound_preferences.xml | 21 +
.../AlexaSoundPreferencesFragmentTest.java | 120 +
.../home/AlexaSettingsHomeFragmentTest.java | 15 +
.../home/AuthSettingsScreenBuilderTest.java | 0
.../home/DebugSettingsScreenBuilderTest.java | 0
...ceAssistanceSettingsScreenBuilderTest.java | 0
.../alexa-auto-setup/.gitignore | 0
.../app-components/alexa-auto-setup/README.md | 26 +
.../alexa-auto-setup/build.gradle | 79 +
.../alexa-auto-setup}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../CBLLoginWorkflowSpecification.json | 0
...PreviewModeLoginWorkflowSpecification.json | 0
.../setup/dependencies/AndroidModule.java | 0
.../auto/setup/dependencies/ConfigModule.java | 0
.../setup/dependencies/SetupComponent.java | 85 +
.../setup/dependencies/WorkflowModule.java | 0
.../receiver/NetworkStateChangeReceiver.java | 45 +
.../AlexaSetupWorkflowControllerImpl.java | 0
.../alexa/auto/setup/workflow/Workflow.java | 0
.../auto/setup/workflow/WorkflowMessage.java | 0
.../setup/workflow/WorkflowNavigator.java | 0
.../auto/setup/workflow/WorkflowProvider.java | 0
.../auto/setup/workflow/WorkflowStep.java | 0
.../CheckContactsConsentStatusCommand.java | 0
.../command/CheckLanguageCommand.java | 0
.../command/CheckLocationConsentCommand.java | 0
.../command/CheckLoginRequiredCommand.java | 2 +-
.../command/CheckNetworkStatusCommand.java | 0
.../auto/setup/workflow/command/Command.java | 0
.../command/SetupCompleteCommand.java | 0
.../auto/setup/workflow/event/LoginEvent.java | 0
.../workflow/event/VoiceAssistanceEvent.java | 0
.../AuthProviderAuthenticatedFragment.java | 0
.../setup/workflow/fragment/CBLFragment.java | 27 +
.../fragment/CBLLoginErrorFragment.java | 0
.../fragment/CBLLoginFinishFragment.java | 0
.../setup/workflow/fragment/CBLViewModel.java | 21 +-
.../fragment/EnablePreviewModeFragment.java | 159 +
.../fragment/EnablePreviewModeViewModel.java | 0
.../fragment/LanguageSelectionFragment.java | 0
.../fragment/LocationConsentFragment.java | 0
.../workflow/fragment/LoginFragment.java | 32 +-
.../workflow/fragment/LoginViewModel.java | 0
.../workflow/fragment/NetworkFragment.java | 0
.../workflow/fragment/NetworkViewModel.java | 0
.../fragment/SetupNotCompleteFragment.java | 0
.../setup/workflow/model/LocationConsent.java | 0
.../setup/workflow/util/QRCodeGenerator.java | 0
.../src/main/res/drawable/ic_wifi_help.xml | 0
.../auth_provider_login_finished.xml | 128 +
.../main/res/layout-land/cbl_code_loading.xml | 0
.../main/res/layout-land/cbl_login_error.xml | 66 +
.../res/layout-land/cbl_login_finished.xml | 101 +
.../res/layout-land/enable_preview_mode.xml | 91 +
.../main/res/layout-land/location_consent.xml | 97 +
.../layout-land/login_display_cbl_code.xml | 80 +
.../src/main/res/layout-land/login_start.xml | 75 +
.../main/res/layout-land/network_fragment.xml | 82 +
.../res/layout-land/setup_not_complete.xml | 67 +
.../layout-land/start_language_selection.xml | 55 +
.../res/layout/aacs_connection_loading.xml | 0
.../layout/auth_provider_login_finished.xml | 131 +
.../src/main/res/layout/cbl_code_loading.xml | 0
.../src/main/res/layout/cbl_fragment.xml | 0
.../src/main/res/layout/cbl_login_error.xml | 67 +
.../main/res/layout/cbl_login_finished.xml | 104 +
.../main/res/layout/enable_preview_mode.xml | 93 +
.../src/main/res/layout/location_consent.xml | 97 +
.../res/layout/login_display_cbl_code.xml | 82 +
.../src/main/res/layout/login_fragment.xml | 0
.../src/main/res/layout/login_start.xml | 75 +
.../src/main/res/layout/network_fragment.xml | 82 +
.../main/res/layout/setup_not_complete.xml | 67 +
.../res/layout/start_language_selection.xml | 54 +
.../main/res/navigation/setup_navigation.xml | 2 +-
.../src/main/res/values-de/strings.xml | 51 +
.../src/main/res/values-en-rAU/strings.xml | 51 +
.../src/main/res/values-en-rCA/strings.xml | 51 +
.../src/main/res/values-en-rIN/strings.xml | 51 +
.../src/main/res/values-en-rUS/strings.xml | 51 +
.../src/main/res/values-en/strings.xml | 51 +
.../src/main/res/values-es-rMX/strings.xml | 51 +
.../src/main/res/values-es-rUS/strings.xml | 51 +
.../src/main/res/values-es/strings.xml | 51 +
.../src/main/res/values-fr-rCA/strings.xml | 51 +
.../src/main/res/values-fr/strings.xml | 52 +
.../src/main/res/values-hi-rIN/strings.xml | 51 +
.../src/main/res/values-it/strings.xml | 51 +
.../src/main/res/values-ja/strings.xml | 51 +
.../src/main/res/values-land/dimens.xml | 28 +
.../src/main/res/values-pt-rBR/strings.xml | 51 +
.../src/main/res/values/dimens.xml | 34 +
.../src/main/res/values/strings.xml | 51 +
.../workflow/TestResourceFileReader.java | 0
.../setup/workflow/WorkflowNavigatorTest.java | 0
.../setup/workflow/WorkflowProviderTest.java | 0
.../CheckLocationConsentCommandTest.java | 0
.../command/SetupCompleteCommandTest.java | 0
...AuthProviderAuthenticatedFragmentTest.java | 0
.../workflow/fragment/CBLFragmentTest.java | 0
.../fragment/CBLLoginErrorFragmentTest.java | 0
.../fragment/CBLLoginFinishFragmentTest.java | 0
.../workflow/fragment/CBLViewModelTest.java | 12 +
.../EnablePreviewModeFragmentTest.java | 0
.../LanguageSelectionFragmentTest.java | 0
.../fragment/LocationConsentFragmentTest.java | 0
.../workflow/fragment/LoginFragmentTest.java | 0
.../workflow/fragment/LoginViewModelTest.java | 0
.../fragment/NetworkFragmentTest.java | 0
.../SetupNotCompleteFragmentTest.java | 0
.../NetworkStateChangeReceiverTest.java | 0
.../CBLLoginWorkflowSpecification.json | 0
.../alexa-auto-telephony/.gitignore | 0
.../alexa-auto-telephony/README.md | 212 +
.../aacstelephony}/.gitignore | 0
.../aacstelephony/build.gradle | 52 +
.../aacstelephony}/consumer-rules.pro | 0
.../aacstelephony}/proguard-rules.pro | 0
.../ExampleInstrumentedTest.java | 0
.../src/main/AndroidManifest.xml | 0
.../aacstelephony/AACSTelephonyService.java | 50 +-
.../aacstelephony/BluetoothStateListener.java | 1 +
.../com/amazon/aacstelephony/CallMap.java | 0
.../aacstelephony/CallStateListener.java | 0
.../com/amazon/aacstelephony/Constants.java | 0
.../aacstelephony/PhoneCallController.java | 387 +
.../java/com/amazon/aacstelephony/Util.java | 21 +
.../res/drawable/alexa_notification_icon.png | Bin
.../src/main/res/values/strings.xml | 0
.../BluetoothStateListenerTest.java | 0
.../aacstelephony/CallStateListenerTest.java | 0
.../PhoneCallControllerTest.java | 0
.../assets/AACSTelephony_initiateCall.png | Bin
.../assets/AACSTelephony_initiateCall.puml | 0
.../alexa-auto-telephony/build.gradle | 46 +
.../alexa-auto-telephony}/gradle.properties | 0
.../alexa-auto-telephony/settings.gradle | 9 +
.../.gitignore | 8 +
.../README.md | 0
.../build.gradle | 77 +
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../dependencies/AACSModule.java | 0
.../dependencies/AndroidModule.java | 0
.../TemplateRuntimeComponent.java | 0
.../receiver/AlexaStateChangeReceiver.java | 0
.../AlexaVoiceoverCompletedMessage.java | 0
.../receiver/TemplateRuntimeReceiver.java | 0
.../weather/WeatherAdapter.java | 0
.../weather/WeatherDirectiveHandler.java | 4 +
.../res/drawable/display_card_background.xml | 0
.../src/main/res/drawable/ic_cancel.xml | 0
.../src/main/res/layout/weather.xml | 87 +
.../src/main/res/layout/weather_current.xml | 0
.../src/main/res/layout/weather_forecast.xml | 0
.../main/res/layout/weather_forecast_day.xml | 0
.../src/main/res/values-land/dimens.xml | 0
.../src/main/res/values/dimens.xml | 59 +
.../src/main/res/values/ids.xml | 0
.../src/main/res/values/strings.xml | 0
.../src/main/res/values/styles.xml | 0
.../common/TestResourceFileReader.java | 0
.../AlexaStateChangeReceiverTest.java | 0
.../receiver/TemplateRuntimeReceiverTest.java | 0
.../weather/WeatherAdapterTest.java | 0
.../weather/WeatherDirectiveHandlerTest.java | 0
.../test/resources/aacs/ClearTemplate.json | 0
.../aacs/DialogStateChangedIdle.json | 0
.../aacs/DialogStateChangedListening.json | 0
.../resources/aacs/RenderTemplateWeather.json | 0
.../app-components/alexa-auto-tts/README.md | 181 +
.../alexa-auto-tts/aacstts/.gitignore | 8 +
.../alexa-auto-tts/aacstts/build.gradle | 53 +
.../aacstts}/proguard-rules.pro | 0
.../aacstts/src/main/AndroidManifest.xml | 0
.../java/com/amazon/aacstts/AACSUtil.java | 0
.../aacstts/AmazonTextToSpeechService.java | 0
.../java/com/amazon/aacstts/AudioDecoder.java | 0
.../java/com/amazon/aacstts/ISO3CodeUtil.java | 0
.../java/com/amazon/aacstts/JSONUtil.java | 0
.../com/amazon/aacstts/MessageHandler.java | 0
.../amazon/aacstts/SynthesizeTextUtil.java | 0
.../java/com/amazon/aacstts/TTSConstants.java | 0
.../com/amazon/aacstts/TTSIntentReceiver.java | 0
.../amazon/aacstts/handler/AASBHandler.java | 0
.../aacstts/handler/AlexaClientHandler.java | 0
.../aacstts/handler/IAACSMessageHandler.java | 0
.../amazon/aacstts/handler/TTSHandler.java | 0
.../models/GetCapabilitiesPayload.java | 0
.../models/PrepareSpeechMessageOptions.java | 0
.../models/PrepareSpeechMessagePayload.java | 0
.../aacstts/models/ProviderVoiceItem.java | 0
.../models/TTSSynthesisFutureResponse.java | 0
.../aacstts/src/main/res/values/strings.xml | 0
.../aacstts/AlexaClientHandlerTests.java | 0
.../AmazonTextToSpeechServiceTests.java | 0
.../aacstts/SynthesizeTextUtilTests.java | 0
.../com/amazon/aacstts/TTSHandlerTests.java | 0
.../java/com/amazon/aacstts/TestAACSUtil.java | 0
.../alexa-auto-tts/assets/Android_TTS.png | Bin
.../alexa-auto-tts/assets/Android_TTS.xml | 0
.../alexa-auto-tts/build.gradle | 27 +
.../alexa-auto-tts}/gradle.properties | 0
.../alexa-auto-tts/settings.gradle | 0
.../alexa-auto-ux-restrictions/.gitignore | 8 +
.../alexa-auto-ux-restrictions/README.md | 10 +
.../alexa-auto-ux-restrictions/build.gradle | 61 +
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 15 +
.../modules-uxrestrictions.json | 5 +
.../CarUxRestrictionsModule.java | 136 +
.../DefaultCarUxRestrictionsController.java | 109 +
.../src/main/res/values/strings.xml | 4 +
.../alexa-auto-voice-interaction/.gitignore | 0
.../alexa-auto-voice-interaction/README.md | 10 +
.../alexa-auto-voice-interaction/build.gradle | 72 +
.../gradle.properties | 0
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../common/AutoVoiceInteractionMessage.java | 0
.../voiceinteraction/common/Constants.java | 0
.../receiver/AACSBroadcastReceiver.java | 74 +
.../service/AutoVoiceInteractionService.java | 28 +-
.../service/AutoVoiceInteractionSession.java | 51 +
.../AutoVoiceInteractionSessionService.java | 0
.../src/main/res/values/strings.xml | 0
.../xml/auto_voice_interaction_service.xml | 0
.../TestResourceFileReader.java | 0
.../receiver/AACSBroadcastReceiverTest.java | 106 +
.../ConnectionStatusChangedConnected.json | 0
.../ConnectionStatusChangedDisconnected.json | 0
.../test/resources/aacs/WakewordDetected.json | 0
.../alexa-auto-voice-ui/.gitignore | 9 +
.../alexa-auto-voice-ui/README.md | 11 +
.../alexa-auto-voice-ui/build.gradle | 73 +
.../alexa-auto-voice-ui}/gradle.properties | 0
.../alexa-auto-voice-ui}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 34 +
.../alexa/auto/voice/ui/VoiceActivity.java | 426 +
.../voice/ui/common/AutoVoiceUIMessage.java | 30 +
.../alexa/auto/voice/ui/common/Constants.java | 13 +
.../voice/ui/earcon/EarconController.java | 122 +
.../ui/receiver/AACSBroadcastReceiver.java | 78 +
.../SessionActivityControllerImpl.java | 48 +
.../session/SessionViewControllerImpl.java | 2 +-
.../layout/autovoiceinteraction_layout.xml | 0
.../main/res/raw-de/auto_error_offline.mp3 | Bin 0 -> 29997 bytes
.../res/raw-en-rAU/auto_error_offline.mp3 | Bin 0 -> 25245 bytes
.../res/raw-en-rCA/auto_error_offline.mp3 | Bin 0 -> 27405 bytes
.../res/raw-en-rIN/auto_error_offline.mp3 | Bin 0 -> 28989 bytes
.../res/raw-en-rUS/auto_error_offline.mp3 | Bin 0 -> 22797 bytes
.../main/res/raw-en/auto_error_offline.mp3 | Bin 0 -> 28989 bytes
.../res/raw-es-rMX/auto_error_offline.mp3 | Bin 0 -> 28989 bytes
.../res/raw-es-rUS/auto_error_offline.mp3 | Bin 0 -> 31149 bytes
.../main/res/raw-es/auto_error_offline.mp3 | Bin 0 -> 30429 bytes
.../res/raw-fr-rCA/auto_error_offline.mp3 | Bin 0 -> 28701 bytes
.../main/res/raw-fr/auto_error_offline.mp3 | Bin 0 -> 24381 bytes
.../res/raw-hi-rIN/auto_error_offline.mp3 | Bin 0 -> 31869 bytes
.../main/res/raw-it/auto_error_offline.mp3 | Bin 0 -> 27261 bytes
.../main/res/raw-ja/auto_error_offline.mp3 | Bin 0 -> 33021 bytes
.../res/raw-pt-rBR/auto_error_offline.mp3 | Bin 0 -> 23373 bytes
.../src/main/res/raw/auto_error_offline.mp3 | Bin 0 -> 22797 bytes
.../src/main/res/raw/med_ui_endpointing.wav | Bin
.../src/main/res/raw/med_ui_wakesound.wav | Bin
.../main/res/raw/med_ui_wakesound_touch.wav | Bin
.../src/main/res/values-land/dimens.xml | 0
.../src/main/res/values/dimens.xml | 0
.../src/main/res/values/strings.xml | 3 +
.../src/main/res/values/styles.xml | 28 +
.../auto/voice/ui/TestResourceFileReader.java | 25 +
.../receiver/AACSBroadcastReceiverTest.java | 132 +
.../SessionActivityControllerImplTest.java | 67 +
.../SessionViewControllerImplTest.java | 2 +-
.../aacs/DialogStateChangedIdle.json | 2 +-
.../aacs/DialogStateChangedListening.json | 2 +-
.../aacs/DialogStateChangedSpeaking.json | 2 +-
.../aacs/DialogStateChangedThinking.json | 2 +-
.../test/resources/aacs/WakewordDetected.json | 14 +
.../android}/assets/AACSArchDetailed.png | Bin
.../android}/assets/AACSInit.puml | 0
.../android}/assets/AACSInitFlow.png | Bin
.../android}/assets/AACSWakeword.png | Bin
.../android}/assets/AACSWakeword.puml | 0
aacs/android/assets/AACS_CBLLogin.png | Bin 0 -> 86098 bytes
aacs/android/assets/AACS_CBLLogin.puml | 55 +
.../android}/assets/APCP.png | Bin
aacs/android/assets/config.json | 105 +
.../android/common}/commonutils/.gitignore | 0
.../android/common}/commonutils/README.md | 0
.../commonutils/aacscommonutils}/.gitignore | 0
.../commonutils/aacscommonutils/build.gradle | 45 +
.../aacscommonutils}/consumer-rules.pro | 0
.../aacscommonutils}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../common/AACSComponentRegistryUtil.java | 0
.../alexa/auto/aacs/common/AACSMessage.java | 0
.../auto/aacs/common/AACSMessageBuilder.java | 4 +-
.../auto/aacs/common/AACSMessageSender.java | 0
.../auto/aacs/common/AACSReplyMessage.java | 0
.../ConnectionStatusChangedMessages.java | 0
.../common/DialogStateChangedMessages.java | 0
.../auto/aacs/common/LocalSearchCommon.kt | 0
.../aacs/common/LocalSearchDetailTemplate.kt | 0
.../aacs/common/LocalSearchListTemplate.kt | 0
.../auto/aacs/common/NavigationMessages.java | 0
.../aacs/common/PlaybackControlMessages.java | 108 +
.../auto/aacs/common/RenderPlayerInfo.kt | 6 +-
.../aacs/common/SpeechRecognizerMessages.java | 0
.../alexa/auto/aacs/common/StartNavigation.kt | 0
.../aacs/common/TemplateRuntimeMessages.java | 0
.../aacs/common/WakewordDetectedMessages.java | 0
.../alexa/auto/aacs/common/WeatherTemplate.kt | 0
.../aacs/common/AACSMessageBuilderTest.java | 0
.../aacs/common/AACSMessageSenderTest.java | 0
.../ConnectionStatusChangedMessagesTest.java | 0
.../DialogStateChangedMessagesTest.java | 0
.../aacs/common/NavigationMessagesTest.java | 0
.../common/PlaybackControlMessagesTest.java | 0
.../common/SpeechRecognizerMessagesTest.java | 0
.../common/TemplateRuntimeMessagesTest.java | 0
.../aacs/common/TestResourceFileReader.java | 0
.../aacs/LocalSearchDetailTemplateV1.json | 0
.../aacs/LocalSearchListTemplateV2.json | 0
.../test/resources/aacs/StartNavigation.json | 0
.../aacs/TemplateRuntimePlayerRenderInfo.json | 0
aacs/android/common/commonutils/build.gradle | 46 +
.../common/commonutils}/gradle.properties | 0
.../common/commonutils/settings.gradle | 7 +
.../android/common}/constants/.gitignore | 0
.../constants/aacsconstants}/.gitignore | 0
.../constants/aacsconstants/build.gradle | 32 +
.../aacsconstants}/consumer-rules.pro | 0
.../aacsconstants}/proguard-rules.pro | 0
.../ExampleInstrumentedTest.java | 0
.../src/main/AndroidManifest.xml | 0
.../amazon/aacsconstants/AACSConstants.java | 11 +-
.../aacsconstants/AACSPropertyConstants.java | 2 +
.../amazon/aacsconstants/AASBConstants.java | 16 +
.../java/com/amazon/aacsconstants/Action.java | 23 +
.../aacsconstants/ContactsConstants.java | 0
.../amazon/aacsconstants/MediaConstants.java | 6 +
.../aacsconstants/NavigationConstants.java | 0
.../aacsconstants/NetworkConstants.java | 0
.../aacsconstants/PlaybackConstants.java | 7 +
.../aacsconstants/TelephonyConstants.java | 1 +
.../TemplateRuntimeConstants.java | 0
.../java/com/amazon/aacsconstants/Topic.java | 2 +
.../amazon/aacsconstants/ExampleUnitTest.java | 0
aacs/android/common/constants/build.gradle | 27 +
.../common/constants}/gradle.properties | 0
.../android/common}/constants/settings.gradle | 0
.../android/common/ipc}/.gitignore | 0
aacs/android/common/ipc/README.md | 213 +
.../android/common/ipc/aacsipc}/.gitignore | 0
.../android/common}/ipc/aacsipc/build.gradle | 0
.../common/ipc/aacsipc}/proguard-rules.pro | 0
.../aacsipc/ExampleInstrumentedTest.java | 0
.../ipc/aacsipc/src/main/AndroidManifest.xml | 0
.../java/com/amazon/aacsipc/AACSPinger.java | 0
.../java/com/amazon/aacsipc/AACSReceiver.java | 0
.../java/com/amazon/aacsipc/AACSSender.java | 11 +
.../java/com/amazon/aacsipc/IPCConstants.java | 0
.../java/com/amazon/aacsipc/SenderMap.java | 0
.../com/amazon/aacsipc/TargetComponent.java | 0
.../java/com/amazon/aacsipc/DummyService.java | 0
.../com/amazon/aacsipc/TestAACSReceiver.java | 0
.../com/amazon/aacsipc/TestAACSSender.java | 0
.../java/com/amazon/aacsipc/TestUtils.java | 0
aacs/android/common/ipc/build.gradle | 26 +
.../android/common}/ipc/gradle.properties | 0
.../android/common}/ipc/settings.gradle | 0
aacs/android/conanfile.py | 44 +
aacs/android/restrictedAssets/LICENSE_PMLA | 9 +
aacs/android/restrictedAssets/NOTICE | 1 +
.../drawable/alexa_bubble_small.png | Bin 0 -> 983 bytes
.../restrictedAssets/drawable/alexa_logo.png | Bin 0 -> 5141 bytes
.../android/sample-app}/.gitignore | 0
aacs/android/sample-app/README.md | 413 +
.../sample-app/alexa-auto-app/.gitignore | 9 +
.../assets/AACSSampleAppArch.png | Bin
.../AACSSampleAppComponentDiagram.drawio | 1 +
.../assets/AACSSampleAppComponentDiagram.png | Bin 0 -> 150420 bytes
.../sample-app/alexa-auto-app/build.gradle | 185 +
.../alexa-auto-app}/gradle.properties | 0
.../alexa-auto-app}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 46 +
.../src/main/assets/config/aacs_config.json | 90 +
.../alexa/auto/app/AutoApplication.java | 0
.../com/amazon/alexa/auto/app/Constants.java | 0
.../app/DefaultAlexaAppRootComponent.java | 0
.../alexa/auto/app/audio/AudioIOService.java | 0
.../auto/app/audio/AudioIOServiceWorker.java | 0
.../auto/app/audio/AudioInputHandler.java | 0
.../auto/app/audio/AudioInputReader.java | 0
.../AudioServiceNotificationBuilder.java | 5 +-
.../auto/app/dependencies/AACSModule.java | 0
.../auto/app/dependencies/AlexaAppModule.java | 0
.../auto/app/dependencies/AlexaAppScope.java | 0
.../app/dependencies/AndroidAppModule.java | 0
.../auto/app/dependencies/AppComponent.java | 0
.../app/dependencies/AudioIOComponent.java | 0
.../auto/app/dependencies/AudioIOModule.java | 0
.../auto/app/dependencies/ServiceScope.java | 0
.../app/setup/AlexaSetupControllerImpl.java | 0
.../src/main/res/values/strings.xml | 0
.../src/main/res/xml/filepaths.xml | 0
.../auto/app/audio/AudioIOServiceTest.java | 0
.../auto/app/audio/AudioInputHandlerTest.java | 0
.../auto/app/audio/AudioInputReaderTest.java | 0
aacs/android/sample-app/build.gradle | 124 +
aacs/android/sample-app/gradle.properties | 14 +
.../gradle/wrapper/gradle-wrapper.jar | Bin
.../gradle/wrapper/gradle-wrapper.properties | 0
.../android/sample-app}/gradlew | 0
aacs/android/sample-app/settings.gradle | 138 +
aacs/android/service/.gitignore | 7 +
aacs/android/service/README.md | 420 +
aacs/android/service/build.gradle | 124 +
.../android/service/core-service}/.gitignore | 0
.../android/service/core-service/build.gradle | 276 +
.../assets/file-util-res/aacs_config.json | 223 +
.../assets/file-util-res/auto_sdk_config.json | 3 -
.../TestAlexaAutoClientService.java | 0
.../instrumentedtest/TestFileUtil.java | 0
.../instrumentedtest/TestUtil.java | 0
.../src/debug/AndroidManifest.xml | 0
.../AACSMessageLogger.java | 0
.../amazon/alexaautoclientservice/README.md | 0
.../constants/MessageLoggerConstants.java | 0
.../receiver/InstrumentationReceiver.java | 0
.../core-service/src/main/AndroidManifest.xml | 80 +
.../aidl/com/amazon/alexalve/ILVCClient.aidl | 0
.../aidl/com/amazon/alexalve/ILVCService.aidl | 0
.../src/main/assets/certs/09789157.0 | 0
.../src/main/assets/certs/3513523f.0 | 0
.../src/main/assets/certs/6d41d539.0 | 0
.../src/main/assets/certs/85cf5865.0 | 0
.../src/main/assets/certs/8cb5ee0f.0 | 0
.../src/main/assets/certs/b204d74a.0 | 0
.../src/main/assets/certs/ce5e74ef.0 | 0
.../src/main/assets/certs/de6d66f3.0 | 0
.../src/main/assets/certs/f387163d.0 | 0
.../AACSPropertyContentProvider.java | 0
.../alexaautoclientservice/AASBHandler.java | 47 +-
.../AlexaAutoClientService.java | 115 +-
.../ComponentRegistry.java | 192 +
.../ConfigMessageReceivedCallback.java | 6 +-
.../LVCInteractionProvider.java | 0
.../NotificationListener.java | 0
.../constants/AudioSourceConstants.java | 0
.../constants/ConfigFieldConstants.java | 20 +
.../constants/LVCServiceConstants.java | 0
.../AlexaClientMessageHandler.java | 41 +
.../alexaClient/AuthStateObserver.java | 0
.../alexaClient/ConnectionStateObserver.java | 0
.../alexaClient/DialogStateObserver.java | 20 +
.../audioInput/AudioInputFocusManager.java | 135 +
.../audioInput/AudioInputMessageHandler.java | 8 +-
.../AudioOutputMessageHandler.java | 23 +-
.../mediaPlayer/AACSMediaPlayer.java | 6 +
.../mediaPlayer/AudioFocusAttributes.java | 10 +-
.../mediaPlayer/EventReceiver.java | 0
.../mediaPlayer/exo/ExoPlayerHandler.java | 188 +-
.../mediaPlayer/exo/MediaSourceFactory.java | 194 +
.../mediaPlayer/exo/PlaylistParser.java | 110 +
.../raw/RawAudioOutputHandler.java | 290 +
.../bluetooth/BluetoothProviderHandler.java | 2 +-
.../BluetoothServerSocketHandler.java | 2 +-
.../bluetooth/BluetoothSocketHandler.java | 2 +-
.../CustomDomainMessageDispatcher.java | 134 +
.../IDiscoveredPlayerProvider.java | 0
.../externalMediaPlayer/MACCPlayer.java | 0
.../LocationProviderHandler.java | 0
.../mediaManager/LocalMediaSourceHandler.java | 687 +
.../mediaManager/LocalSessionHandler.java | 0
.../modules/mediaManager/MediaSource.java | 0
.../NetworkInfoProviderHandler.java | 0
.../PropertyManagerHandler.java | 51 +
.../receiver/LVCReceiver.java | 2 +-
.../receiver/PingReceiver.java | 0
.../ServiceMetadataRequestReceiver.java | 0
.../receiver/StartOnBootReceiver.java | 0
.../SystemPropertyChangeReceiver.java | 211 +
.../util/AACSStateObserver.java | 0
.../alexaautoclientservice/util/AASBUtil.java | 0
.../alexaautoclientservice/util/FileUtil.java | 890 +
.../util/MediaPlayerUtil.java | 73 +
.../util/PropertyUtil.java | 71 +
.../res/drawable/alexa_notification_icon.png | Bin
.../src/main/res/values/strings.xml | 0
.../AACSMessageLogger.java | 0
.../receiver/InstrumentationReceiver.java | 0
.../unittest/TestAASBHandler.java | 0
aacs/android/service/gradle.properties | 15 +
.../gradle/wrapper/gradle-wrapper.jar | Bin
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
.../android => aacs/android/service}/gradlew | 0
.../service/modules/aacs-extra/build.gradle | 30 +
.../modules/aacs-extra}/consumer-rules.pro | 0
.../modules/aacs-extra}/proguard-rules.pro | 0
.../aacs-extra/src/main/AndroidManifest.xml | 0
.../aacs_extra/AACSContext.java | 0
.../AACSModuleFactoryInterface.java | 0
.../aacs_extra/EngineStatusListener.java | 0
.../service/modules/maccandroid}/.gitignore | 0
.../service/modules/maccandroid/build.gradle | 63 +
.../modules/maccandroid}/proguard-rules.pro | 0
.../maccandroid/src/main/AndroidManifest.xml | 0
.../DiscoverAndReportMediaAppsHandler.java | 3 +-
.../main/java/com/amazon/maccandroid/Log.java | 0
.../amazon/maccandroid/MACCAndroidClient.java | 0
.../MACCAndroidClientCallback.java | 0
.../java/com/amazon/maccandroid/MediaApp.java | 0
.../MediaAppsConnectionListener.java | 0
.../MediaAppsDirectivesHandler.java | 0
.../maccandroid/MediaAppsRepository.java | 0
.../maccandroid/MediaAppsStateReporter.java | 0
.../maccandroid/MediaControllerCallback.java | 0
.../maccandroid/model/APIConstants.java | 0
.../model/Directive/AdjustSeekDirective.java | 0
.../model/Directive/Directive.java | 0
.../model/Directive/LoginDirective.java | 0
.../model/Directive/LogoutDirective.java | 0
.../model/Directive/PlayControlDirective.java | 0
.../model/Directive/PlayDirective.java | 0
.../model/Directive/SeekDirective.java | 0
.../maccandroid/model/PackageMetadata.java | 0
.../model/PlayBackStateFields.java | 0
.../maccandroid/model/PlayerEvents.java | 0
.../maccandroid/model/PlayerPlaybackInfo.java | 0
.../model/SupportedOperations.java | 0
.../model/errors/CapabilityAgentError.java | 0
.../model/errors/MediaAppPlayerError.java | 0
.../model/players/AuthorizedPlayer.java | 0
.../model/players/DiscoveredPlayer.java | 0
.../model/state/ExternalMediaPlayerState.java | 0
.../model/state/MediaAppMetaData.java | 0
.../model/state/MediaAppPlaybackState.java | 0
.../model/state/MediaAppSessionState.java | 0
...DiscoverAndReportMediaAppsHandlerTest.java | 0
.../amazon/maccandroid/ExampleUnitTest.java | 0
.../MediaAppsDirectivesHandlerTest.java | 0
.../maccandroid/MediaAppsRepositoryTest.java | 0
.../MediaControllerCallbackTest.java | 0
.../com/amazon/maccandroid/ShadowJobInfo.java | 0
.../com/amazon/maccandroid/ShadowUri.java | 0
aacs/android/service/settings.gradle | 62 +
assets/Migration-ApplicationArch.png | Bin 0 -> 52957 bytes
assets/Migration-Hybrid.png | Bin 0 -> 43317 bytes
assets/Migration-Steps.png | Bin 0 -> 132433 bytes
assets/aac_architecture.png | Bin 110217 -> 0 bytes
assets/aac_linux_integration.png | Bin 0 -> 22351 bytes
builder/.gitignore | 8 +-
builder/README.md | 596 +-
builder/build.py | 321 +
builder/build.sh | 35 -
builder/hosttools/pkg-config | 44 -
.../qnx7-pkgconfig/aarch64le/libcrypto.pc | 13 -
.../qnx7-pkgconfig/x86_64/libcrypto.pc | 13 -
.../meta-aac-builder/classes/aac-base.bbclass | 35 -
.../classes/aac-image.bbclass | 23 -
builder/meta-aac-builder/conf/conf-notes.txt | 24 -
builder/meta-aac-builder/conf/distro/aac.conf | 49 -
.../conf/distro/include/tclibc-android.inc | 14 -
.../conf/distro/include/tclibc-qnx.inc | 4 -
.../conf/distro/include/tcmode-external.inc | 8 -
builder/meta-aac-builder/conf/layer.conf | 12 -
.../meta-aac-builder/conf/local.conf.sample | 33 -
.../conf/machine/androidarm.conf | 13 -
.../conf/machine/androidarm64.conf | 14 -
.../conf/machine/androidx86-64.conf | 10 -
.../conf/machine/androidx86.conf | 9 -
.../conf/machine/include/android.inc | 96 -
.../conf/machine/include/linaro.inc | 27 -
.../conf/machine/include/poky.inc | 33 -
.../conf/machine/include/qnx7.inc | 63 -
.../conf/machine/linaroarm64.conf | 12 -
.../conf/machine/linaroarmel.conf | 7 -
.../conf/machine/linaroarmhf.conf | 12 -
.../meta-aac-builder/conf/machine/native.conf | 45 -
.../conf/machine/pokyarm.conf | 9 -
.../conf/machine/pokyarm64.conf | 9 -
.../conf/machine/qnx7arm64.conf | 13 -
.../conf/machine/qnx7x86-64.conf | 13 -
.../mbedtls/mbedtls_2.16.2.bb | 14 -
.../nghttp2/nghttp2_%.bbappend | 2 -
.../openssl/openssl_1.1.0%.bbappend | 41 -
.../recipes-core/images/aac-sdk-build.bb | 20 -
.../recipes-devtools/asio/asio_1.12.2.bb | 15 -
.../cmake/cmake-native_3.8.2.bb | 25 -
.../nlohmann/nlohmann_3.7.1.bb | 15 -
.../protobuf/protobuf_%.bbappend | 1 -
.../rapidjson/rapidjson_1.1.0.bb | 15 -
.../websocketpp/websocketpp_0.8.1.bb | 15 -
.../recipes-support/curl/curl_7.65.3.bb | 26 -
.../recipes-support/sqlite/sqlite3_%.bbappend | 7 -
.../classes/hostnativepackage.bbclass | 18 -
.../classes/python3native.bbclass | 17 -
builder/meta-aac-ubuntu/conf/layer.conf | 28 -
.../recipes-native/db/db-native.bb | 5 -
.../recipes-native/expat/expat-native.bb | 1 -
.../libarchive/libarchive-native.bb | 4 -
.../recipes-native/popt/popt-native.bb | 1 -
.../recipes-native/zlib/zlib-native.bb | 3 -
builder/meta-aac/README.md | 20 -
builder/meta-aac/classes/aac-module.bbclass | 49 -
builder/meta-aac/classes/devlibsonly.bbclass | 2 -
builder/meta-aac/classes/unittests.bbclass | 5 -
builder/meta-aac/conf/layer.conf | 25 -
builder/meta-aac/custom-licenses/ASL-1.0 | 96 -
builder/meta-aac/lib/aac/__init__.py | 59 -
.../apl-core-library/apl-core-library_git.bb | 29 -
...1-Auto-SDK-Changes-for-v1.22-AVS-SDK.patch | 7909 ------
.../avs-device-sdk/avs-device-sdk.inc | 84 -
.../avs-device-sdk/avs-device-sdk_1.22.0.bb | 10 -
...-Smart-Screen-SDK-for-Alexa-Auto-SDK.patch | 40 -
...ble-SmartScreenCapabilityAgents-test.patch | 55 -
.../smart-screen-sdk/smart-screen-sdk_git.bb | 24 -
.../nghttp2/nghttp2_1.39.1.bb | 15 -
.../googletest/googletest_1.8.0.bb | 29 -
...ude-descriptor.cc-when-building-libp.patch | 28 -
.../0001-protobuf-fix-configure-error.patch | 33 -
.../protobuf/protobuf_3.9.0.bb | 29 -
.../libopus/libopus_1.3.1.bb | 15 -
.../recipes-support/curl/curl_%.bbappend | 14 -
.../recipes-wakeword/snowboy/snowboy_1.3.0.bb | 30 -
builder/pylib/build_cmd.py | 212 +
builder/pylib/clean_cmd.py | 16 +
builder/pylib/common.py | 480 +
builder/pylib/configure_cmd.py | 13 +
builder/pylib/imports_cmd.py | 49 +
builder/scripts/Dockerfile | 67 -
builder/scripts/agreement.sh | 30 -
builder/scripts/common.sh | 23 -
builder/scripts/gen-version.sh | 68 -
builder/scripts/run-aacs-android.sh | 245 -
builder/scripts/run-bitbake.sh | 381 -
builder/scripts/run-builder.sh | 441 -
builder/scripts/run-docker.sh | 64 -
builder/scripts/run-gradle.sh | 210 -
builder/scripts/setup-android-toolchain.sh | 108 -
builder/scripts/version | 2 -
conan/config/profiles/aac-android | 13 +
conan/config/profiles/aac-linux | 6 +
conan/config/profiles/aac-macos | 5 +
conan/config/profiles/aac-mingw | 25 +
conan/config/profiles/aac-poky | 12 +
conan/config/profiles/aac-qnx | 15 +
conan/config/remotes.txt | 1 +
conan/docker/aac-ubuntu-bionic/Dockerfile | 30 +
conan/docker/aac-ubuntu-focal/Dockerfile | 20 +
conan/recipes/aac-sdk-tools/CMakeLists.txt | 61 +
conan/recipes/aac-sdk-tools/build.gradle | 66 +
.../recipes/aac-sdk-tools}/certs/09789157.0 | 0
.../recipes/aac-sdk-tools}/certs/3513523f.0 | 0
.../recipes/aac-sdk-tools}/certs/6d41d539.0 | 0
.../recipes/aac-sdk-tools}/certs/85cf5865.0 | 0
.../recipes/aac-sdk-tools}/certs/8cb5ee0f.0 | 0
.../recipes/aac-sdk-tools}/certs/b204d74a.0 | 0
.../recipes/aac-sdk-tools}/certs/ce5e74ef.0 | 0
.../recipes/aac-sdk-tools}/certs/de6d66f3.0 | 0
.../recipes/aac-sdk-tools}/certs/f387163d.0 | 0
.../cmake/001-aac-base-module.cmake | 38 +
conan/recipes/aac-sdk-tools/conanfile.py | 375 +
.../aac-sdk-tools/gradle/gradle.properties | 21 +
.../recipes/aac-sdk-tools/pylib/a2ml_build.py | 62 +
.../aac-sdk-tools/pylib/cmake_build.py | 166 +
.../recipes/aac-sdk-tools/pylib/ddl_build.py | 8 +
.../aac-sdk-tools/pylib/gradle_build.py | 84 +
conan/recipes/aac-sdk-tools/pylib/utils.py | 74 +
conan/recipes/android-sdk-tools/cmake-wrapper | 39 +
.../android-sdk-tools/cmake-wrapper.cmd | 35 +
conan/recipes/android-sdk-tools/conanfile.py | 224 +
conan/recipes/apl-core/conanfile.py | 60 +
conan/recipes/avs-device-sdk/conanfile.py | 104 +
...Auto-SDK-Changes-for-v1.25.0-AVS-SDK.patch | 5053 ++++
conan/recipes/cheetah/conanfile.py | 27 +
.../patches/fix_namemapper_warning.patch | 22 +
conan/recipes/faad2/conanfile.py | 51 +
conan/recipes/glib-networking/conanfile.py | 71 +
conan/recipes/glib/conandata.yml | 61 +
conan/recipes/glib/conanfile.py | 299 +
conan/recipes/gradle/conanfile.py | 55 +
conan/recipes/gst-plugins-bad/conandata.yml | 4 +
conan/recipes/gst-plugins-bad/conanfile.py | 121 +
.../0001-Remove-unnecessary-stuff.patch | 28 +
conan/recipes/gst-plugins-base/conandata.yml | 4 +
conan/recipes/gst-plugins-base/conanfile.py | 152 +
conan/recipes/gst-plugins-good/conandata.yml | 4 +
conan/recipes/gst-plugins-good/conanfile.py | 121 +
...ifile-test-splitmuxpartreader-link-e.patch | 31 +
...FAULT_SSL_STRICT-to-FALSE-by-default.patch | 25 +
conan/recipes/gstreamer/conandata.yml | 4 +
conan/recipes/gstreamer/conanfile.py | 147 +
conan/recipes/libcurl/all/CMakeLists.txt | 8 +
conan/recipes/libcurl/all/conandata.yml | 50 +
conan/recipes/libcurl/all/conanfile.py | 548 +
conan/recipes/libcurl/all/lib_Makefile_add.am | 24 +
...H2.cmake-add-libssh2-as-possible-nam.patch | 16 +
.../002-add-missing-file-FindZstd.patch | 72 +
...-Fix-linker-error-of-_getpid-for-QNX.patch | 25 +
conan/recipes/libcurl/config.yml | 23 +
conan/recipes/libnghttp2/all/CMakeLists.txt | 7 +
conan/recipes/libnghttp2/all/conandata.yml | 32 +
conan/recipes/libnghttp2/all/conanfile.py | 182 +
.../fix-addNghttp2IncludesPathCMake.patch | 11 +
.../all/patches/fix-findJemalloc.cmake | 14 +
.../all/patches/fix-findLibevent.cmake | 11 +
.../nghttp_static_include_directories.patch | 13 +
...tp_static_include_directories_1.42.0.patch | 12 +
conan/recipes/libnghttp2/config.yml | 7 +
conan/recipes/libsoup/conanfile.py | 68 +
conan/recipes/poky-sdk/conandata.yml | 9 +
conan/recipes/poky-sdk/conanfile.py | 173 +
conan/recipes/pyyaml/conanfile.py | 22 +
conan/recipes/qnx7-sdp/conanfile.py | 104 +
conan/recipes/qnx7-sdp/openssl/conanfile.py | 106 +
.../qnx7-sdp/qnx7_toolchain_armv8.cmake | 13 +
.../qnx7-sdp/qnx7_toolchain_x86_64.cmake | 13 +
conan/recipes/smart-screen-sdk/conanfile.py | 68 +
...-Smart-Screen-SDK-for-Alexa-Auto-SDK.patch | 54 +
...ble-SmartScreenCapabilityAgents-test.patch | 44 +
.../0003-Disable-APLClient-dependency.patch | 24 +-
.../patches/0004-Disable-GUI.patch | 25 +
.../0005-Template-runtime-version-1.2.patch | 25 +
.../0006-Ignore-template-runtime-token.patch | 32 +
conan/setup.py | 28 +
docs/android/annotated.html | 243 +-
..._1_address_book_configuration-members.html | 86 -
...config_1_1_address_book_configuration.html | 127 -
...n_1_1aace_1_1alexa_1_1_alerts-members.html | 4 +-
...1_1amazon_1_1aace_1_1alexa_1_1_alerts.html | 8 +-
...ace_1_1alexa_1_1_alexa_client-members.html | 4 +-
...zon_1_1aace_1_1alexa_1_1_alexa_client.html | 8 +-
...ce_1_1alexa_1_1_alexa_speaker-members.html | 4 +-
...on_1_1aace_1_1alexa_1_1_alexa_speaker.html | 8 +-
...ace_1_1alexa_1_1_audio_player-members.html | 4 +-
...zon_1_1aace_1_1alexa_1_1_audio_player.html | 8 +-
...ce_1_1alexa_1_1_auth_provider-members.html | 4 +-
...on_1_1aace_1_1alexa_1_1_auth_provider.html | 15 +-
...ace_1_1alexa_1_1_device_setup-members.html | 4 +-
...zon_1_1aace_1_1alexa_1_1_device_setup.html | 8 +-
...e_1_1alexa_1_1_do_not_disturb-members.html | 4 +-
...n_1_1aace_1_1alexa_1_1_do_not_disturb.html | 8 +-
...lexa_1_1_equalizer_controller-members.html | 4 +-
...ace_1_1alexa_1_1_equalizer_controller.html | 8 +-
...xa_1_1_external_media_adapter-members.html | 4 +-
...e_1_1alexa_1_1_external_media_adapter.html | 8 +-
...ce_1_1alexa_1_1_global_preset-members.html | 4 +-
...on_1_1aace_1_1alexa_1_1_global_preset.html | 9 +-
...1alexa_1_1_local_media_source-members.html | 4 +-
...1aace_1_1alexa_1_1_local_media_source.html | 18 +-
..._1_1_media_playback_requestor-members.html | 88 +
...1_1alexa_1_1_media_playback_requestor.html | 178 +
...ce_1_1alexa_1_1_notifications-members.html | 4 +-
...on_1_1aace_1_1alexa_1_1_notifications.html | 8 +-
...alexa_1_1_playback_controller-members.html | 4 +-
...aace_1_1alexa_1_1_playback_controller.html | 8 +-
..._1alexa_1_1_speech_recognizer-members.html | 4 +-
..._1aace_1_1alexa_1_1_speech_recognizer.html | 8 +-
...1alexa_1_1_speech_synthesizer-members.html | 4 +-
...1aace_1_1alexa_1_1_speech_synthesizer.html | 8 +-
...1_1alexa_1_1_template_runtime-members.html | 4 +-
...1_1aace_1_1alexa_1_1_template_runtime.html | 8 +-
...onfig_1_1_alexa_configuration-members.html | 14 +-
...exa_1_1config_1_1_alexa_configuration.html | 114 +-
...azon_1_1aace_1_1apl_1_1_a_p_l-members.html | 6 +-
...om_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html | 93 +-
...onfig_1_1_a_p_l_configuration-members.html | 4 +-
...apl_1_1config_1_1_a_p_l_configuration.html | 4 +-
...udio_1_1_audio_input_provider-members.html | 4 +-
...ace_1_1audio_1_1_audio_input_provider.html | 8 +-
...ace_1_1audio_1_1_audio_output-members.html | 29 +-
...zon_1_1aace_1_1audio_1_1_audio_output.html | 66 +-
...dio_1_1_audio_output_provider-members.html | 4 +-
...ce_1_1audio_1_1_audio_output_provider.html | 8 +-
...thorization_1_1_authorization-members.html | 4 +-
...ce_1_1authorization_1_1_authorization.html | 8 +-
..._1car_control_1_1_car_control-members.html | 4 +-
..._1aace_1_1car_control_1_1_car_control.html | 8 +-
...1_1_car_control_configuration-members.html | 4 +-
...control_1_1_car_control_configuration.html | 6 +-
...trol_configuration_1_1_action-members.html | 4 +-
..._car_control_configuration_1_1_action.html | 4 +-
...azon_1_1aace_1_1cbl_1_1_c_b_l-members.html | 4 +-
...om_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html | 23 +-
...onfig_1_1_c_b_l_configuration-members.html | 4 +-
...cbl_1_1config_1_1_c_b_l_configuration.html | 6 +-
...tivity_1_1_alexa_connectivity-members.html | 91 +
..._1connectivity_1_1_alexa_connectivity.html | 331 +
...on_1_1aace_1_1core_1_1_engine-members.html | 13 +-
..._1_1amazon_1_1aace_1_1core_1_1_engine.html | 70 +-
..._1core_1_1_platform_interface-members.html | 4 +-
..._1aace_1_1core_1_1_platform_interface.html | 4 +-
...nfig_1_1_engine_configuration-members.html | 4 +-
...re_1_1config_1_1_engine_configuration.html | 4 +-
...stom_domain_1_1_custom_domain-members.html | 90 +
...ce_1_1custom_domain_1_1_custom_domain.html | 393 +
...device_usage_1_1_device_usage-members.html | 4 +-
...aace_1_1device_usage_1_1_device_usage.html | 6 +-
...aace_1_1location_1_1_location-members.html | 4 +-
...azon_1_1aace_1_1location_1_1_location.html | 4 +-
...ocation_1_1_location_provider-members.html | 4 +-
...ace_1_1location_1_1_location_provider.html | 8 +-
..._1_1aace_1_1logger_1_1_logger-members.html | 4 +-
..._1amazon_1_1aace_1_1logger_1_1_logger.html | 8 +-
...nfig_1_1_logger_configuration-members.html | 4 +-
...er_1_1config_1_1_logger_configuration.html | 4 +-
..._1_1navigation_1_1_navigation-members.html | 4 +-
..._1_1aace_1_1navigation_1_1_navigation.html | 8 +-
..._1_1_navigation_configuration-members.html | 4 +-
..._1config_1_1_navigation_configuration.html | 4 +-
...ork_1_1_network_info_provider-members.html | 4 +-
..._1_1network_1_1_network_info_provider.html | 8 +-
...rol_1_1_phone_call_controller-members.html | 101 -
...honecontrol_1_1_phone_call_controller.html | 752 -
..._manager_1_1_property_manager-members.html | 4 +-
...property_manager_1_1_property_manager.html | 8 +-
...fig_1_1_storage_configuration-members.html | 4 +-
...e_1_1config_1_1_storage_configuration.html | 4 +-
..._to_speech_1_1_text_to_speech-members.html | 90 +
..._1_1text_to_speech_1_1_text_to_speech.html | 332 +
...fig_1_1_vehicle_configuration-members.html | 4 +-
...e_1_1config_1_1_vehicle_configuration.html | 4 +-
...android_1_1_example_unit_test-members.html | 85 -
..._1_1maccandroid_1_1_example_unit_test.html | 87 -
...id_1_1_m_a_c_c_android_client-members.html | 89 -
...accandroid_1_1_m_a_c_c_android_client.html | 190 -
...odel_1_1_player_playback_info-members.html | 85 -
...oid_1_1model_1_1_player_playback_info.html | 86 -
docs/android/classes.html | 43 +-
docs/android/deprecated.html | 116 +-
...ss_book_1_1_address_book_type-members.html | 87 -
..._1_address_book_1_1_address_book_type.html | 126 -
...xa_1_1_alerts_1_1_alert_state-members.html | 4 +-
...e_1_1alexa_1_1_alerts_1_1_alert_state.html | 4 +-
...1_alexa_client_1_1_auth_error-members.html | 4 +-
...alexa_1_1_alexa_client_1_1_auth_error.html | 4 +-
...1_alexa_client_1_1_auth_state-members.html | 4 +-
...alexa_1_1_alexa_client_1_1_auth_state.html | 4 +-
...1_1_connection_changed_reason-members.html | 4 +-
..._client_1_1_connection_changed_reason.html | 4 +-
..._client_1_1_connection_status-members.html | 4 +-
..._1_alexa_client_1_1_connection_status.html | 4 +-
...alexa_client_1_1_dialog_state-members.html | 4 +-
...exa_1_1_alexa_client_1_1_dialog_state.html | 4 +-
...lexa_speaker_1_1_speaker_type-members.html | 4 +-
...xa_1_1_alexa_speaker_1_1_speaker_type.html | 4 +-
...io_player_1_1_player_activity-members.html | 4 +-
..._1_1_audio_player_1_1_player_activity.html | 4 +-
..._auth_provider_1_1_auth_error-members.html | 4 +-
...lexa_1_1_auth_provider_1_1_auth_error.html | 4 +-
..._auth_provider_1_1_auth_state-members.html | 4 +-
...lexa_1_1_auth_provider_1_1_auth_state.html | 4 +-
..._device_setup_1_1_status_code-members.html | 4 +-
...lexa_1_1_device_setup_1_1_status_code.html | 4 +-
...controller_1_1_equalizer_band-members.html | 4 +-
...ualizer_controller_1_1_equalizer_band.html | 4 +-
...l_media_adapter_1_1_favorites-members.html | 4 +-
..._external_media_adapter_1_1_favorites.html | 4 +-
..._media_adapter_1_1_media_type-members.html | 4 +-
...external_media_adapter_1_1_media_type.html | 4 +-
..._media_adapter_1_1_navigation-members.html | 4 +-
...external_media_adapter_1_1_navigation.html | 4 +-
...adapter_1_1_play_control_type-members.html | 4 +-
...l_media_adapter_1_1_play_control_type.html | 4 +-
..._supported_playback_operation-members.html | 4 +-
...pter_1_1_supported_playback_operation.html | 4 +-
...a_source_1_1_content_selector-members.html | 4 +-
...cal_media_source_1_1_content_selector.html | 4 +-
...al_media_source_1_1_favorites-members.html | 4 +-
..._1_1_local_media_source_1_1_favorites.html | 4 +-
...l_media_source_1_1_media_type-members.html | 4 +-
...1_1_local_media_source_1_1_media_type.html | 4 +-
..._source_1_1_play_control_type-members.html | 4 +-
...al_media_source_1_1_play_control_type.html | 4 +-
...local_media_source_1_1_source-members.html | 4 +-
...exa_1_1_local_media_source_1_1_source.html | 4 +-
..._supported_playback_operation-members.html | 4 +-
...urce_1_1_supported_playback_operation.html | 4 +-
...questor_1_1_invocation_reason-members.html | 87 +
...yback_requestor_1_1_invocation_reason.html | 126 +
...media_playback_request_status-members.html | 89 +
...tor_1_1_media_playback_request_status.html | 160 +
...fications_1_1_indicator_state-members.html | 4 +-
...1_1_notifications_1_1_indicator_state.html | 4 +-
...ontroller_1_1_playback_button-members.html | 4 +-
...ayback_controller_1_1_playback_button.html | 4 +-
...ontroller_1_1_playback_toggle-members.html | 4 +-
...ayback_controller_1_1_playback_toggle.html | 4 +-
...eech_recognizer_1_1_initiator-members.html | 4 +-
...a_1_1_speech_recognizer_1_1_initiator.html | 4 +-
...plate_runtime_1_1_focus_state-members.html | 4 +-
..._1_1_template_runtime_1_1_focus_state.html | 4 +-
...e_runtime_1_1_player_activity-members.html | 4 +-
..._template_runtime_1_1_player_activity.html | 4 +-
..._1_1_a_p_l_1_1_activity_event-members.html | 4 +-
...e_1_1apl_1_1_a_p_l_1_1_activity_event.html | 4 +-
...1_1_audio_format_1_1_encoding-members.html | 4 +-
..._1audio_1_1_audio_format_1_1_encoding.html | 4 +-
...provider_1_1_audio_input_type-members.html | 4 +-
...o_input_provider_1_1_audio_input_type.html | 4 +-
...audio_output_1_1_focus_action-members.html | 87 +
...dio_1_1_audio_output_1_1_focus_action.html | 126 +
..._audio_output_1_1_media_error-members.html | 4 +-
...udio_1_1_audio_output_1_1_media_error.html | 4 +-
..._audio_output_1_1_media_state-members.html | 4 +-
...udio_1_1_audio_output_1_1_media_state.html | 4 +-
..._audio_output_1_1_muted_state-members.html | 4 +-
...udio_1_1_audio_output_1_1_muted_state.html | 4 +-
...rovider_1_1_audio_output_type-members.html | 4 +-
...output_provider_1_1_audio_output_type.html | 4 +-
...1_1_audio_stream_1_1_encoding-members.html | 4 +-
..._1audio_1_1_audio_stream_1_1_encoding.html | 4 +-
...ation_1_1_authorization_state-members.html | 4 +-
...authorization_1_1_authorization_state.html | 4 +-
...t_server_1_1_connection_state-members.html | 85 +
...1_g_a_t_t_server_1_1_connection_state.html | 87 +
...cbl_1_1_c_b_l_1_1_c_b_l_state-members.html | 4 +-
...aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html | 4 +-
..._1_c_b_l_state_changed_reason-members.html | 4 +-
..._c_b_l_1_1_c_b_l_state_changed_reason.html | 4 +-
..._connectivity_1_1_status_code-members.html | 87 +
..._1_alexa_connectivity_1_1_status_code.html | 126 +
...e_1_1_message_stream_1_1_mode-members.html | 85 +
...e_1_1core_1_1_message_stream_1_1_mode.html | 89 +
...custom_domain_1_1_result_type-members.html | 89 +
...ain_1_1_custom_domain_1_1_result_type.html | 160 +
...r_1_1_location_service_access-members.html | 4 +-
..._provider_1_1_location_service_access.html | 4 +-
..._1logger_1_1_logger_1_1_level-members.html | 4 +-
..._1aace_1_1logger_1_1_logger_1_1_level.html | 4 +-
...o_provider_1_1_network_status-members.html | 4 +-
...work_info_provider_1_1_network_status.html | 4 +-
...all_controller_1_1_call_error-members.html | 90 -
..._phone_call_controller_1_1_call_error.html | 178 -
...all_controller_1_1_call_state-members.html | 91 -
..._phone_call_controller_1_1_call_state.html | 203 -
...device_configuration_property-members.html | 86 -
...calling_device_configuration_property.html | 109 -
...ntroller_1_1_connection_state-members.html | 87 -
..._call_controller_1_1_connection_state.html | 127 -
..._controller_1_1_d_t_m_f_error-members.html | 87 -
...one_call_controller_1_1_d_t_m_f_error.html | 127 -
...ty_manager_1_1_property_state-members.html | 4 +-
...1_property_manager_1_1_property_state.html | 4 +-
...ion_1_1_vehicle_property_type-members.html | 4 +-
...nfiguration_1_1_vehicle_property_type.html | 4 +-
docs/android/functions.html | 206 +-
docs/android/functions_func.html | 142 +-
docs/android/functions_vars.html | 80 +-
docs/android/hierarchy.html | 196 +-
docs/android/index.html | 4 +-
docs/android/menudata.js | 1 +
docs/android/pages.html | 4 +-
docs/android/search/all_0.js | 6 +-
docs/android/search/all_1.js | 1 -
docs/android/search/all_10.js | 1 +
docs/android/search/all_11.js | 3 +
docs/android/search/all_2.js | 28 +-
docs/android/search/all_3.js | 10 +-
docs/android/search/all_4.js | 6 +-
docs/android/search/all_5.js | 7 +-
docs/android/search/all_6.js | 7 +-
docs/android/search/all_7.js | 2 +-
docs/android/search/all_8.js | 7 +-
docs/android/search/all_a.js | 6 +-
docs/android/search/all_b.js | 5 +-
docs/android/search/all_c.js | 4 +-
docs/android/search/all_d.js | 9 +-
docs/android/search/all_e.js | 10 +-
docs/android/search/all_f.js | 19 +-
docs/android/search/classes_0.js | 3 +-
docs/android/search/classes_1.js | 8 +-
docs/android/search/classes_2.js | 3 +-
docs/android/search/classes_3.js | 3 +-
docs/android/search/classes_4.js | 3 +-
docs/android/search/classes_6.js | 3 +-
docs/android/search/classes_8.js | 4 +-
docs/android/search/classes_9.js | 2 +-
docs/android/search/classes_a.js | 4 +-
docs/android/search/classes_b.js | 8 +-
docs/android/search/classes_c.js | 8 +-
docs/android/search/classes_d.js | 4 +-
docs/android/search/classes_e.html | 26 +
docs/android/search/classes_e.js | 5 +
docs/android/search/functions_0.js | 1 -
docs/android/search/functions_10.js | 3 +-
docs/android/search/functions_11.js | 3 +-
docs/android/search/functions_12.html | 26 +
docs/android/search/functions_12.js | 4 +
docs/android/search/functions_2.js | 15 +-
docs/android/search/functions_3.js | 2 -
docs/android/search/functions_5.js | 7 +-
docs/android/search/functions_6.js | 2 +-
docs/android/search/functions_7.js | 1 -
docs/android/search/functions_9.js | 2 +
docs/android/search/functions_b.js | 1 -
docs/android/search/functions_c.js | 3 +
docs/android/search/functions_d.js | 5 +-
docs/android/search/functions_e.js | 13 +-
docs/android/search/searchdata.js | 4 +-
docs/android/search/variables_0.js | 4 +-
docs/android/search/variables_1.js | 3 +-
docs/android/search/variables_11.js | 2 +
docs/android/search/variables_2.js | 5 +-
docs/android/search/variables_3.js | 7 +-
docs/android/search/variables_4.js | 5 +-
docs/android/search/variables_5.js | 4 +-
docs/android/search/variables_8.js | 5 +-
docs/android/search/variables_b.js | 4 -
docs/android/search/variables_c.js | 3 +-
docs/android/search/variables_e.js | 2 +
docs/android/search/variables_f.js | 2 +-
docs/cpp/_a_p_l_8h_source.html | 8 +-
docs/cpp/_a_p_l_configuration_8h_source.html | 4 +-
.../_a_p_l_engine_interface_8h_source.html | 6 +-
docs/cpp/_address_book_8h_source.html | 12 +-
..._address_book_configuration_8h_source.html | 4 +-
...dress_book_engine_interface_8h_source.html | 6 +-
docs/cpp/_alerts_8h_source.html | 10 +-
docs/cpp/_alexa_client_8h_source.html | 24 +-
docs/cpp/_alexa_configuration_8h_source.html | 19 +-
docs/cpp/_alexa_connectivity_8h_source.html | 90 +
...nnectivity_engine_interface_8h_source.html | 83 +
.../_alexa_engine_interfaces_8h_source.html | 62 +-
docs/cpp/_alexa_properties_8h_source.html | 4 +-
docs/cpp/_alexa_speaker_8h_source.html | 10 +-
.../_audio_engine_interfaces_8h_source.html | 6 +-
docs/cpp/_audio_format_8h_source.html | 6 +-
docs/cpp/_audio_input_8h_source.html | 4 +-
docs/cpp/_audio_input_provider_8h_source.html | 7 +-
docs/cpp/_audio_output_8h_source.html | 12 +-
.../cpp/_audio_output_provider_8h_source.html | 7 +-
docs/cpp/_audio_player_8h_source.html | 12 +-
docs/cpp/_audio_stream_8h_source.html | 4 +-
docs/cpp/_auth_provider_8h_source.html | 14 +-
docs/cpp/_authorization_8h_source.html | 8 +-
...horization_engine_interface_8h_source.html | 4 +-
...bluetooth_engine_interfaces_8h_source.html | 83 +
docs/cpp/_bluetooth_provider_8h_source.html | 88 +
.../_bluetooth_server_socket_8h_source.html | 83 +
docs/cpp/_bluetooth_socket_8h_source.html | 83 +
docs/cpp/_byte_array_8h_source.html | 83 +
docs/cpp/_c_b_l_8h_source.html | 12 +-
docs/cpp/_c_b_l_configuration_8h_source.html | 4 +-
.../_c_b_l_engine_interface_8h_source.html | 6 +-
docs/cpp/_car_control_8h_source.html | 8 +-
docs/cpp/_car_control_assets_8h_source.html | 4 +-
.../_car_control_configuration_8h_source.html | 4 +-
docs/cpp/_core_properties_8h_source.html | 4 +-
docs/cpp/_device_setup_8h_source.html | 12 +-
docs/cpp/_device_usage_8h_source.html | 4 +-
...ice_usage_engine_interfaces_8h_source.html | 6 +-
docs/cpp/_do_not_disturb_8h_source.html | 8 +-
docs/cpp/_engine_8h_source.html | 9 +-
docs/cpp/_engine_configuration_8h_source.html | 4 +-
docs/cpp/_equalizer_controller_8h_source.html | 14 +-
.../_external_media_adapter_8h_source.html | 161 +-
docs/cpp/_focus_state_8h_source.html | 4 +-
docs/cpp/_g_a_t_t_server_8h_source.html | 83 +
docs/cpp/_global_preset_8h_source.html | 6 +-
docs/cpp/_local_media_source_8h_source.html | 94 +-
docs/cpp/_location_8h_source.html | 4 +-
docs/cpp/_location_provider_8h_source.html | 10 +-
...n_provider_engine_interface_8h_source.html | 8 +-
docs/cpp/_logger_8h_source.html | 8 +-
docs/cpp/_logger_configuration_8h_source.html | 6 +-
.../_logger_engine_interfaces_8h_source.html | 8 +-
.../_media_playback_requestor_8h_source.html | 95 +
docs/cpp/_message_broker_8h_source.html | 87 +
docs/cpp/_message_stream_8h_source.html | 83 +
docs/cpp/_metrics_uploader_8h_source.html | 12 +-
docs/cpp/_navigation_8h_source.html | 6 +-
.../_navigation_configuration_8h_source.html | 4 +-
...avigation_engine_interfaces_8h_source.html | 6 +-
.../_network_engine_interfaces_8h_source.html | 8 +-
.../cpp/_network_info_provider_8h_source.html | 10 +-
docs/cpp/_network_properties_8h_source.html | 6 +-
docs/cpp/_notifications_8h_source.html | 10 +-
.../cpp/_phone_call_controller_8h_source.html | 18 +-
...ontroller_engine_interfaces_8h_source.html | 16 +-
docs/cpp/_platform_interface_8h_source.html | 4 +-
docs/cpp/_playback_controller_8h_source.html | 10 +-
docs/cpp/_player_activity_8h_source.html | 4 +-
docs/cpp/_property_manager_8h_source.html | 8 +-
...ty_manager_engine_interface_8h_source.html | 6 +-
docs/cpp/_speech_recognizer_8h_source.html | 10 +-
docs/cpp/_speech_synthesizer_8h_source.html | 8 +-
.../cpp/_storage_configuration_8h_source.html | 4 +-
docs/cpp/_template_runtime_8h_source.html | 6 +-
docs/cpp/_text_to_speech_8h_source.html | 90 +
..._to_speech_engine_interface_8h_source.html | 83 +
.../cpp/_vehicle_configuration_8h_source.html | 4 +-
docs/cpp/_vehicle_properties_8h_source.html | 4 +-
docs/cpp/annotated.html | 208 +-
...address_book_1_1_address_book-members.html | 88 +
...aace_1_1address_book_1_1_address_book.html | 220 +
..._address_book_entries_factory-members.html | 6 +-
...ok_1_1_i_address_book_entries_factory.html | 18 +-
..._1_address_book_configuration-members.html | 4 +-
...config_1_1_address_book_configuration.html | 4 +-
...classaace_1_1alexa_1_1_alerts-members.html | 4 +-
docs/cpp/classaace_1_1alexa_1_1_alerts.html | 8 +-
...a_1_1_alerts_engine_interface-members.html | 4 +-
..._1_1alexa_1_1_alerts_engine_interface.html | 4 +-
...ace_1_1alexa_1_1_alexa_client-members.html | 4 +-
.../classaace_1_1alexa_1_1_alexa_client.html | 8 +-
...alexa_client_engine_interface-members.html | 4 +-
...exa_1_1_alexa_client_engine_interface.html | 4 +-
...ce_1_1alexa_1_1_alexa_speaker-members.html | 4 +-
.../classaace_1_1alexa_1_1_alexa_speaker.html | 8 +-
...lexa_speaker_engine_interface-members.html | 4 +-
...xa_1_1_alexa_speaker_engine_interface.html | 4 +-
...ace_1_1alexa_1_1_audio_player-members.html | 4 +-
.../classaace_1_1alexa_1_1_audio_player.html | 8 +-
...audio_player_engine_interface-members.html | 4 +-
...exa_1_1_audio_player_engine_interface.html | 4 +-
...ce_1_1alexa_1_1_auth_provider-members.html | 4 +-
.../classaace_1_1alexa_1_1_auth_provider.html | 19 +-
...uth_provider_engine_interface-members.html | 4 +-
...xa_1_1_auth_provider_engine_interface.html | 4 +-
...ace_1_1alexa_1_1_device_setup-members.html | 4 +-
.../classaace_1_1alexa_1_1_device_setup.html | 8 +-
...device_setup_engine_interface-members.html | 4 +-
...exa_1_1_device_setup_engine_interface.html | 4 +-
...e_1_1alexa_1_1_do_not_disturb-members.html | 4 +-
...classaace_1_1alexa_1_1_do_not_disturb.html | 8 +-
..._not_disturb_engine_interface-members.html | 4 +-
...a_1_1_do_not_disturb_engine_interface.html | 4 +-
...lexa_1_1_equalizer_controller-members.html | 4 +-
...ace_1_1alexa_1_1_equalizer_controller.html | 8 +-
...r_controller_engine_interface-members.html | 4 +-
...equalizer_controller_engine_interface.html | 4 +-
...xa_1_1_external_media_adapter-members.html | 109 +
...e_1_1alexa_1_1_external_media_adapter.html | 1267 +
...er_1_1_authorized_player_info-members.html | 6 +-
...ia_adapter_1_1_authorized_player_info.html | 6 +-
..._external_media_adapter_state-members.html | 6 +-
...pter_1_1_external_media_adapter_state.html | 6 +-
...ia_adapter_1_1_playback_state-members.html | 6 +-
...rnal_media_adapter_1_1_playback_state.html | 12 +-
...dia_adapter_1_1_session_state-members.html | 6 +-
...ernal_media_adapter_1_1_session_state.html | 6 +-
...edia_adapter_engine_interface-members.html | 4 +-
...ternal_media_adapter_engine_interface.html | 4 +-
...ce_1_1_discovered_player_info-members.html | 4 +-
..._interface_1_1_discovered_player_info.html | 4 +-
...ce_1_1alexa_1_1_global_preset-members.html | 4 +-
.../classaace_1_1alexa_1_1_global_preset.html | 9 +-
...1alexa_1_1_local_media_source-members.html | 4 +-
...saace_1_1alexa_1_1_local_media_source.html | 20 +-
..._1_1_local_media_source_state-members.html | 4 +-
...a_source_1_1_local_media_source_state.html | 4 +-
...dia_source_1_1_playback_state-members.html | 4 +-
...local_media_source_1_1_playback_state.html | 10 +-
...edia_source_1_1_session_state-members.html | 4 +-
..._local_media_source_1_1_session_state.html | 4 +-
...media_source_engine_interface-members.html | 4 +-
...1_local_media_source_engine_interface.html | 4 +-
..._1_1_media_playback_requestor-members.html | 87 +
...1_1alexa_1_1_media_playback_requestor.html | 159 +
...ck_requestor_engine_interface-members.html | 87 +
...a_playback_requestor_engine_interface.html | 173 +
...ce_1_1alexa_1_1_notifications-members.html | 4 +-
.../classaace_1_1alexa_1_1_notifications.html | 8 +-
...alexa_1_1_playback_controller-members.html | 4 +-
...aace_1_1alexa_1_1_playback_controller.html | 8 +-
...k_controller_engine_interface-members.html | 4 +-
..._playback_controller_engine_interface.html | 4 +-
..._1alexa_1_1_speech_recognizer-members.html | 4 +-
...ssaace_1_1alexa_1_1_speech_recognizer.html | 8 +-
...h_recognizer_engine_interface-members.html | 4 +-
..._1_speech_recognizer_engine_interface.html | 4 +-
...1alexa_1_1_speech_synthesizer-members.html | 4 +-
...saace_1_1alexa_1_1_speech_synthesizer.html | 8 +-
...1_1alexa_1_1_template_runtime-members.html | 4 +-
...assaace_1_1alexa_1_1_template_runtime.html | 8 +-
...late_runtime_engine_interface-members.html | 4 +-
...1_1_template_runtime_engine_interface.html | 4 +-
...onfig_1_1_alexa_configuration-members.html | 33 +-
...exa_1_1config_1_1_alexa_configuration.html | 64 +-
.../classaace_1_1apl_1_1_a_p_l-members.html | 6 +-
docs/cpp/classaace_1_1apl_1_1_a_p_l.html | 104 +-
...onfig_1_1_a_p_l_configuration-members.html | 4 +-
...apl_1_1config_1_1_a_p_l_configuration.html | 4 +-
...udio_1_1_audio_input_provider-members.html | 85 +
...ace_1_1audio_1_1_audio_input_provider.html | 87 +
...ace_1_1audio_1_1_audio_output-members.html | 37 +-
.../classaace_1_1audio_1_1_audio_output.html | 132 +-
...dio_1_1_audio_output_provider-members.html | 85 +
...ce_1_1audio_1_1_audio_output_provider.html | 87 +
...dio_1_1_audio_stream_property-members.html | 4 +-
...ce_1_1audio_1_1_audio_stream_property.html | 4 +-
...thorization_1_1_authorization-members.html | 4 +-
...ce_1_1authorization_1_1_authorization.html | 8 +-
...uthorization_engine_interface-members.html | 4 +-
...on_1_1_authorization_engine_interface.html | 4 +-
...etooth_1_1_bluetooth_provider-members.html | 88 +
...e_1_1bluetooth_1_1_bluetooth_provider.html | 204 +
..._1car_control_1_1_car_control-members.html | 4 +-
...ssaace_1_1car_control_1_1_car_control.html | 8 +-
...1_1_car_control_configuration-members.html | 4 +-
...1config_1_1_car_control_configuration.html | 6 +-
.../classaace_1_1cbl_1_1_c_b_l-members.html | 4 +-
docs/cpp/classaace_1_1cbl_1_1_c_b_l.html | 27 +-
...onfig_1_1_c_b_l_configuration-members.html | 4 +-
...cbl_1_1config_1_1_c_b_l_configuration.html | 6 +-
...tivity_1_1_alexa_connectivity-members.html | 91 +
..._1connectivity_1_1_alexa_connectivity.html | 324 +
.../classaace_1_1core_1_1_engine-members.html | 15 +-
docs/cpp/classaace_1_1core_1_1_engine.html | 32 +-
...ce_1_1core_1_1_message_broker-members.html | 88 +
.../classaace_1_1core_1_1_message_broker.html | 226 +
..._1core_1_1_platform_interface-members.html | 4 +-
...ssaace_1_1core_1_1_platform_interface.html | 4 +-
...config_1_1_configuration_file-members.html | 4 +-
...core_1_1config_1_1_configuration_file.html | 4 +-
...nfig_1_1_engine_configuration-members.html | 4 +-
...re_1_1config_1_1_engine_configuration.html | 4 +-
...nfig_1_1_stream_configuration-members.html | 4 +-
...re_1_1config_1_1_stream_configuration.html | 4 +-
...device_usage_1_1_device_usage-members.html | 4 +-
...aace_1_1device_usage_1_1_device_usage.html | 6 +-
...device_usage_engine_interface-members.html | 4 +-
...age_1_1_device_usage_engine_interface.html | 4 +-
...aace_1_1location_1_1_location-members.html | 4 +-
.../classaace_1_1location_1_1_location.html | 4 +-
...ocation_1_1_location_provider-members.html | 4 +-
...ace_1_1location_1_1_location_provider.html | 8 +-
...ion_provider_engine_interface-members.html | 4 +-
..._1_location_provider_engine_interface.html | 4 +-
...lassaace_1_1logger_1_1_logger-members.html | 4 +-
docs/cpp/classaace_1_1logger_1_1_logger.html | 8 +-
...r_1_1_logger_engine_interface-members.html | 4 +-
...1_1logger_1_1_logger_engine_interface.html | 4 +-
...nfig_1_1_logger_configuration-members.html | 4 +-
...er_1_1config_1_1_logger_configuration.html | 4 +-
...1metrics_1_1_metrics_uploader-members.html | 4 +-
...saace_1_1metrics_1_1_metrics_uploader.html | 8 +-
...etrics_uploader_1_1_datapoint-members.html | 4 +-
...cs_1_1_metrics_uploader_1_1_datapoint.html | 4 +-
..._1_1navigation_1_1_navigation-members.html | 4 +-
...lassaace_1_1navigation_1_1_navigation.html | 8 +-
..._1_1_navigation_configuration-members.html | 4 +-
..._1config_1_1_navigation_configuration.html | 4 +-
...ork_1_1_network_info_provider-members.html | 4 +-
..._1_1network_1_1_network_info_provider.html | 8 +-
...nfo_provider_engine_interface-members.html | 4 +-
...etwork_info_provider_engine_interface.html | 4 +-
...ler_1_1_phone_call_controller-members.html | 4 +-
..._controller_1_1_phone_call_controller.html | 8 +-
...l_controller_engine_interface-members.html | 4 +-
...hone_call_controller_engine_interface.html | 4 +-
..._manager_1_1_property_manager-members.html | 4 +-
...property_manager_1_1_property_manager.html | 8 +-
...fig_1_1_storage_configuration-members.html | 4 +-
...e_1_1config_1_1_storage_configuration.html | 4 +-
..._to_speech_1_1_text_to_speech-members.html | 90 +
..._1_1text_to_speech_1_1_text_to_speech.html | 336 +
...fig_1_1_vehicle_configuration-members.html | 4 +-
...e_1_1config_1_1_vehicle_configuration.html | 4 +-
docs/cpp/classes.html | 23 +-
docs/cpp/deprecated.html | 130 +-
docs/cpp/functions.html | 180 +-
docs/cpp/functions_enum.html | 29 +-
docs/cpp/functions_func.html | 157 +-
docs/cpp/functions_type.html | 10 +-
docs/cpp/functions_vars.html | 4 +-
docs/cpp/hierarchy.html | 94 +-
docs/cpp/index.html | 4 +-
docs/cpp/menudata.js | 2 +
docs/cpp/namespaceaace.html | 4 +-
docs/cpp/namespaceaace_1_1alexa.html | 124 +-
...ce_1_1car_control_1_1config_1_1action.html | 4 +-
docs/cpp/namespacemembers.html | 10 +-
docs/cpp/namespacemembers_enum.html | 4 +-
docs/cpp/namespacemembers_func.html | 10 +-
docs/cpp/pages.html | 4 +-
docs/cpp/search/all_0.js | 12 +-
docs/cpp/search/all_1.js | 1 +
docs/cpp/search/all_10.js | 2 +
docs/cpp/search/all_11.js | 3 +
docs/cpp/search/all_12.js | 2 +-
docs/cpp/search/all_2.js | 7 +-
docs/cpp/search/all_3.js | 4 +-
docs/cpp/search/all_4.js | 7 +-
docs/cpp/search/all_5.js | 10 +-
docs/cpp/search/all_6.js | 8 +-
docs/cpp/search/all_8.js | 2 +
docs/cpp/search/all_9.js | 7 +-
docs/cpp/search/all_a.js | 13 +-
docs/cpp/search/all_b.js | 7 +-
docs/cpp/search/all_c.js | 5 +-
docs/cpp/search/all_d.js | 23 +-
docs/cpp/search/all_e.js | 7 +-
docs/cpp/search/all_f.js | 23 +-
docs/cpp/search/classes_0.js | 4 +
docs/cpp/search/classes_1.js | 6 +-
docs/cpp/search/classes_2.js | 13 +-
docs/cpp/search/classes_3.js | 14 +-
docs/cpp/search/classes_4.js | 8 +-
docs/cpp/search/classes_5.js | 2 +-
docs/cpp/search/classes_6.js | 10 +-
docs/cpp/search/classes_7.js | 10 +-
docs/cpp/search/classes_8.js | 9 +-
docs/cpp/search/classes_9.js | 12 +-
docs/cpp/search/classes_a.js | 13 +-
docs/cpp/search/classes_b.js | 8 +-
docs/cpp/search/classes_c.js | 4 +-
docs/cpp/search/classes_d.html | 26 +
docs/cpp/search/classes_d.js | 4 +
docs/cpp/search/enums_4.js | 1 +
docs/cpp/search/enums_5.js | 3 +-
docs/cpp/search/enums_7.js | 2 +
docs/cpp/search/enums_8.js | 1 +
docs/cpp/search/enums_9.js | 1 +
docs/cpp/search/enums_a.js | 3 +-
docs/cpp/search/enumvalues_0.js | 5 +-
docs/cpp/search/enumvalues_10.js | 1 +
docs/cpp/search/enumvalues_11.js | 2 +
docs/cpp/search/enumvalues_3.js | 4 +-
docs/cpp/search/enumvalues_4.js | 8 +-
docs/cpp/search/enumvalues_5.js | 7 +-
docs/cpp/search/enumvalues_b.js | 5 +-
docs/cpp/search/enumvalues_c.js | 2 +-
docs/cpp/search/enumvalues_d.js | 7 +-
docs/cpp/search/enumvalues_e.js | 4 +-
docs/cpp/search/enumvalues_f.js | 7 +-
docs/cpp/search/functions_0.js | 5 +-
docs/cpp/search/functions_10.js | 2 +-
docs/cpp/search/functions_11.js | 2 +-
docs/cpp/search/functions_12.js | 3 +-
docs/cpp/search/functions_13.html | 26 +
docs/cpp/search/functions_13.js | 5 +
docs/cpp/search/functions_2.js | 7 +-
docs/cpp/search/functions_5.js | 8 +-
docs/cpp/search/functions_7.js | 1 +
docs/cpp/search/functions_8.js | 7 +-
docs/cpp/search/functions_9.js | 5 +-
docs/cpp/search/functions_b.js | 3 +-
docs/cpp/search/functions_c.js | 14 +-
docs/cpp/search/functions_d.js | 4 +
docs/cpp/search/functions_e.js | 11 +-
docs/cpp/search/searchdata.js | 6 +-
docs/cpp/search/typedefs_4.js | 1 +
docs/cpp/search/typedefs_a.js | 2 +-
docs/cpp/search/typedefs_b.js | 2 +-
docs/cpp/search/typedefs_c.html | 26 +
docs/cpp/search/typedefs_c.js | 4 +
docs/sdk-docs/404.html | 3955 +++
docs/sdk-docs/BUILDING/index.html | 5235 ++++
docs/sdk-docs/CHANGELOG/index.html | 7371 ++++++
docs/sdk-docs/CODE_OF_CONDUCT/index.html | 4075 +++
docs/sdk-docs/CONTRIBUTING/index.html | 4146 +++
docs/sdk-docs/GETSTARTED/index.html | 4179 ++++
docs/sdk-docs/LINUX_INTEGRATION/index.html | 4269 ++++
docs/sdk-docs/MIGRATION/index.html | 5733 +++++
.../index.html | 4471 ++++
docs/sdk-docs/NEED_HELP/index.html | 4207 ++++
docs/sdk-docs/SDK_MODULES/index.html | 4510 ++++
docs/sdk-docs/SECURITY/index.html | 4074 +++
docs/sdk-docs/SEQUENCE_DIAGRAMS/index.html | 4080 +++
.../app-components/alexa-auto-apis/index.html | 4086 +++
.../alexa-auto-apl-renderer/index.html | 4229 ++++
.../modules/apl-render/index.html | 4450 ++++
.../alexa-auto-apps-common-ui/index.html | 4025 +++
.../alexa-auto-apps-common-util/index.html | 4032 +++
.../assets/set-fan-speed-to-3.png | Bin 0 -> 39442 bytes
.../assets/set-fan-speed-to-3.puml | 27 +
.../assets/set-reply-to-engine.png | Bin 0 -> 27595 bytes
.../assets/set-reply-to-engine.puml | 23 +
.../alexa-auto-carcontrol/index.html | 4292 ++++
.../alexa-auto-comms-ui/index.html | 4067 +++
.../assets/contactsLib-add.png | Bin 0 -> 77449 bytes
.../assets/contactsLib-add.puml | 35 +
.../assets/contactsLib-remove.png | Bin 0 -> 77267 bytes
.../assets/contactsLib-remove.puml | 35 +
.../alexa-auto-contacts/index.html | 4248 ++++
.../alexa-auto-device-usage/index.html | 4088 +++
.../alexa-auto-lwa-auth/index.html | 4027 +++
.../alexa-auto-media-player/index.html | 4148 +++
.../alexa-auto-navigation/index.html | 4040 +++
.../alexa-auto-settings/index.html | 4052 +++
.../alexa-auto-setup/index.html | 4098 +++
.../assets/AACSTelephony_initiateCall.png | Bin 0 -> 30260 bytes
.../assets/AACSTelephony_initiateCall.puml | 21 +
.../alexa-auto-telephony/index.html | 4352 ++++
.../index.html | 4054 +++
.../alexa-auto-tts/assets/Android_TTS.png | Bin 0 -> 99471 bytes
.../alexa-auto-tts/assets/Android_TTS.xml | 1 +
.../app-components/alexa-auto-tts/index.html | 4281 ++++
.../alexa-auto-ux-restrictions/index.html | 4030 +++
.../alexa-auto-voice-interaction/index.html | 4031 +++
.../alexa-auto-voice-ui/index.html | 4048 +++
.../aacs/android/assets/AACSArchDetailed.png | Bin 0 -> 128039 bytes
.../aacs/android/assets/AACSInit.puml | 48 +
.../aacs/android/assets/AACSInitFlow.png | Bin 0 -> 86745 bytes
.../aacs/android/assets/AACSWakeword.png | Bin 0 -> 226421 bytes
.../aacs/android/assets/AACSWakeword.puml | 28 +
.../aacs/android/assets/AACS_CBLLogin.png | Bin 0 -> 86098 bytes
.../aacs/android/assets/AACS_CBLLogin.puml | 55 +
docs/sdk-docs/aacs/android/assets/APCP.png | Bin 0 -> 297074 bytes
docs/sdk-docs/aacs/android/assets/config.json | 105 +
.../android/common/commonutils/index.html | 4056 +++
.../aacs/android/common/ipc/index.html | 4247 ++++
docs/sdk-docs/aacs/android/index.html | 5061 ++++
.../assets/AACSSampleAppArch.png | Bin 0 -> 152170 bytes
.../AACSSampleAppComponentDiagram.drawio | 1 +
.../assets/AACSSampleAppComponentDiagram.png | Bin 0 -> 150420 bytes
.../aacs/android/sample-app/index.html | 4763 ++++
.../amazon/alexaautoclientservice/index.html | 4113 +++
docs/sdk-docs/aacs/android/service/index.html | 4606 ++++
.../assets/Migration-ApplicationArch.png | Bin 0 -> 52957 bytes
docs/sdk-docs/assets/Migration-Hybrid.png | Bin 0 -> 43317 bytes
docs/sdk-docs/assets/Migration-Steps.png | Bin 0 -> 132433 bytes
docs/sdk-docs/assets/aac-seq-ttt.plantuml | 73 +
docs/sdk-docs/assets/aac-seq-ttt.png | Bin 0 -> 60400 bytes
docs/sdk-docs/assets/aac-seq-wwe.plantuml | 98 +
docs/sdk-docs/assets/aac-seq-wwe.png | Bin 0 -> 78705 bytes
.../sdk-docs/assets/aac_linux_integration.png | Bin 0 -> 22351 bytes
docs/sdk-docs/assets/images/favicon.png | Bin 0 -> 1870 bytes
.../assets/javascripts/bundle.a5f8ea78.min.js | 29 +
.../javascripts/bundle.a5f8ea78.min.js.map | 8 +
.../javascripts/lunr/min/lunr.ar.min.js | 1 +
.../javascripts/lunr/min/lunr.da.min.js | 18 +
.../javascripts/lunr/min/lunr.de.min.js | 18 +
.../javascripts/lunr/min/lunr.du.min.js | 18 +
.../javascripts/lunr/min/lunr.es.min.js | 18 +
.../javascripts/lunr/min/lunr.fi.min.js | 18 +
.../javascripts/lunr/min/lunr.fr.min.js | 18 +
.../javascripts/lunr/min/lunr.hi.min.js | 1 +
.../javascripts/lunr/min/lunr.hu.min.js | 18 +
.../javascripts/lunr/min/lunr.it.min.js | 18 +
.../javascripts/lunr/min/lunr.ja.min.js | 1 +
.../javascripts/lunr/min/lunr.jp.min.js | 1 +
.../javascripts/lunr/min/lunr.multi.min.js | 1 +
.../javascripts/lunr/min/lunr.nl.min.js | 18 +
.../javascripts/lunr/min/lunr.no.min.js | 18 +
.../javascripts/lunr/min/lunr.pt.min.js | 18 +
.../javascripts/lunr/min/lunr.ro.min.js | 18 +
.../javascripts/lunr/min/lunr.ru.min.js | 18 +
.../lunr/min/lunr.stemmer.support.min.js | 1 +
.../javascripts/lunr/min/lunr.sv.min.js | 18 +
.../javascripts/lunr/min/lunr.th.min.js | 1 +
.../javascripts/lunr/min/lunr.tr.min.js | 18 +
.../javascripts/lunr/min/lunr.vi.min.js | 1 +
.../javascripts/lunr/min/lunr.zh.min.js | 1 +
.../assets/javascripts/lunr/tinyseg.js | 206 +
.../assets/javascripts/lunr/wordcut.js | 6708 +++++
.../workers/search.cefbb252.min.js | 48 +
.../workers/search.cefbb252.min.js.map | 8 +
docs/sdk-docs/assets/number-1.png | Bin 0 -> 827 bytes
docs/sdk-docs/assets/number-2.png | Bin 0 -> 923 bytes
docs/sdk-docs/assets/number-3.png | Bin 0 -> 908 bytes
docs/sdk-docs/assets/number-4.png | Bin 0 -> 906 bytes
docs/sdk-docs/assets/number-5.png | Bin 0 -> 908 bytes
docs/sdk-docs/assets/number-6.png | Bin 0 -> 905 bytes
.../assets/stylesheets/main.a617204b.min.css | 2 +
.../stylesheets/main.a617204b.min.css.map | 1 +
.../stylesheets/palette.9204c3b2.min.css | 2 +
.../stylesheets/palette.9204c3b2.min.css.map | 1 +
docs/sdk-docs/builder/index.html | 4321 ++++
docs/sdk-docs/index.html | 4287 ++++
docs/sdk-docs/logo.png | Bin 0 -> 2355 bytes
.../modules/aasb/aasb-docs/AASB/index.html | 4203 ++++
.../aasb-docs/AddressBook/index.html | 5212 ++++
.../assets/remove_contacts.plantuml | 36 +
.../address-book/assets/remove_contacts.png | Bin 0 -> 20029 bytes
.../assets/remove_navigation_fav.plantuml | 37 +
.../assets/remove_navigation_fav.png | Bin 0 -> 20520 bytes
.../assets/upload_contacts.plantuml | 47 +
.../address-book/assets/upload_contacts.png | Bin 0 -> 24273 bytes
.../assets/upload_navigation_fav.plantuml | 47 +
.../assets/upload_navigation_fav.png | Bin 0 -> 26223 bytes
docs/sdk-docs/modules/address-book/index.html | 4385 ++++
.../modules/alexa/aasb-docs/Alerts/index.html | 4662 ++++
.../alexa/aasb-docs/AlexaClient/index.html | 4760 ++++
.../alexa/aasb-docs/AlexaSpeaker/index.html | 4632 ++++
.../alexa/aasb-docs/AudioPlayer/index.html | 4620 ++++
.../alexa/aasb-docs/AuthProvider/index.html | 4729 ++++
.../alexa/aasb-docs/DeviceSetup/index.html | 4358 ++++
.../alexa/aasb-docs/DoNotDisturb/index.html | 4308 ++++
.../aasb-docs/EqualizerController/index.html | 4863 ++++
.../aasb-docs/ExternalMediaAdapter/index.html | 7498 ++++++
.../alexa/aasb-docs/GlobalPreset/index.html | 4187 ++++
.../aasb-docs/LocalMediaSource/index.html | 6053 +++++
.../MediaPlaybackRequestor/index.html | 4473 ++++
.../alexa/aasb-docs/Notifications/index.html | 4335 ++++
.../aasb-docs/PlaybackController/index.html | 4466 ++++
.../aasb-docs/SpeechRecognizer/index.html | 4536 ++++
.../aasb-docs/TemplateRuntime/index.html | 4600 ++++
.../alexa/assets/AuthProvider_login.png | Bin
.../alexa/assets/AuthProvider_logout.png | Bin
.../assets/DEFAULT_to_DEFAULT_Switching.png | Bin 0 -> 99626 bytes
.../alexa/assets/Starting_FM_By_Voice.png | Bin 0 -> 113851 bytes
.../assets/Switching_Default_With_GUI.png | Bin 0 -> 140515 bytes
.../authprovider-cancel-sequence.plantuml | 0
.../assets/authprovider-cancel-sequence.png | Bin
.../authprovider-logout-sequence.plantuml | 0
.../assets/authprovider-logout-sequence.png | Bin
.../authprovider-start-sequence.plantuml | 0
.../assets/authprovider-start-sequence.png | Bin
...plete-interaction-tap-to-talk-sequence.svg | 166 +
...-interaction-tap-to-talk-sequence.plantuml | 160 +
docs/sdk-docs/modules/alexa/index.html | 5805 +++++
.../modules/apl/aasb-docs/APL/index.html | 6026 +++++
.../apl/assets/aac-apl-general-flow.png | Bin 0 -> 49047 bytes
.../aac-apl-platform-properties.plantuml | 41 +
.../assets/aac-apl-render-document.plantuml | 47 +
.../aac-apl-set-platform-properties.png | Bin 0 -> 35862 bytes
docs/sdk-docs/modules/apl/index.html | 4420 ++++
.../modules}/bluetooth/assets/ble.plantuml | 0
.../modules}/bluetooth/assets/ble.png | Bin
.../assets/bluetooth_classic.plantuml | 0
.../bluetooth/assets/bluetooth_classic.png | Bin
docs/sdk-docs/modules/bluetooth/index.html | 4498 ++++
.../aasb-docs/CarControl/index.html | 5286 ++++
.../car-control/assets/CarControlConfig.json | 11710 +++++++++
.../adjusting_mode_of_a_setting.plantuml | 45 +
.../assets/adjusting_mode_of_a_setting.png | Bin 0 -> 29596 bytes
.../adjusting_value_of_a_setting.plantuml | 45 +
.../assets/adjusting_value_of_a_setting.png | Bin 0 -> 30030 bytes
.../modules/car-control/assets/assets-1P.json | 20600 +++++++++++++++
.../assets/carcontrol_sequence_online.png | Bin
.../assets/setting_mode_of_a_setting.plantuml | 45 +
.../assets/setting_mode_of_a_setting.png | Bin 0 -> 28043 bytes
.../setting_value_of_a_setting.plantuml | 45 +
.../assets/setting_value_of_a_setting.png | Bin 0 -> 29274 bytes
.../assets/turning_off_endpoint.plantuml | 45 +
.../assets/turning_off_endpoint.png | Bin 0 -> 27397 bytes
...rning_off_toggle_state_of_setting.plantuml | 45 +
.../turning_off_toggle_state_of_setting.png | Bin 0 -> 28347 bytes
.../assets/turning_on_endpoint.plantuml | 45 +
.../assets/turning_on_endpoint.png | Bin 0 -> 27276 bytes
...urning_on_toggle_state_of_setting.plantuml | 45 +
.../turning_on_toggle_state_of_setting.png | Bin 0 -> 28246 bytes
docs/sdk-docs/modules/car-control/index.html | 8272 ++++++
.../modules/cbl/aasb-docs/CBL/index.html | 4992 ++++
.../cbl/assets/cbl-cancel-sequence.plantuml | 0
.../cbl/assets/cbl-cancel-sequence.png | Bin
.../cbl/assets/cbl-logout-sequence.plantuml | 0
.../cbl/assets/cbl-logout-sequence.png | Bin
.../cbl/assets/cbl-refresh-sequence.plantuml | 0
.../cbl/assets/cbl-refresh-sequence.png | Bin
.../cbl/assets/cbl-start-sequence.plantuml | 0
.../modules/cbl/assets/cbl-start-sequence.png | Bin
.../sdk-docs}/modules/cbl/assets/cbl_auth.png | Bin
.../cbl/assets/cbl_dereg_inactivity.png | Bin
.../cbl/assets/cbl_dereg_user_interaction.png | Bin
.../modules/cbl/assets/cbl_refresh.png | Bin
docs/sdk-docs/modules/cbl/index.html | 4257 ++++
.../aasb-docs/AlexaConnectivity/index.html | 4850 ++++
.../Connectivity-Sequence-CloudAskReport.png | Bin 0 -> 21281 bytes
.../Connectivity-Sequence-CloudAskReport.puml | 37 +
.../Connectivity-Sequence-DeviceDiscovery.png | Bin 0 -> 13800 bytes
...Connectivity-Sequence-DeviceDiscovery.puml | 29 +
...ctivity-Sequence-sendConnectivityEvent.png | Bin 0 -> 42912 bytes
...tivity-Sequence-sendConnectivityEvent.puml | 50 +
docs/sdk-docs/modules/connectivity/index.html | 4372 ++++
docs/sdk-docs/modules/core/AUDIO/index.html | 4423 ++++
.../modules/core/AUTHORIZATION/index.html | 4284 ++++
.../core/RUNTIME_PROPERTIES/index.html | 4177 ++++
.../core/aasb-docs/AudioInput/index.html | 4389 ++++
.../core/aasb-docs/AudioOutput/index.html | 6983 ++++++
.../core/aasb-docs/Authorization/index.html | 5225 ++++
.../core/aasb-docs/DeviceUsage/index.html | 4187 ++++
.../aasb-docs/LocationProvider/index.html | 4737 ++++
.../aasb-docs/NetworkInfoProvider/index.html | 4624 ++++
.../core/aasb-docs/PropertyManager/index.html | 4719 ++++
docs/sdk-docs/modules/core/index.html | 5032 ++++
.../aasb-docs/CustomDomain/index.html | 4893 ++++
.../custom-domain/assets/custom_context.png | Bin 0 -> 66603 bytes
.../assets/custom_directives_events.png | Bin 0 -> 111921 bytes
.../sdk-docs/modules/custom-domain/index.html | 4239 ++++
.../assets}/loopback-detector-data-flow.png | Bin
.../modules/loopback-detector/index.html | 4212 ++++
.../messaging/aasb-docs/Messaging/index.html | 5268 ++++
.../aac-messaging-reading-messages.plantuml | 47 +
.../assets/aac-messaging-reading-messages.png | Bin 0 -> 43716 bytes
.../aac-messaging-reply-message.plantuml | 65 +
.../assets/aac-messaging-reply-message.png | Bin 0 -> 64698 bytes
.../aac-messaging-sending-messages.plantuml | 41 +
.../assets/aac-messaging-sending-messages.png | Bin 0 -> 31238 bytes
...ssaging-endpoint-state-connection.plantuml | 35 +
...te-messaging-endpoint-state-connection.png | Bin 0 -> 19474 bytes
...saging-endpoint-state-permissions.plantuml | 35 +
...e-messaging-endpoint-state-permissions.png | Bin 0 -> 25981 bytes
docs/sdk-docs/modules/messaging/index.html | 4347 ++++
.../aasb-docs/Navigation/index.html | 5888 +++++
.../navigation/assets/add_waypoint.plantuml | 77 +
.../navigation/assets/add_waypoint.png | Bin 0 -> 91249 bytes
.../assets/announce_maneuver.plantuml | 49 +
.../navigation/assets/announce_maneuver.png | Bin 0 -> 54803 bytes
.../assets/announce_road_regulation.plantuml | 49 +
.../assets/announce_road_regulation.png | Bin 0 -> 56540 bytes
.../assets/cancel_navigation.plantuml | 43 +
.../navigation/assets/cancel_navigation.png | Bin 0 -> 37031 bytes
.../navigation/assets/map_control.plantuml | 49 +
.../modules/navigation/assets/map_control.png | Bin 0 -> 44901 bytes
.../navigate_previous_waypoint.plantuml | 49 +
.../assets/navigate_previous_waypoint.png | Bin 0 -> 55935 bytes
.../assets/remove_waypoint.plantuml | 76 +
.../navigation/assets/remove_waypoint.png | Bin 0 -> 99214 bytes
.../assets/show_alternate_routes.plantuml | 49 +
.../assets/show_alternate_routes.png | Bin 0 -> 64231 bytes
.../assets/show_previous_waypoints.plantuml | 49 +
.../assets/show_previous_waypoints.png | Bin 0 -> 55237 bytes
.../assets/start_navigation.plantuml | 54 +
.../navigation/assets/start_navigation.png | Bin 0 -> 55261 bytes
docs/sdk-docs/modules/navigation/index.html | 5071 ++++
.../aasb-docs/PhoneCallController/index.html | 5811 +++++
.../aac-pcc-connection-state-changed.plantuml | 33 +
.../aac-pcc-connection-state-changed.png | Bin 0 -> 20353 bytes
...-pcc-device-configuration-updated.plantuml | 27 +
.../aac-pcc-device-configuration-updated.png | Bin 0 -> 15299 bytes
.../assets/aac-pcc-inbound-call.plantuml | 74 +
.../assets/aac-pcc-inbound-call.png | Bin 0 -> 83522 bytes
.../assets/aac-pcc-outbound-call.plantuml | 54 +
.../assets/aac-pcc-outbound-call.png | Bin 0 -> 51866 bytes
.../sdk-docs/modules/phone-control/index.html | 4398 ++++
docs/sdk-docs/modules/system-audio/index.html | 4338 ++++
.../text-to-speech-provider/index.html | 4190 ++++
.../aasb-docs/TextToSpeech/index.html | 4671 ++++
.../assets/GetCapabilities.plantuml | 33 +
.../text-to-speech/assets/GetCapabilities.png | Bin 0 -> 14640 bytes
.../assets/PrepareSpeech.plantuml | 35 +
.../text-to-speech/assets/PrepareSpeech.png | Bin 0 -> 18932 bytes
.../modules/text-to-speech/index.html | 4260 ++++
docs/sdk-docs/samples/cpp/index.html | 4452 ++++
docs/sdk-docs/search/search_index.json | 1 +
docs/sdk-docs/sitemap.xml | 473 +
docs/sdk-docs/sitemap.xml.gz | Bin 0 -> 250 bytes
extensions/README.md | 1 +
extensions/aasb/.gitignore | 3 -
extensions/aasb/CMakeLists.txt | 20 -
extensions/aasb/README.md | 339 -
extensions/aasb/assets/AASBNewArch.png | Bin 55519 -> 0 bytes
extensions/aasb/assets/AASBOldArch.png | Bin 36815 -> 0 bytes
.../aasb/docs/AASB/StartServiceMessage.html | 436 -
.../aasb/docs/AASB/StopServiceMessage.html | 436 -
.../APL/ClearAllExecuteCommandsMessage.html | 488 -
.../aasb/docs/APL/ClearCardMessage.html | 488 -
.../aasb/docs/APL/ClearDocumentMessage.html | 497 -
.../docs/APL/DataSourceUpdateMessage.html | 519 -
.../aasb/docs/APL/ExecuteCommandsMessage.html | 508 -
.../APL/ExecuteCommandsResultMessage.html | 519 -
.../APL/InterruptCommandSequenceMessage.html | 497 -
.../docs/APL/ProcessActivityEventMessage.html | 515 -
.../aasb/docs/APL/RenderDocumentMessage.html | 519 -
.../docs/APL/RenderDocumentResultMessage.html | 519 -
...endDataSourceFetchRequestEventMessage.html | 508 -
.../APL/SendDeviceWindowStateMessage.html | 497 -
.../docs/APL/SendDocumentStateMessage.html | 497 -
.../APL/SendRuntimeErrorEventMessage.html | 497 -
.../aasb/docs/APL/SendUserEventMessage.html | 497 -
.../docs/APL/SetAPLMaxVersionMessage.html | 497 -
.../APL/SetDocumentIdleTimeoutMessage.html | 497 -
.../AddressBook/AddAddressBookMessage.html | 862 -
.../AddAddressBookMessageReply.html | 484 -
.../AddressBook/RemoveAddressBookMessage.html | 471 -
.../RemoveAddressBookMessageReply.html | 484 -
.../aasb/docs/Alerts/AlertCreatedMessage.html | 484 -
.../aasb/docs/Alerts/AlertDeletedMessage.html | 473 -
.../docs/Alerts/AlertStateChangedMessage.html | 508 -
.../aasb/docs/Alerts/LocalStopMessage.html | 464 -
.../docs/Alerts/RemoveAllAlertsMessage.html | 466 -
.../AlexaClient/AuthStateChangedMessage.html | 504 -
.../ConnectionStatusChangedMessage.html | 506 -
.../DialogStateChangedMessage.html | 478 -
.../StopForegroundActivityMessage.html | 462 -
.../ConnectivityStateChangeMessage.html | 471 -
.../ConnectivityStateChangeMessageReply.html | 492 -
.../GetConnectivityStateMessage.html | 470 -
.../GetConnectivityStateMessageReply.html | 492 -
.../GetIdentifierMessage.html | 470 -
.../GetIdentifierMessageReply.html | 492 -
.../SendConnectivityEventMessage.html | 479 -
.../SendConnectivityEventMessageReply.html | 496 -
.../LocalAdjustVolumeMessage.html | 490 -
.../AlexaSpeaker/LocalSetMuteMessage.html | 489 -
.../AlexaSpeaker/LocalSetVolumeMessage.html | 489 -
.../SpeakerSettingsChangedMessage.html | 509 -
.../AudioInput/StartAudioInputMessage.html | 491 -
.../AudioInput/StopAudioInputMessage.html | 464 -
.../docs/AudioOutput/GetDurationMessage.html | 508 -
.../AudioOutput/GetDurationMessageReply.html | 510 -
.../GetNumBytesBufferedMessage.html | 508 -
.../GetNumBytesBufferedMessageReply.html | 510 -
.../docs/AudioOutput/GetPositionMessage.html | 508 -
.../AudioOutput/GetPositionMessageReply.html | 510 -
.../docs/AudioOutput/MediaErrorMessage.html | 526 -
.../AudioOutput/MediaStateChangedMessage.html | 524 -
.../AudioOutput/MutedStateChangedMessage.html | 512 -
.../aasb/docs/AudioOutput/PauseMessage.html | 508 -
.../aasb/docs/AudioOutput/PlayMessage.html | 508 -
.../AudioOutput/PrepareStreamMessage.html | 602 -
.../docs/AudioOutput/PrepareURLMessage.html | 557 -
.../aasb/docs/AudioOutput/ResumeMessage.html | 508 -
.../docs/AudioOutput/SetPositionMessage.html | 519 -
.../aasb/docs/AudioOutput/StopMessage.html | 508 -
.../AudioOutput/VolumeChangedMessage.html | 508 -
.../AudioPlayer/GetPlayerDurationMessage.html | 464 -
.../GetPlayerDurationMessageReply.html | 486 -
.../AudioPlayer/GetPlayerPositionMessage.html | 464 -
.../GetPlayerPositionMessageReply.html | 486 -
.../PlayerActivityChangedMessage.html | 481 -
.../AuthProvider/AuthStateChangedMessage.html | 510 -
.../AuthProvider/GetAuthStateMessage.html | 468 -
.../GetAuthStateMessageReply.html | 492 -
.../AuthProvider/GetAuthTokenMessage.html | 469 -
.../GetAuthTokenMessageReply.html | 486 -
.../AuthorizationErrorMessage.html | 505 -
.../AuthorizationStateChangedMessage.html | 499 -
.../CancelAuthorizationMessage.html | 483 -
.../Authorization/EventReceivedMessage.html | 494 -
.../GetAuthorizationDataMessage.html | 494 -
.../GetAuthorizationDataMessageReply.html | 496 -
.../docs/Authorization/LogoutMessage.html | 483 -
.../docs/Authorization/SendEventMessage.html | 494 -
.../SetAuthorizationDataMessage.html | 505 -
.../StartAuthorizationMessage.html | 494 -
.../aasb/docs/CBL/CBLStateChangedMessage.html | 534 -
extensions/aasb/docs/CBL/CancelMessage.html | 476 -
.../docs/CBL/ClearRefreshTokenMessage.html | 476 -
.../aasb/docs/CBL/GetRefreshTokenMessage.html | 476 -
.../docs/CBL/GetRefreshTokenMessageReply.html | 494 -
extensions/aasb/docs/CBL/ResetMessage.html | 476 -
.../aasb/docs/CBL/SetRefreshTokenMessage.html | 485 -
.../aasb/docs/CBL/SetUserProfileMessage.html | 496 -
extensions/aasb/docs/CBL/StartMessage.html | 476 -
.../AdjustControllerValueMessageReply.html | 493 -
.../AdjustModeControllerValueMessage.html | 508 -
.../AdjustRangeControllerValueMessage.html | 508 -
.../SetControllerValueMessageReply.html | 495 -
.../SetModeControllerValueMessage.html | 508 -
.../SetPowerControllerValueMessage.html | 497 -
.../SetRangeControllerValueMessage.html | 508 -
.../SetToggleControllerValueMessage.html | 508 -
.../DeviceSetup/SetupCompletedMessage.html | 458 -
.../SetupCompletedResponseMessage.html | 471 -
.../ReportNetworkDataUsageMessage.html | 462 -
.../DoNotDisturbChangedMessage.html | 467 -
.../DoNotDisturb/SetDoNotDisturbMessage.html | 467 -
.../GetBandLevelsMessage.html | 467 -
.../GetBandLevelsMessageReply.html | 523 -
.../LocalAdjustBandLevelsMessage.html | 512 -
.../LocalResetBandsMessage.html | 475 -
.../LocalSetBandLevelsMessage.html | 511 -
.../SetBandLevelsMessage.html | 510 -
.../AdjustSeekMessage.html | 510 -
.../AuthorizeMessage.html | 530 -
.../ExternalMediaAdapter/GetStateMessage.html | 935 -
.../LoginCompleteMessage.html | 499 -
.../ExternalMediaAdapter/LoginMessage.html | 543 -
.../LogoutCompleteMessage.html | 499 -
.../ExternalMediaAdapter/LogoutMessage.html | 499 -
.../MutedStateChangedMessage.html | 505 -
.../PlayControlMessage.html | 527 -
.../ExternalMediaAdapter/PlayMessage.html | 559 -
.../PlayerErrorMessage.html | 543 -
.../PlayerEventMessage.html | 510 -
.../RemoveDiscoveredPlayerMessage.html | 499 -
.../ReportDiscoveredPlayersMessage.html | 578 -
.../RequestTokenMessage.html | 499 -
.../ExternalMediaAdapter/SeekMessage.html | 510 -
.../ExternalMediaAdapter/SetFocusMessage.html | 499 -
.../VolumeChangedMessage.html | 500 -
.../GlobalPreset/SetGlobalPresetMessage.html | 462 -
.../LocalMediaSource/AdjustSeekMessage.html | 508 -
.../LocalMediaSource/GetStateMessage.html | 497 -
.../GetStateMessageReply.html | 923 -
.../MutedStateChangedMessage.html | 509 -
.../LocalMediaSource/PlayControlMessage.html | 525 -
.../docs/LocalMediaSource/PlayMessage.html | 535 -
.../LocalMediaSource/PlayerErrorMessage.html | 552 -
.../LocalMediaSource/PlayerEventMessage.html | 519 -
.../docs/LocalMediaSource/SeekMessage.html | 508 -
.../LocalMediaSource/SetFocusMessage.html | 501 -
.../VolumeChangedMessage.html | 509 -
.../LocationProvider/GetCountryMessage.html | 464 -
.../GetCountryMessageReply.html | 486 -
.../LocationProvider/GetLocationMessage.html | 464 -
.../GetLocationMessageReply.html | 533 -
.../LocationServiceAccessChangedMessage.html | 477 -
extensions/aasb/docs/MainMenu.html | 307 -
.../Messaging/ConversationsReportMessage.html | 492 -
.../Messaging/SendMessageFailedMessage.html | 508 -
.../docs/Messaging/SendMessageMessage.html | 503 -
.../SendMessageSucceededMessage.html | 481 -
.../UpdateMessagesStatusFailedMessage.html | 508 -
.../UpdateMessagesStatusMessage.html | 503 -
.../UpdateMessagesStatusSucceededMessage.html | 481 -
.../UpdateMessagingEndpointStateMessage.html | 515 -
.../Messaging/UploadConversationsMessage.html | 481 -
.../Navigation/AnnounceManeuverMessage.html | 489 -
.../AnnounceRoadRegulationMessage.html | 493 -
.../Navigation/CancelNavigationMessage.html | 480 -
.../Navigation/ControlDisplayMessage.html | 507 -
.../Navigation/GetNavigationStateMessage.html | 480 -
.../GetNavigationStateMessageReply.html | 502 -
.../NavigateToPreviousWaypointMessage.html | 480 -
.../Navigation/NavigationErrorMessage.html | 549 -
.../Navigation/NavigationEventMessage.html | 520 -
.../ShowAlternativeRoutesMessage.html | 494 -
...ShowAlternativeRoutesSucceededMessage.html | 489 -
.../ShowPreviousWaypointsMessage.html | 480 -
.../Navigation/StartNavigationMessage.html | 489 -
.../GetNetworkStatusMessage.html | 464 -
.../GetNetworkStatusMessageReply.html | 493 -
.../GetWifiSignalStrengthMessage.html | 464 -
.../GetWifiSignalStrengthMessageReply.html | 486 -
.../NetworkStatusChangedMessage.html | 491 -
.../OnNotificationReceivedMessage.html | 455 -
.../Notifications/SetIndicatorMessage.html | 469 -
.../PhoneCallController/AnswerMessage.html | 491 -
.../CallFailedMessage.html | 520 -
.../CallStateChangedMessage.html | 521 -
.../CallerIdReceivedMessage.html | 502 -
.../ConnectionStateChangedMessage.html | 495 -
.../CreateCallIdMessage.html | 482 -
.../CreateCallIdMessageReply.html | 504 -
.../DeviceConfigurationUpdatedMessage.html | 491 -
.../docs/PhoneCallController/DialMessage.html | 491 -
.../PhoneCallController/RedialMessage.html | 491 -
.../SendDTMFFailedMessage.html | 517 -
.../PhoneCallController/SendDTMFMessage.html | 491 -
.../SendDTMFSucceededMessage.html | 491 -
.../docs/PhoneCallController/StopMessage.html | 491 -
.../ButtonPressedMessage.html | 474 -
.../TogglePressedMessage.html | 484 -
.../PropertyManager/GetPropertyMessage.html | 473 -
.../GetPropertyMessageReply.html | 497 -
.../PropertyChangedMessage.html | 484 -
.../PropertyStateChangedMessage.html | 499 -
.../PropertyManager/SetPropertyMessage.html | 484 -
.../docs/Publish Message General Form.html | 489 -
.../aasb/docs/Reply Message General Form.html | 502 -
.../EndOfSpeechDetectedMessage.html | 463 -
.../SpeechRecognizer/StartCaptureMessage.html | 513 -
.../SpeechRecognizer/StopCaptureMessage.html | 463 -
.../WakewordDetectedMessage.html | 471 -
.../ClearPlayerInfoMessage.html | 464 -
.../TemplateRuntime/ClearTemplateMessage.html | 464 -
.../DisplayCardClearedMessage.html | 464 -
.../RenderPlayerInfoMessage.html | 519 -
.../RenderTemplateMessage.html | 489 -
.../TextToSpeech/GetCapabilitiesMessage.html | 473 -
.../GetCapabilitiesMessageReply.html | 486 -
.../PrepareSpeechCompletedMessage.html | 558 -
.../PrepareSpeechFailedMessage.html | 484 -
.../TextToSpeech/PrepareSpeechMessage.html | 506 -
extensions/aasb/meta-aac-aasb/conf/layer.conf | 1 -
.../modules/aasb-address-book/CMakeLists.txt | 57 -
.../aac-aasb-address-book.bb | 7 -
.../aasb-address-book/engine/CMakeLists.txt | 60 -
.../AddressBook/AddAddressBookMessage.h | 154 -
.../AddressBook/AddAddressBookMessageReply.h | 144 -
.../AddressBook/AddressBook/AddressBook.h | 79 -
.../AddressBook/AddressBook/AddressBookType.h | 81 -
.../AddressBook/AddressBook/ContactName.h | 85 -
.../AddressBook/AddressBook/NavigationName.h | 74 -
.../AddressBook/AddressBook/PhoneData.h | 72 -
.../AddressBook/AddressBook/PostalAddress.h | 102 -
.../AddressBook/RemoveAddressBookMessage.h | 141 -
.../RemoveAddressBookMessageReply.h | 144 -
.../aasb/modules/aasb-alexa/CMakeLists.txt | 47 -
.../aasb/modules/aasb-alexa/aac-aasb-alexa.bb | 7 -
.../modules/aasb-alexa/engine/CMakeLists.txt | 197 -
.../Alexa/Alerts/AlertCreatedMessage.h | 144 -
.../Alexa/Alerts/AlertDeletedMessage.h | 141 -
.../AASB/Message/Alexa/Alerts/AlertState.h | 117 -
.../Alexa/Alerts/AlertStateChangedMessage.h | 150 -
.../Message/Alexa/Alerts/LocalStopMessage.h | 136 -
.../Alexa/Alerts/RemoveAllAlertsMessage.h | 136 -
.../Message/Alexa/AlexaClient/AuthError.h | 129 -
.../Message/Alexa/AlexaClient/AuthState.h | 89 -
.../AlexaClient/AuthStateChangedMessage.h | 149 -
.../AlexaClient/ConnectionChangedReason.h | 141 -
.../Alexa/AlexaClient/ConnectionStatus.h | 85 -
.../ConnectionStatusChangedMessage.h | 149 -
.../Message/Alexa/AlexaClient/DialogState.h | 93 -
.../AlexaClient/DialogStateChangedMessage.h | 144 -
.../StopForegroundActivityMessage.h | 136 -
.../AlexaSpeaker/LocalAdjustVolumeMessage.h | 147 -
.../Alexa/AlexaSpeaker/LocalSetMuteMessage.h | 147 -
.../AlexaSpeaker/LocalSetVolumeMessage.h | 147 -
.../SpeakerSettingsChangedMessage.h | 153 -
.../Message/Alexa/AlexaSpeaker/SpeakerType.h | 81 -
.../AudioPlayer/GetPlayerDurationMessage.h | 136 -
.../GetPlayerDurationMessageReply.h | 144 -
.../AudioPlayer/GetPlayerPositionMessage.h | 136 -
.../GetPlayerPositionMessageReply.h | 144 -
.../Alexa/AudioPlayer/PlayerActivity.h | 97 -
.../PlayerActivityChangedMessage.h | 144 -
.../AuthProvider/AuthStateChangedMessage.h | 149 -
.../Alexa/AuthProvider/GetAuthStateMessage.h | 136 -
.../AuthProvider/GetAuthStateMessageReply.h | 147 -
.../Alexa/AuthProvider/GetAuthTokenMessage.h | 136 -
.../AuthProvider/GetAuthTokenMessageReply.h | 144 -
.../Alexa/DeviceSetup/SetupCompletedMessage.h | 136 -
.../SetupCompletedResponseMessage.h | 144 -
.../Message/Alexa/DeviceSetup/StatusCode.h | 83 -
.../DoNotDisturb/DoNotDisturbChangedMessage.h | 141 -
.../DoNotDisturb/SetDoNotDisturbMessage.h | 141 -
.../Alexa/EqualizerController/EqualizerBand.h | 85 -
.../EqualizerController/EqualizerBandLevel.h | 70 -
.../GetBandLevelsMessage.h | 136 -
.../GetBandLevelsMessageReply.h | 147 -
.../LocalAdjustBandLevelsMessage.h | 144 -
.../LocalResetBandsMessage.h | 146 -
.../LocalSetBandLevelsMessage.h | 144 -
.../SetBandLevelsMessage.h | 144 -
.../ExternalMediaAdapter/AdjustSeekMessage.h | 144 -
.../ExternalMediaAdapter/AuthorizeMessage.h | 144 -
.../AuthorizedPlayerInfo.h | 67 -
.../DiscoveredPlayerInfo.h | 77 -
.../ExternalMediaAdapterState.h | 69 -
.../Alexa/ExternalMediaAdapter/Favorites.h | 85 -
.../ExternalMediaAdapter/GetStateMessage.h | 147 -
.../LoginCompleteMessage.h | 141 -
.../Alexa/ExternalMediaAdapter/LoginMessage.h | 153 -
.../LogoutCompleteMessage.h | 141 -
.../ExternalMediaAdapter/LogoutMessage.h | 141 -
.../Alexa/ExternalMediaAdapter/MediaType.h | 97 -
.../Alexa/ExternalMediaAdapter/MutedState.h | 81 -
.../MutedStateChangedMessage.h | 144 -
.../Alexa/ExternalMediaAdapter/Navigation.h | 85 -
.../ExternalMediaAdapter/PlayControlMessage.h | 147 -
.../ExternalMediaAdapter/PlayControlType.h | 133 -
.../Alexa/ExternalMediaAdapter/PlayMessage.h | 159 -
.../PlaybackStateExternal.h | 140 -
.../ExternalMediaAdapter/PlayerErrorMessage.h | 153 -
.../ExternalMediaAdapter/PlayerEventMessage.h | 144 -
.../RemoveDiscoveredPlayerMessage.h | 141 -
.../ReportDiscoveredPlayersMessage.h | 144 -
.../RequestTokenMessage.h | 141 -
.../Alexa/ExternalMediaAdapter/SeekMessage.h | 144 -
.../SessionStateExternal.h | 91 -
.../ExternalMediaAdapter/SetFocusMessage.h | 141 -
.../SupportedPlaybackOperation.h | 141 -
.../ExternalMediaAdapter/ValidationMethod.h | 85 -
.../VolumeChangedMessage.h | 141 -
.../GlobalPreset/SetGlobalPresetMessage.h | 141 -
.../LocalMediaSource/AdjustSeekMessage.h | 147 -
.../Alexa/LocalMediaSource/ContentSelector.h | 87 -
.../Alexa/LocalMediaSource/GetStateMessage.h | 144 -
.../LocalMediaSource/GetStateMessageReply.h | 145 -
.../LocalMediaSource/LocalMediaSourceState.h | 71 -
.../MutedStateChangedMessage.h | 149 -
.../LocalMediaSource/PlayControlMessage.h | 149 -
.../Alexa/LocalMediaSource/PlayMessage.h | 155 -
.../Alexa/LocalMediaSource/PlaybackState.h | 142 -
.../LocalMediaSource/PlayerErrorMessage.h | 161 -
.../LocalMediaSource/PlayerEventMessage.h | 152 -
.../Alexa/LocalMediaSource/SeekMessage.h | 147 -
.../Alexa/LocalMediaSource/SessionState.h | 96 -
.../Alexa/LocalMediaSource/SetFocusMessage.h | 144 -
.../Message/Alexa/LocalMediaSource/Source.h | 115 -
.../LocalMediaSource/VolumeChangedMessage.h | 147 -
.../Alexa/Notifications/IndicatorState.h | 85 -
.../OnNotificationReceivedMessage.h | 136 -
.../Alexa/Notifications/SetIndicatorMessage.h | 144 -
.../PlaybackController/ButtonPressedMessage.h | 144 -
.../Alexa/PlaybackController/PlaybackButton.h | 97 -
.../Alexa/PlaybackController/PlaybackToggle.h | 93 -
.../PlaybackController/TogglePressedMessage.h | 147 -
.../EndOfSpeechDetectedMessage.h | 136 -
.../Alexa/SpeechRecognizer/Initiator.h | 85 -
.../SpeechRecognizer/StartCaptureMessage.h | 159 -
.../SpeechRecognizer/StopCaptureMessage.h | 136 -
.../WakewordDetectedMessage.h | 141 -
.../TemplateRuntime/ClearPlayerInfoMessage.h | 136 -
.../TemplateRuntime/ClearTemplateMessage.h | 136 -
.../DisplayCardClearedMessage.h | 136 -
.../Alexa/TemplateRuntime/FocusState.h | 85 -
.../TemplateRuntime/RenderPlayerInfoMessage.h | 155 -
.../TemplateRuntime/RenderTemplateMessage.h | 147 -
.../aasb/modules/aasb-apl/CMakeLists.txt | 46 -
.../aasb/modules/aasb-apl/aac-aasb-apl.bb | 7 -
.../modules/aasb-apl/engine/CMakeLists.txt | 67 -
.../AASB/Message/Apl/APL/ActivityEvent.h | 93 -
.../Apl/APL/ClearAllExecuteCommandsMessage.h | 136 -
.../AASB/Message/Apl/APL/ClearCardMessage.h | 136 -
.../Message/Apl/APL/ClearDocumentMessage.h | 141 -
.../Message/Apl/APL/DataSourceUpdateMessage.h | 147 -
.../Message/Apl/APL/ExecuteCommandsMessage.h | 144 -
.../Apl/APL/ExecuteCommandsResultMessage.h | 147 -
.../Apl/APL/InterruptCommandSequenceMessage.h | 141 -
.../Apl/APL/ProcessActivityEventMessage.h | 147 -
.../Message/Apl/APL/RenderDocumentMessage.h | 147 -
.../Apl/APL/RenderDocumentResultMessage.h | 147 -
.../SendDataSourceFetchRequestEventMessage.h | 144 -
.../Apl/APL/SendDeviceWindowStateMessage.h | 141 -
.../Apl/APL/SendDocumentStateMessage.h | 141 -
.../Apl/APL/SendRuntimeErrorEventMessage.h | 141 -
.../Message/Apl/APL/SendUserEventMessage.h | 141 -
.../Message/Apl/APL/SetAPLMaxVersionMessage.h | 141 -
.../Apl/APL/SetDocumentIdleTimeoutMessage.h | 141 -
.../modules/aasb-car-control/CMakeLists.txt | 46 -
.../aasb-car-control/aac-aasb-car-control.bb | 7 -
.../aasb-car-control/engine/CMakeLists.txt | 58 -
.../AdjustControllerValueMessageReply.h | 144 -
.../AdjustModeControllerValueMessage.h | 156 -
.../AdjustRangeControllerValueMessage.h | 156 -
.../SetControllerValueMessageReply.h | 144 -
.../SetModeControllerValueMessage.h | 156 -
.../SetPowerControllerValueMessage.h | 153 -
.../SetRangeControllerValueMessage.h | 156 -
.../SetToggleControllerValueMessage.h | 156 -
.../aasb/modules/aasb-cbl/CMakeLists.txt | 47 -
.../aasb/modules/aasb-cbl/aac-aasb-cbl.bb | 7 -
.../modules/aasb-cbl/engine/CMakeLists.txt | 61 -
.../AASB/Engine/CBL/AASBCBLEngineService.h | 44 -
.../include/AASB/Message/Cbl/CBL/CBLState.h | 97 -
.../Message/Cbl/CBL/CBLStateChangedMessage.h | 155 -
.../Message/Cbl/CBL/CBLStateChangedReason.h | 97 -
.../AASB/Message/Cbl/CBL/CancelMessage.h | 136 -
.../Cbl/CBL/ClearRefreshTokenMessage.h | 136 -
.../Message/Cbl/CBL/GetRefreshTokenMessage.h | 136 -
.../Cbl/CBL/GetRefreshTokenMessageReply.h | 144 -
.../AASB/Message/Cbl/CBL/ResetMessage.h | 136 -
.../Message/Cbl/CBL/SetRefreshTokenMessage.h | 141 -
.../Message/Cbl/CBL/SetUserProfileMessage.h | 144 -
.../AASB/Message/Cbl/CBL/StartMessage.h | 136 -
.../modules/aasb-connectivity/CMakeLists.txt | 46 -
.../aac-aasb-connectivity.bb | 7 -
.../aasb-connectivity/engine/CMakeLists.txt | 54 -
.../ConnectivityStateChangeMessage.h | 136 -
.../ConnectivityStateChangeMessageReply.h | 144 -
.../GetConnectivityStateMessage.h | 136 -
.../GetConnectivityStateMessageReply.h | 144 -
.../AlexaConnectivity/GetIdentifierMessage.h | 136 -
.../GetIdentifierMessageReply.h | 144 -
.../SendConnectivityEventMessage.h | 141 -
.../SendConnectivityEventMessageReply.h | 147 -
.../AlexaConnectivity/StatusCode.h | 83 -
.../aasb/modules/aasb-core/CMakeLists.txt | 45 -
.../aasb/modules/aasb-core/aac-aasb-core.bb | 7 -
.../modules/aasb-core/engine/CMakeLists.txt | 160 -
.../AASB/Engine/Audio/AASBAudioInput.h | 94 -
.../Engine/Audio/AASBAudioInputProvider.h | 59 -
.../AASB/Engine/Audio/AASBAudioOutput.h | 97 -
.../Engine/Audio/AASBAudioOutputProvider.h | 56 -
.../Audio/AudioInput/AudioInputAudioType.h | 85 -
.../Audio/AudioInput/StartAudioInputMessage.h | 150 -
.../Audio/AudioInput/StopAudioInputMessage.h | 141 -
.../Audio/AudioOutput/AudioOutputAudioType.h | 101 -
.../Audio/AudioOutput/AudioOutputSourceType.h | 81 -
.../Audio/AudioOutput/AudioStreamEncoding.h | 89 -
.../Audio/AudioOutput/AudioStreamProperty.h | 67 -
.../Audio/AudioOutput/GetDurationMessage.h | 144 -
.../AudioOutput/GetDurationMessageReply.h | 144 -
.../AudioOutput/GetNumBytesBufferedMessage.h | 144 -
.../GetNumBytesBufferedMessageReply.h | 144 -
.../Audio/AudioOutput/GetPositionMessage.h | 144 -
.../AudioOutput/GetPositionMessageReply.h | 144 -
.../Message/Audio/AudioOutput/MediaError.h | 93 -
.../Audio/AudioOutput/MediaErrorMessage.h | 152 -
.../Message/Audio/AudioOutput/MediaState.h | 85 -
.../AudioOutput/MediaStateChangedMessage.h | 150 -
.../Message/Audio/AudioOutput/MutedState.h | 81 -
.../AudioOutput/MutedStateChangedMessage.h | 147 -
.../Message/Audio/AudioOutput/PauseMessage.h | 144 -
.../Message/Audio/AudioOutput/PlayMessage.h | 144 -
.../Audio/AudioOutput/PrepareStreamMessage.h | 173 -
.../Audio/AudioOutput/PrepareURLMessage.h | 165 -
.../Message/Audio/AudioOutput/ResumeMessage.h | 144 -
.../Audio/AudioOutput/SetPositionMessage.h | 147 -
.../Message/Audio/AudioOutput/StopMessage.h | 144 -
.../Audio/AudioOutput/VolumeChangedMessage.h | 144 -
.../Authorization/AuthorizationErrorMessage.h | 147 -
.../Authorization/AuthorizationState.h | 85 -
.../AuthorizationStateChangedMessage.h | 147 -
.../CancelAuthorizationMessage.h | 141 -
.../Authorization/EventReceivedMessage.h | 144 -
.../GetAuthorizationDataMessage.h | 144 -
.../GetAuthorizationDataMessageReply.h | 144 -
.../Authorization/LogoutMessage.h | 141 -
.../Authorization/SendEventMessage.h | 144 -
.../SetAuthorizationDataMessage.h | 147 -
.../Authorization/StartAuthorizationMessage.h | 144 -
.../ReportNetworkDataUsageMessage.h | 141 -
.../LocationProvider/GetCountryMessage.h | 136 -
.../LocationProvider/GetCountryMessageReply.h | 144 -
.../LocationProvider/GetLocationMessage.h | 136 -
.../GetLocationMessageReply.h | 147 -
.../Location/LocationProvider/Location.h | 77 -
.../LocationProvider/LocationServiceAccess.h | 81 -
.../LocationServiceAccessChangedMessage.h | 144 -
.../GetNetworkStatusMessage.h | 136 -
.../GetNetworkStatusMessageReply.h | 147 -
.../GetWifiSignalStrengthMessage.h | 136 -
.../GetWifiSignalStrengthMessageReply.h | 144 -
.../NetworkInfoProvider/NetworkStatus.h | 93 -
.../NetworkStatusChangedMessage.h | 147 -
.../PropertyManager/GetPropertyMessage.h | 141 -
.../PropertyManager/GetPropertyMessageReply.h | 147 -
.../PropertyManager/PropertyChangedMessage.h | 144 -
.../PropertyManager/PropertyState.h | 81 -
.../PropertyStateChangedMessage.h | 150 -
.../PropertyManager/SetPropertyMessage.h | 144 -
.../modules/aasb-messaging/CMakeLists.txt | 46 -
.../aasb-messaging/aac-aasb-messaging.bb | 7 -
.../aasb-messaging/engine/CMakeLists.txt | 62 -
.../Messaging/Messaging/ConnectionState.h | 81 -
.../Messaging/ConversationsReportMessage.h | 144 -
.../Message/Messaging/Messaging/ErrorCode.h | 85 -
.../Messaging/Messaging/PermissionState.h | 81 -
.../Messaging/SendMessageFailedMessage.h | 152 -
.../Messaging/Messaging/SendMessageMessage.h | 147 -
.../Messaging/SendMessageSucceededMessage.h | 141 -
.../UpdateMessagesStatusFailedMessage.h | 152 -
.../Messaging/UpdateMessagesStatusMessage.h | 147 -
.../UpdateMessagesStatusSucceededMessage.h | 141 -
.../UpdateMessagingEndpointStateMessage.h | 152 -
.../Messaging/UploadConversationsMessage.h | 141 -
.../modules/aasb-navigation/CMakeLists.txt | 47 -
.../aasb-navigation/aac-aasb-navigation.bb | 7 -
.../aasb-navigation/engine/CMakeLists.txt | 69 -
.../Navigation/AlternateRouteType.h | 87 -
.../Navigation/AnnounceManeuverMessage.h | 141 -
.../AnnounceRoadRegulationMessage.h | 144 -
.../Navigation/CancelNavigationMessage.h | 136 -
.../Navigation/Navigation/ControlDisplay.h | 139 -
.../Navigation/ControlDisplayMessage.h | 144 -
.../Message/Navigation/Navigation/ErrorCode.h | 95 -
.../Message/Navigation/Navigation/ErrorType.h | 191 -
.../Message/Navigation/Navigation/EventName.h | 191 -
.../Navigation/GetNavigationStateMessage.h | 136 -
.../GetNavigationStateMessageReply.h | 144 -
.../NavigateToPreviousWaypointMessage.h | 136 -
.../Navigation/NavigationErrorMessage.h | 152 -
.../Navigation/NavigationEventMessage.h | 144 -
.../Navigation/Navigation/RoadRegulation.h | 83 -
.../Navigation/ShowAlternativeRoutesMessage.h | 144 -
.../ShowAlternativeRoutesSucceededMessage.h | 141 -
.../Navigation/ShowPreviousWaypointsMessage.h | 136 -
.../Navigation/StartNavigationMessage.h | 141 -
.../modules/aasb-phone-control/CMakeLists.txt | 47 -
.../aac-aasb-phone-control.bb | 7 -
.../aasb-phone-control/engine/CMakeLists.txt | 70 -
.../PhoneCallController/AnswerMessage.h | 141 -
.../PhoneCallController/CallError.h | 93 -
.../PhoneCallController/CallFailedMessage.h | 152 -
.../PhoneCallController/CallState.h | 97 -
.../CallStateChangedMessage.h | 152 -
.../CallerIdReceivedMessage.h | 144 -
.../CallingDeviceConfigurationProperty.h | 77 -
.../PhoneCallController/ConnectionState.h | 81 -
.../ConnectionStateChangedMessage.h | 144 -
.../PhoneCallController/CreateCallIdMessage.h | 136 -
.../CreateCallIdMessageReply.h | 144 -
.../PhoneCallController/DTMFError.h | 81 -
.../DeviceConfigurationUpdatedMessage.h | 141 -
.../PhoneCallController/DialMessage.h | 141 -
.../PhoneCallController/RedialMessage.h | 141 -
.../SendDTMFFailedMessage.h | 152 -
.../PhoneCallController/SendDTMFMessage.h | 141 -
.../SendDTMFSucceededMessage.h | 141 -
.../PhoneCallController/StopMessage.h | 141 -
.../aasb-text-to-speech/CMakeLists.txt | 47 -
.../aac-aasb-text-to-speech.bb | 7 -
.../aasb-text-to-speech/engine/CMakeLists.txt | 56 -
.../Engine/TextToSpeech/AASBTextToSpeech.h | 83 -
.../TextToSpeech/GetCapabilitiesMessage.h | 141 -
.../GetCapabilitiesMessageReply.h | 144 -
.../PrepareSpeechCompletedMessage.h | 168 -
.../TextToSpeech/PrepareSpeechFailedMessage.h | 144 -
.../TextToSpeech/PrepareSpeechMessage.h | 152 -
extensions/aasb/modules/aasb/CMakeLists.txt | 43 -
.../aasb/modules/aasb/aac-module-aasb.bb | 7 -
.../aasb/modules/aasb/engine/CMakeLists.txt | 58 -
.../include/AACE/Engine/AASB/AASBEngineImpl.h | 66 -
.../AACE/Engine/AASB/AASBEngineService.h | 89 -
.../Engine/AASB/AASBHandlerEngineService.h | 75 -
.../AACE/Engine/AASB/AASBServiceInterface.h | 46 -
.../include/AACE/Engine/AASB/MessageBroker.h | 99 -
.../include/AACE/Engine/AASB/StreamManager.h | 58 -
.../AACE/Engine/AASB/StreamManagerInterface.h | 41 -
.../AASB/Message/AASB/StartServiceMessage.h | 126 -
.../AASB/Message/AASB/StopServiceMessage.h | 126 -
.../aasb/engine/src/AASBEngineService.cpp | 200 -
.../engine/src/AASBHandlerEngineService.cpp | 132 -
.../aasb/engine/src/AASBServiceInterface.cpp | 27 -
.../modules/aasb/engine/src/MessageBroker.cpp | 301 -
.../modules/aasb/engine/src/StreamManager.cpp | 82 -
.../aasb/modules/aasb/platform/CMakeLists.txt | 48 -
.../platform/include/AACE/AASB/AASBStream.h | 87 -
.../modules/aasb/platform/src/AASBStream.cpp | 24 -
extensions/aasb/platforms/android/.gitignore | 78 -
.../modules/aasb-address-book/CMakeLists.txt | 54 -
.../modules/aasb-address-book/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../assets/meta-aac/aasb-address-book.json | 5 -
.../aasb-address-book/src/main/cpp/dummy.cpp | 1 -
.../android/modules/aasb-alexa/CMakeLists.txt | 53 -
.../android/modules/aasb-alexa/build.gradle | 67 -
.../aasb-alexa/src/main/AndroidManifest.xml | 4 -
.../src/main/assets/meta-aac/aasb-alexa.json | 5 -
.../modules/aasb-alexa/src/main/cpp/dummy.cpp | 1 -
.../android/modules/aasb-apl/CMakeLists.txt | 53 -
.../android/modules/aasb-apl/build.gradle | 67 -
.../aasb-apl/src/main/AndroidManifest.xml | 4 -
.../src/main/assets/meta-aac/aasb-apl.json | 5 -
.../modules/aasb-apl/src/main/cpp/dummy.cpp | 1 -
.../modules/aasb-car-control/CMakeLists.txt | 54 -
.../modules/aasb-car-control/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../assets/meta-aac/aasb-car-control.json | 5 -
.../aasb-car-control/src/main/cpp/dummy.cpp | 1 -
.../android/modules/aasb-cbl/CMakeLists.txt | 53 -
.../android/modules/aasb-cbl/build.gradle | 67 -
.../aasb-cbl/src/main/AndroidManifest.xml | 4 -
.../src/main/assets/meta-aac/aasb-cbl.json | 5 -
.../modules/aasb-cbl/src/main/cpp/dummy.cpp | 1 -
.../modules/aasb-connectivity/CMakeLists.txt | 55 -
.../modules/aasb-connectivity/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../assets/meta-aac/aasb-connectivity.json | 5 -
.../aasb-connectivity/src/main/cpp/dummy.cpp | 1 -
.../android/modules/aasb-core/CMakeLists.txt | 51 -
.../android/modules/aasb-core/build.gradle | 67 -
.../aasb-core/src/main/AndroidManifest.xml | 4 -
.../src/main/assets/meta-aac/aasb-core.json | 5 -
.../modules/aasb-core/src/main/cpp/dummy.cpp | 1 -
.../modules/aasb-messaging/CMakeLists.txt | 54 -
.../modules/aasb-messaging/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../main/assets/meta-aac/aasb-messaging.json | 5 -
.../aasb-messaging/src/main/cpp/dummy.cpp | 1 -
.../modules/aasb-navigation/CMakeLists.txt | 54 -
.../modules/aasb-navigation/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../main/assets/meta-aac/aasb-navigation.json | 5 -
.../aasb-navigation/src/main/cpp/dummy.cpp | 1 -
.../modules/aasb-phone-control/CMakeLists.txt | 54 -
.../modules/aasb-phone-control/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../assets/meta-aac/aasb-phone-control.json | 5 -
.../aasb-phone-control/src/main/cpp/dummy.cpp | 1 -
.../aasb-text-to-speech/CMakeLists.txt | 53 -
.../modules/aasb-text-to-speech/build.gradle | 67 -
.../src/main/AndroidManifest.xml | 4 -
.../assets/meta-aac/aasb-text-to-speech.json | 5 -
.../src/main/cpp/dummy.cpp | 1 -
.../android/modules/aasb/CMakeLists.txt | 54 -
.../android/modules/aasb/build.gradle | 66 -
.../src/main/assets/meta-aac/aace-aasb.json | 5 -
extensions/bluetooth/.gitignore | 4 -
extensions/bluetooth/CMakeLists.txt | 7 -
.../bluetooth/aacs/android/build.gradle | 29 -
.../android/modules/aacs-bluetooth/.gitignore | 2 -
.../modules/aacs-bluetooth/build.gradle | 33 -
.../src/main/AndroidManifest.xml | 6 -
.../aacs-bluetooth.json | 5 -
.../bluetooth/BluetoothModuleFactory.java | 41 -
.../bluetooth/aacs/android/settings.gradle | 1 -
.../modules/bluetooth/CMakeLists.txt | 33 -
.../modules/bluetooth/aac-module-bluetooth.bb | 7 -
.../modules/bluetooth/engine/CMakeLists.txt | 50 -
.../modules/bluetooth/platform/CMakeLists.txt | 40 -
.../bluetooth/platforms/android/.gitignore | 2 -
.../android/modules/bluetooth/CMakeLists.txt | 55 -
.../android/modules/bluetooth/build.gradle | 66 -
.../main/assets/meta-aac/aace-bluetooth.json | 5 -
.../bluetooth/samples/android/build.gradle | 24 -
extensions/loopback-detector/README.md | 91 -
extensions/loopback-detector/extra.conf | 1 -
.../modules/loopback-detector/CMakeLists.txt | 32 -
.../aac-module-loopback-detector.bb | 8 -
.../platforms/android/.gitignore | 78 -
.../modules/loopback-detector/CMakeLists.txt | 50 -
.../modules/loopback-detector/build.gradle | 66 -
.../meta-aac/aace-loopback-detector.json | 5 -
extensions/system-audio/README.md | 200 -
extensions/system-audio/extra.conf | 1 -
.../modules/system-audio/CMakeLists.txt | 63 -
.../system-audio/aac-module-system-audio.bb | 8 -
.../system-audio/engine/CMakeLists.txt | 58 -
.../engine/src/SystemAudioEngine.cpp | 0
.../engine/test/AudioInputImplTest.cpp | 97 -
.../engine/test/AudioOutputImplTest.cpp | 500 -
.../system-audio/engine/test/CMakeLists.txt | 44 -
.../system-audio/engine/test/ThrottleTest.cpp | 84 -
.../system-audio/lib/aal/CMakeLists.txt | 110 -
.../system-audio/lib/aal/src/gstreamer/core.c | 362 -
.../system-audio/lib/aal/src/qsa/core.c | 378 -
modules/aasb/aasb/messages/aasb.yml | 12 +
.../android}/src/main/AndroidManifest.xml | 0
.../src/main/assets/meta-aac/aace-aasb.json | 5 +
.../cpp/include/AACE/JNI/AASB/AASBBinder.h | 0
.../include/AACE/JNI/AASB/AASBStreamBinder.h | 0
.../android}/src/main/cpp/src/AASBBinder.cpp | 0
.../src/main/cpp/src/AASBStreamBinder.cpp | 0
.../main/java/com/amazon/aace/aasb/AASB.java | 0
.../java/com/amazon/aace/aasb/AASBStream.java | 0
modules/aasb/conanfile.py | 9 +
.../include/AACE/Engine/AASB/AASBEngineImpl.h | 66 +
.../AACE/Engine/AASB/AASBEngineService.h | 70 +
.../aasb/engine/src/AASBEngineImpl.cpp | 14 +-
modules/aasb/engine/src/AASBEngineService.cpp | 116 +
.../aasb/platform/include/AACE/AASB/AASB.h | 0
.../include/AACE/AASB/AASBEngineInterfaces.h | 0
.../platform/include/AACE/AASB/AASBStream.h | 31 +
.../aasb/platform/src/AASB.cpp | 0
modules/address-book/.gitignore | 3 -
modules/address-book/CMakeLists.txt | 56 -
modules/address-book/README.md | 362 +-
.../address-book/aac-module-address-book.bb | 7 -
.../AASB/Engine/AddressBook/AASBAddressBook.h | 8 +-
.../AASBAddressBookEngineService.h | 8 +-
.../aasb/messages/AddressBook.yml | 132 +
.../aasb}/src/AASBAddressBook.cpp | 8 +-
.../src/AASBAddressBookEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../assets/meta-aac/aace-addressbook.json | 5 +
.../AACE/JNI/AddressBook/AddressBookBinder.h | 0
.../IAddressBookEntriesFactoryBinder.h | 0
.../cpp/src/AddressBook/AddressBookBinder.cpp | 0
.../AddressBookConfigurationBinder.cpp | 0
.../IAddressBookEntriesFactoryBinder.cpp | 0
.../amazon/aace/addressbook/AddressBook.java | 7 +-
.../IAddressBookEntriesFactory.java | 0
.../config/AddressBookConfiguration.java | 0
.../assets/remove_contacts.plantuml | 19 +-
.../address-book/assets/remove_contacts.png | Bin 24325 -> 20029 bytes
.../assets/remove_navigation_fav.plantuml | 19 +-
.../assets/remove_navigation_fav.png | Bin 24580 -> 20520 bytes
.../assets/upload_contacts.plantuml | 35 +-
.../address-book/assets/upload_contacts.png | Bin 50109 -> 24273 bytes
.../assets/upload_navigation_fav.plantuml | 37 +-
.../assets/upload_navigation_fav.png | Bin 52057 -> 26223 bytes
modules/address-book/conanfile.py | 9 +
modules/address-book/engine/CMakeLists.txt | 65 -
.../AddressBook/AddressBookServiceInterface.h | 2 +
.../address-book/engine/test/CMakeLists.txt | 29 -
modules/address-book/platform/CMakeLists.txt | 36 -
.../include/AACE/AddressBook/AddressBook.h | 8 +-
.../AddressBook/AddressBookEngineInterface.h | 2 +
.../tests}/AddressBookCloudUploaderTest.cpp | 2 +
modules/alexa/.gitignore | 1 -
modules/alexa/CMakeLists.txt | 62 -
modules/alexa/README.md | 1085 +-
modules/alexa/aac-module-alexa.bb | 7 -
.../include/AASB/Engine/Alexa/AASBAlerts.h | 8 +-
.../AASB/Engine/Alexa/AASBAlexaClient.h | 8 +-
.../Engine/Alexa/AASBAlexaEngineService.h | 10 +-
.../AASB/Engine/Alexa/AASBAlexaSpeaker.h | 8 +-
.../AASB/Engine/Alexa/AASBAudioPlayer.h | 8 +-
.../AASB/Engine/Alexa/AASBAuthProvider.h | 8 +-
.../AASB/Engine/Alexa/AASBDeviceSetup.h | 8 +-
.../AASB/Engine/Alexa/AASBDoNotDisturb.h | 8 +-
.../Engine/Alexa/AASBEqualizerController.h | 8 +-
.../Engine/Alexa/AASBExternalMediaAdapter.h | 8 +-
.../AASB/Engine/Alexa/AASBGlobalPreset.h | 8 +-
.../AASB/Engine/Alexa/AASBLocalMediaSource.h | 8 +-
.../Engine/Alexa/AASBMediaPlaybackRequestor.h | 49 +
.../AASB/Engine/Alexa/AASBNotifications.h | 8 +-
.../Engine/Alexa/AASBPlaybackController.h | 6 +-
.../AASB/Engine/Alexa/AASBSpeechRecognizer.h | 8 +-
.../AASB/Engine/Alexa/AASBSpeechSynthesizer.h | 2 +-
.../AASB/Engine/Alexa/AASBTemplateRuntime.h | 8 +-
.../ExternalMediaAdapter/ValidationData.h | 0
modules/alexa/aasb/messages/Alerts.yml | 73 +
modules/alexa/aasb/messages/AlexaClient.yml | 109 +
modules/alexa/aasb/messages/AlexaSpeaker.yml | 75 +
modules/alexa/aasb/messages/AudioPlayer.yml | 45 +
modules/alexa/aasb/messages/AuthProvider.yml | 77 +
modules/alexa/aasb/messages/DeviceSetup.yml | 26 +
modules/alexa/aasb/messages/DoNotDisturb.yml | 21 +
.../aasb/messages/EqualizerController.yml | 81 +
.../aasb/messages/ExternalMediaAdapter.yml | 491 +
modules/alexa/aasb/messages/GlobalPreset.yml | 13 +
.../alexa/aasb/messages/LocalMediaSource.yml | 309 +
.../aasb/messages/MediaPlaybackRequestor.yml | 49 +
modules/alexa/aasb/messages/Notifications.yml | 27 +
.../aasb/messages/PlaybackController.yml | 60 +
.../alexa/aasb/messages/SpeechRecognizer.yml | 59 +
.../alexa/aasb/messages/TemplateRuntime.yml | 60 +
.../alexa/aasb}/src/AASBAlerts.cpp | 8 +-
.../alexa/aasb}/src/AASBAlexaClient.cpp | 16 +-
.../aasb}/src/AASBAlexaEngineService.cpp | 30 +-
.../alexa/aasb}/src/AASBAlexaSpeaker.cpp | 8 +-
.../alexa/aasb}/src/AASBAudioPlayer.cpp | 18 +-
.../alexa/aasb}/src/AASBAuthProvider.cpp | 8 +-
.../alexa/aasb}/src/AASBDeviceSetup.cpp | 6 +-
.../alexa/aasb}/src/AASBDoNotDisturb.cpp | 6 +-
.../aasb}/src/AASBEqualizerController.cpp | 9 +-
.../aasb}/src/AASBExternalMediaAdapter.cpp | 32 +-
.../alexa/aasb}/src/AASBGlobalPreset.cpp | 6 +-
.../alexa/aasb}/src/AASBLocalMediaSource.cpp | 11 +-
.../aasb/src/AASBMediaPlaybackRequestor.cpp | 99 +
.../alexa/aasb}/src/AASBNotifications.cpp | 6 +-
.../aasb}/src/AASBPlaybackController.cpp | 6 +-
.../alexa/aasb}/src/AASBSpeechRecognizer.cpp | 6 +-
.../alexa/aasb}/src/AASBSpeechSynthesizer.cpp | 0
.../alexa/aasb}/src/AASBTemplateRuntime.cpp | 12 +-
.../android}/src/main/AndroidManifest.xml | 0
.../src/main/assets/meta-aac/aace-alexa.json | 5 +
.../cpp/include/AACE/JNI/Alexa/AlertsBinder.h | 0
.../AACE/JNI/Alexa/AlexaClientBinder.h | 0
.../AACE/JNI/Alexa/AlexaConfigurationBinder.h | 0
.../AACE/JNI/Alexa/AlexaSpeakerBinder.h | 0
.../AACE/JNI/Alexa/AudioPlayerBinder.h | 0
.../AACE/JNI/Alexa/AuthProviderBinder.h | 0
.../AACE/JNI/Alexa/DeviceSetupBinder.h | 0
.../AACE/JNI/Alexa/DoNotDisturbBinder.h | 0
.../JNI/Alexa/EqualizerControllerBinder.h | 0
.../JNI/Alexa/ExternalMediaAdapterBinder.h | 0
.../AACE/JNI/Alexa/GlobalPresetBinder.h | 0
.../AACE/JNI/Alexa/LocalMediaSourceBinder.h | 0
.../JNI/Alexa/MediaPlaybackRequestorBinder.h | 103 +
.../AACE/JNI/Alexa/NotificationsBinder.h | 0
.../AACE/JNI/Alexa/PlaybackControllerBinder.h | 0
.../AACE/JNI/Alexa/SpeechRecognizerBinder.h | 0
.../AACE/JNI/Alexa/SpeechSynthesizerBinder.h | 0
.../AACE/JNI/Alexa/TemplateRuntimeBinder.h | 0
.../src/main/cpp/src/Alexa/AlertsBinder.cpp | 0
.../main/cpp/src/Alexa/AlexaClientBinder.cpp | 0
.../src/Alexa/AlexaConfigurationBinder.cpp | 27 +-
.../main/cpp/src/Alexa/AlexaSpeakerBinder.cpp | 0
.../main/cpp/src/Alexa/AudioPlayerBinder.cpp | 0
.../main/cpp/src/Alexa/AuthProviderBinder.cpp | 0
.../main/cpp/src/Alexa/DeviceSetupBinder.cpp | 0
.../main/cpp/src/Alexa/DoNotDisturbBinder.cpp | 0
.../src/Alexa/EqualizerControllerBinder.cpp | 0
.../src/Alexa/ExternalMediaAdapterBinder.cpp | 0
.../main/cpp/src/Alexa/GlobalPresetBinder.cpp | 0
.../cpp/src/Alexa/LocalMediaSourceBinder.cpp | 0
.../Alexa/MediaPlaybackRequestorBinder.cpp | 104 +
.../cpp/src/Alexa/NotificationsBinder.cpp | 0
.../src/Alexa/PlaybackControllerBinder.cpp | 0
.../cpp/src/Alexa/SpeechRecognizerBinder.cpp | 0
.../cpp/src/Alexa/SpeechSynthesizerBinder.cpp | 0
.../cpp/src/Alexa/TemplateRuntimeBinder.cpp | 0
.../java/com/amazon/aace/alexa/Alerts.java | 7 +-
.../com/amazon/aace/alexa/AlexaClient.java | 7 +-
.../amazon/aace/alexa/AlexaProperties.java | 0
.../com/amazon/aace/alexa/AlexaSpeaker.java | 7 +-
.../com/amazon/aace/alexa/AudioPlayer.java | 7 +-
.../com/amazon/aace/alexa/AuthProvider.java | 7 +-
.../com/amazon/aace/alexa/DeviceSetup.java | 5 +
.../com/amazon/aace/alexa/DoNotDisturb.java | 7 +-
.../aace/alexa/EqualizerController.java | 7 +-
.../aace/alexa/ExternalMediaAdapter.java | 7 +-
.../com/amazon/aace/alexa/GlobalPreset.java | 9 +-
.../amazon/aace/alexa/LocalMediaSource.java | 7 +-
.../aace/alexa/MediaPlaybackRequestor.java | 159 +
.../com/amazon/aace/alexa/Notifications.java | 7 +-
.../amazon/aace/alexa/PlaybackController.java | 178 +
.../amazon/aace/alexa/SpeechRecognizer.java | 7 +-
.../amazon/aace/alexa/SpeechSynthesizer.java | 7 +-
.../amazon/aace/alexa/TemplateRuntime.java | 7 +-
.../aace/alexa/config/AlexaConfiguration.java | 95 +-
...plete-interaction-tap-to-talk-sequence.svg | 166 +
...-interaction-tap-to-talk-sequence.plantuml | 160 +
modules/alexa/cmake/FindAVS.cmake | 109 -
modules/alexa/cmake/aac-alexa-module.cmake | 4 +
modules/alexa/conanfile.py | 16 +
modules/alexa/engine/CMakeLists.txt | 156 -
.../AACE/Engine/Alexa/AlertsEngineImpl.h | 4 +-
.../Engine/Alexa/AlexaComponentInterface.h | 6 +-
.../AACE/Engine/Alexa/AlexaEngineService.h | 55 +-
.../Engine/Alexa/AudioChannelEngineImpl.h | 70 +-
.../Engine/Alexa/AuthProviderEngineImpl.h | 1 -
.../AACE/Engine/Alexa/AuthorizationManager.h | 17 +-
.../AACE/Engine/Alexa/ChannelVolumeManager.h | 129 +
.../Engine/Alexa/DeviceSettingsDelegate.h | 2 +-
.../AACE/Engine/Alexa/DeviceSetupEngineImpl.h | 21 +-
.../Alexa/DiscoveredPlayerSenderInterface.h | 2 +
.../Engine/Alexa/DoNotDisturbEngineImpl.h | 4 +-
.../AACE/Engine/Alexa/DuckingInterface.h | 49 +
.../Alexa/EqualizerControllerEngineImpl.h | 6 +-
.../Alexa/ExternalMediaPlayerEngineImpl.h | 3 +-
.../AACE/Engine/Alexa/LocaleAssetsManager.h | 34 +-
.../Engine/Alexa/MediaPlaybackRequestor.h | 114 +
.../Alexa/MediaPlaybackRequestorEngineImpl.h | 90 +
.../Engine/Alexa/NotificationsEngineImpl.h | 4 +-
.../Engine/Alexa/SpeechRecognizerEngineImpl.h | 76 +-
.../AACE/Engine/Alexa/SystemSoundPlayer.h | 1 +
.../Engine/Alexa/TemplateRuntimeEngineImpl.h | 17 +-
modules/alexa/engine/src/AdapterUtils.cpp | 6 +-
modules/alexa/engine/src/AlertsEngineImpl.cpp | 4 +-
.../engine/src/AlexaAuthorizationProvider.cpp | 3 +-
.../engine/src/AlexaConfigurationImpl.cpp | 22 +-
.../alexa/engine/src/AlexaEngineService.cpp | 268 +-
modules/alexa/engine/src/AlexaMetricSink.cpp | 2 +-
.../engine/src/AudioChannelEngineImpl.cpp | 203 +-
.../engine/src/AuthProviderEngineImpl.cpp | 17 +-
.../alexa/engine/src/AuthorizationManager.cpp | 13 +-
.../alexa/engine/src/ChannelVolumeManager.cpp | 201 +
.../engine/src/DeviceSettingsDelegate.cpp | 2 +-
.../engine/src/DeviceSetupEngineImpl.cpp | 65 +-
.../engine/src/DoNotDisturbEngineImpl.cpp | 4 +-
.../src/EqualizerControllerEngineImpl.cpp | 4 +-
.../src/ExternalMediaAdapterHandler.cpp | 2 +-
.../alexa/engine/src/ExternalMediaPlayer.cpp | 104 +-
.../src/ExternalMediaPlayerEngineImpl.cpp | 3 +-
.../alexa/engine/src/LocaleAssetsManager.cpp | 46 +-
.../engine/src/MediaPlaybackRequestor.cpp | 168 +
.../src/MediaPlaybackRequestorEngineImpl.cpp | 157 +
.../engine/src/NotificationsEngineImpl.cpp | 15 +-
.../engine/src/SpeechRecognizerEngineImpl.cpp | 67 +-
.../alexa/engine/src/SystemSoundPlayer.cpp | 3 +
.../engine/src/TemplateRuntimeEngineImpl.cpp | 22 +-
modules/alexa/engine/test/CMakeLists.txt | 169 -
...aInterfaceMessageSenderInternalInterface.h | 61 -
.../AACE/Test/AVS/MockAttachmentManager.h | 50 -
.../AACE/Test/AVS/MockCustomerDataManager.h | 37 -
...MockEndpointRegistrationManagerInterface.h | 50 -
.../Test/Alexa/AlexaMockComponentFactory.h | 242 -
modules/alexa/engine/test/src/main.cpp | 6 -
modules/alexa/platform/CMakeLists.txt | 2 +
.../platform/include/AACE/Alexa/Alerts.h | 7 +-
.../platform/include/AACE/Alexa/AlexaClient.h | 7 +-
.../include/AACE/Alexa/AlexaConfiguration.h | 43 +-
.../AACE/Alexa/AlexaEngineInterfaces.h | 105 +
.../include/AACE/Alexa/AlexaSpeaker.h | 7 +-
.../platform/include/AACE/Alexa/AudioPlayer.h | 7 +-
.../include/AACE/Alexa/AuthProvider.h | 7 +-
.../platform/include/AACE/Alexa/DeviceSetup.h | 5 +
.../include/AACE/Alexa/DoNotDisturb.h | 7 +-
.../include/AACE/Alexa/EqualizerController.h | 7 +-
.../include/AACE/Alexa/ExternalMediaAdapter.h | 8 +-
.../include/AACE/Alexa/GlobalPreset.h | 10 +-
.../include/AACE/Alexa/LocalMediaSource.h | 7 +-
.../AACE/Alexa/MediaPlaybackRequestor.h | 102 +
.../include/AACE/Alexa/Notifications.h | 7 +-
.../include/AACE/Alexa/PlaybackController.h | 7 +-
.../include/AACE/Alexa/SpeechRecognizer.h | 7 +-
.../include/AACE/Alexa/SpeechSynthesizer.h | 7 +-
.../include/AACE/Alexa/TemplateRuntime.h | 7 +-
.../platform/src/MediaPlaybackRequestor.cpp | 39 +
...aInterfaceMessageSenderInternalInterface.h | 81 +
.../Test/Unit/AVS/MockAttachmentManager.h | 52 +
.../Test/Unit}/AVS/MockAudioPlayerInterface.h | 2 +
.../AVS/MockAudioPlayerObserverInterface.h | 2 +
.../Unit}/AVS/MockAuthDelegateInterface.h | 8 +-
.../Unit}/AVS/MockConnectionStatusObserver.h | 8 +-
.../Test/Unit/AVS/MockCustomerDataManager.h | 39 +
.../Test/Unit/AVS}/MockDeviceSettingStorage.h | 0
.../Unit}/AVS/MockDeviceSettingsManager.h | 8 +-
...MockEndpointRegistrationManagerInterface.h | 59 +
.../MockInternetConnectionMonitorInterface.h | 8 +-
.../AACE/Test/Unit}/AVS/MockMessageObserver.h | 8 +-
.../AACE/Test/Unit}/AVS/MockMessageRouter.h | 8 +-
.../AACE/Test/Unit}/AVS/MockMessageStorage.h | 8 +-
.../AACE/Test/Unit}/AVS/MockMetricRecorder.h | 8 +-
.../MockNotificationsAudioFactoryInterface.h | 8 +-
...ckRenderPlayerInfoCardsProviderInterface.h | 8 +-
.../AACE/Test/Unit}/AVS/MockSpeakerManager.h | 0
.../Unit}/AVS/MockSpeechConfirmationSetting.h | 8 +-
.../AACE/Test/Unit}/AVS/MockSpeechEncoder.h | 8 +-
.../AVS/MockSystemSoundPlayerInterface.h | 8 +-
.../AVS/MockWakeWordConfirmationSetting.h | 8 +-
.../Test/Unit}/AVS/MockWakeWordsSetting.h | 8 +-
.../Unit/Alexa/AlexaMockComponentFactory.h | 244 +
.../AACE/Test/Unit}/Alexa/AlexaTestHelper.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockAlerts.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockAlexaClient.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockAudioPlayer.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockAuthProvider.h | 8 +-
.../Unit}/Alexa/MockAuthorizationManager.h | 8 +-
.../Unit}/Alexa/MockDeviceSettingsDelegate.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockDeviceSetup.h | 8 +-
.../Test/Unit}/Alexa/MockInitiatorVerifier.h | 8 +-
.../AACE/Test/Unit}/Alexa/MockNotifications.h | 8 +-
.../Test/Unit}/Alexa/MockPlaybackController.h | 8 +-
.../Test/Unit}/Alexa/MockSpeechRecognizer.h | 8 +-
.../Test/Unit}/Alexa/MockSpeechSynthesizer.h | 8 +-
.../Test/Unit}/Alexa/MockTemplateRuntime.h | 8 +-
.../Unit}/Alexa/MockWakewordEngineAdapter.h | 8 +-
.../src/AlexaMockComponentFactory.cpp | 114 +-
.../unit/framework}/src/AlexaTestHelper.cpp | 8 +-
.../unit/framework}/src/StubMiscStorage.cpp | 0
.../unit/tests}/AlertsEngineImplTest.cpp | 12 +-
.../tests}/AlexaAuthorizationProviderTest.cpp | 10 +-
.../unit/tests}/AlexaClientEngineImplTest.cpp | 4 +-
.../tests}/AlexaConfigurationImplTest.cpp | 21 +
.../tests}/AlexaEngineClientObserverTest.cpp | 0
.../unit/tests}/AlexaEngineLoggerTest.cpp | 4 +-
.../unit/tests}/AudioPlayerEngineImplTest.cpp | 12 +-
.../tests}/AuthProviderEngineImplTest.cpp | 22 +-
.../unit/tests}/AuthorizationManagerTest.cpp | 28 +-
.../unit/tests}/DeviceSetupEngineImplTest.cpp | 14 +-
.../tests}/DoNotDisturbEngineImplTest.cpp | 12 +-
.../tests}/NotificationsEngineImplTest.cpp | 12 +-
.../PlaybackControllerEngineImplTest.cpp | 4 +-
.../tests}/SpeechRecognizerEngineImplTest.cpp | 93 +-
.../SpeechSynthesizerEngineImplTest.cpp | 12 +-
.../tests}/TemplateRuntimeEngineImplTest.cpp | 17 +-
modules/apl/CMakeLists.txt | 55 -
modules/apl/README.md | 173 +-
modules/apl/aac-module-apl.bb | 7 -
.../aasb}/include/AASB/Engine/APL/AASBAPL.h | 10 +-
.../AASB/Engine/APL/AASBAPLEngineService.h | 8 +-
modules/apl/aasb/messages/APL.yml | 174 +
.../apl/aasb}/src/AASBAPL.cpp | 78 +-
.../apl/aasb}/src/AASBAPLEngineService.cpp | 8 +-
.../apl/android}/src/main/AndroidManifest.xml | 0
.../src/main/assets/meta-aac/aace-apl.json | 5 +
.../main/cpp/include/AACE/JNI/APL/APLBinder.h | 1 +
.../AACE/JNI/APL/APLConfigurationBinder.h | 0
.../src/main/cpp/src/APL/APLBinder.cpp | 28 +
.../cpp/src/APL/APLConfigurationBinder.cpp | 0
.../main/java/com/amazon/aace/apl/APL.java | 45 +
.../aace/apl/config/APLConfiguration.java | 0
modules/apl/assets/aac-apl-general-flow.png | Bin 0 -> 49047 bytes
.../aac-apl-platform-properties.plantuml | 41 +
.../assets/aac-apl-render-document.plantuml | 47 +
.../aac-apl-set-platform-properties.png | Bin 0 -> 35862 bytes
modules/apl/conanfile.py | 13 +
modules/apl/engine/CMakeLists.txt | 72 -
.../include/AACE/Engine/APL/APLEngineImpl.h | 35 +-
.../Engine/APL/APLRuntimePropertyGenerator.h | 45 +
modules/apl/engine/src/APLEngineImpl.cpp | 71 +-
modules/apl/engine/src/APLEngineService.cpp | 4 +
.../src/APLRuntimePropertyGenerator.cpp | 89 +
modules/apl/platform/CMakeLists.txt | 36 -
modules/apl/platform/include/AACE/APL/APL.h | 48 +
.../include/AACE/APL/APLEngineInterface.h | 3 +
modules/apl/platform/src/APL.cpp | 6 +
{extensions => modules}/bluetooth/README.md | 0
.../android}/src/main/AndroidManifest.xml | 0
.../main/assets/meta-aac/aace-bluetooth.json | 5 +
.../JNI/Bluetooth/BluetoothProviderBinder.h | 0
.../Bluetooth/BluetoothServerSocketBinder.h | 0
.../JNI/Bluetooth/BluetoothSocketBinder.h | 0
.../AACE/JNI/Bluetooth/GATTServerBinder.h | 0
.../src/Bluetooth/BluetoothProviderBinder.cpp | 0
.../Bluetooth/BluetoothServerSocketBinder.cpp | 0
.../src/Bluetooth/BluetoothSocketBinder.cpp | 0
.../cpp/src/Bluetooth/GATTServerBinder.cpp | 0
.../aace/bluetooth/BluetoothProvider.java | 0
.../aace/bluetooth/BluetoothServerSocket.java | 0
.../aace/bluetooth/BluetoothSocket.java | 0
.../com/amazon/aace/bluetooth/GATTServer.java | 0
modules/bluetooth/assets/ble.plantuml | 36 +
modules/bluetooth/assets/ble.png | Bin 0 -> 38498 bytes
.../assets/bluetooth_classic.plantuml | 41 +
.../bluetooth/assets/bluetooth_classic.png | Bin 0 -> 44980 bytes
modules/bluetooth/conanfile.py | 9 +
.../Engine/Bluetooth/BluetoothEngineService.h | 0
.../Bluetooth/BluetoothServiceInterface.h | 0
.../Engine/Bluetooth/GATTCharacteristic.h | 0
.../AACE/Engine/Bluetooth/GATTDescriptor.h | 0
.../Engine/Bluetooth/GATTServerEngineImpl.h | 0
.../Engine/Bluetooth/GATTServerInterface.h | 0
.../AACE/Engine/Bluetooth/GATTService.h | 0
.../engine/src/BluetoothEngineService.cpp | 4 +-
.../bluetooth/engine/src/GATTDescriptor.cpp | 0
.../engine/src/GATTServerEngineImpl.cpp | 0
.../bluetooth/engine/src/GATTService.cpp | 0
.../Bluetooth/BluetoothEngineInterfaces.h | 2 +
.../AACE/Bluetooth/BluetoothProvider.h | 0
.../AACE/Bluetooth/BluetoothServerSocket.h | 0
.../include/AACE/Bluetooth/BluetoothSocket.h | 0
.../include/AACE/Bluetooth/ByteArray.h | 0
.../include/AACE/Bluetooth/GATTServer.h | 0
.../platform/src/BluetoothProvider.cpp | 0
.../bluetooth/platform/src/ByteArray.cpp | 0
.../bluetooth/platform/src/GATTServer.cpp | 0
.../bluetooth/samples/android/.gitignore | 0
.../bluetooth/samples/android/build.gradle | 24 +
.../modules/sample-bluetooth}/.gitignore | 0
.../modules/sample-bluetooth/build.gradle | 0
.../sample-bluetooth/gradle.properties | 0
.../sample-bluetooth}/proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../assets/sample-app/sample-bluetooth.json | 0
.../bluetooth/BluetoothModuleFactory.java | 0
.../bluetooth/BluetoothProviderHandler.java | 0
.../BluetoothServerSocketHandler.java | 0
.../bluetooth/BluetoothSocketHandler.java | 0
.../bluetooth/GATTServerHandler.java | 0
.../src/main/res/values/strings.xml | 0
.../bluetooth/samples/android/settings.gradle | 0
modules/car-control/.gitignore | 3 -
modules/car-control/CMakeLists.txt | 57 -
modules/car-control/README.md | 2065 +-
modules/car-control/aac-module-car-control.bb | 7 -
.../AASB/Engine/CarControl/AASBCarControl.h | 8 +-
.../CarControl/AASBCarControlEngineService.h | 10 +-
.../car-control/aasb/messages/CarControl.yml | 143 +
.../car-control/aasb}/src/AASBCarControl.cpp | 18 +-
.../aasb}/src/AASBCarControlEngineService.cpp | 14 +-
.../android}/src/main/AndroidManifest.xml | 0
.../assets/meta-aac/aace-car-control.json | 5 +
.../AACE/JNI/CarControl/CarControlBinder.h | 0
.../cpp/src/CarControl/CarControlBinder.cpp | 0
.../CarControlConfigurationBinder.cpp | 0
.../amazon/aace/carControl/CarControl.java | 7 +-
.../aace/carControl/CarControlAssets.java | 0
.../carControl/CarControlConfiguration.java | 0
.../adjusting_mode_of_a_setting.plantuml | 45 +
.../assets/adjusting_mode_of_a_setting.png | Bin 0 -> 29596 bytes
.../adjusting_value_of_a_setting.plantuml | 45 +
.../assets/adjusting_value_of_a_setting.png | Bin 0 -> 30030 bytes
.../assets/setting_mode_of_a_setting.plantuml | 45 +
.../assets/setting_mode_of_a_setting.png | Bin 0 -> 28043 bytes
.../setting_value_of_a_setting.plantuml | 45 +
.../assets/setting_value_of_a_setting.png | Bin 0 -> 29274 bytes
.../assets/turning_off_endpoint.plantuml | 45 +
.../assets/turning_off_endpoint.png | Bin 0 -> 27397 bytes
...rning_off_toggle_state_of_setting.plantuml | 45 +
.../turning_off_toggle_state_of_setting.png | Bin 0 -> 28347 bytes
.../assets/turning_on_endpoint.plantuml | 45 +
.../assets/turning_on_endpoint.png | Bin 0 -> 27276 bytes
...urning_on_toggle_state_of_setting.plantuml | 45 +
.../turning_on_toggle_state_of_setting.png | Bin 0 -> 28246 bytes
modules/car-control/conanfile.py | 9 +
modules/car-control/engine/CMakeLists.txt | 92 -
.../CarControl/CarControlServiceInterface.h | 2 +
.../car-control/engine/test/CMakeLists.txt | 24 -
modules/car-control/platform/CMakeLists.txt | 40 -
.../include/AACE/CarControl/CarControl.h | 7 +-
modules/cbl/CMakeLists.txt | 55 -
modules/cbl/README.md | 207 +-
modules/cbl/aac-module-cbl.bb | 7 -
.../aasb}/include/AASB/Engine/CBL/AASBCBL.h | 13 +-
.../AASB/Engine/CBL/AASBCBLEngineService.h | 44 +
modules/cbl/aasb/messages/CBL.yml | 93 +
.../cbl/aasb}/src/AASBCBL.cpp | 31 +-
.../cbl/aasb}/src/AASBCBLEngineService.cpp | 12 +-
.../cbl/android}/src/main/AndroidManifest.xml | 0
.../src/main/assets/meta-aac/aace-cbl.json | 5 +
.../main/cpp/include/AACE/JNI/CBL/CBLBinder.h | 0
.../src/main/cpp/src/CBL/CBLBinder.cpp | 0
.../cpp/src/CBL/CBLConfigurationBinder.cpp | 0
.../main/java/com/amazon/aace/cbl/CBL.java | 7 +-
.../aace/cbl/config/CBLConfiguration.java | 0
modules/cbl/conanfile.py | 9 +
modules/cbl/engine/CMakeLists.txt | 61 -
.../engine/src/CBLAuthorizationProvider.cpp | 2 +
modules/cbl/engine/test/CMakeLists.txt | 29 -
modules/cbl/platform/CMakeLists.txt | 36 -
modules/cbl/platform/include/AACE/CBL/CBL.h | 7 +-
.../include/AACE/CBL/CBLEngineInterface.h | 2 +
.../tests}/CBLAuthorizationProviderTest.cpp | 8 +-
modules/connectivity/CMakeLists.txt | 54 -
modules/connectivity/README.md | 224 +-
.../connectivity/aac-module-connectivity.bb | 7 -
.../Connectivity/AASBAlexaConnectivity.h | 8 +-
.../AASBConnectivityEngineService.h | 8 +-
.../aasb/messages/AlexaConnectivity.yml | 46 +
.../aasb}/src/AASBAlexaConnectivity.cpp | 27 +-
.../src/AASBConnectivityEngineService.cpp | 14 +-
.../android}/src/main/AndroidManifest.xml | 0
.../assets/meta-aac/aace-connectivity.json | 5 +
.../Connectivity/AlexaConnectivityBinder.h | 0
.../Connectivity/AlexaConnectivityBinder.cpp | 0
.../aace/connectivity/AlexaConnectivity.java | 5 +
.../Connectivity-Sequence-CloudAskReport.png | Bin 43591 -> 21281 bytes
.../Connectivity-Sequence-CloudAskReport.puml | 52 +-
.../Connectivity-Sequence-ConnectCloud.png | Bin 46817 -> 0 bytes
.../Connectivity-Sequence-ConnectCloud.puml | 36 -
.../Connectivity-Sequence-DeviceDiscovery.png | Bin 32293 -> 13800 bytes
...Connectivity-Sequence-DeviceDiscovery.puml | 41 +-
...ctivity-Sequence-sendConnectivityEvent.png | Bin 72256 -> 42912 bytes
...tivity-Sequence-sendConnectivityEvent.puml | 65 +-
modules/connectivity/conanfile.py | 9 +
modules/connectivity/engine/CMakeLists.txt | 79 -
.../connectivity/engine/test/CMakeLists.txt | 73 -
modules/connectivity/platform/CMakeLists.txt | 39 -
.../AACE/Connectivity/AlexaConnectivity.h | 5 +
.../AlexaConnectivityEngineInterface.h | 2 +
.../Connectivity/MockAlexaConnectivity.h | 8 +-
.../AlexaConnectivityEngineImplTest.cpp | 18 +-
modules/core/.gitignore | 1 -
modules/core/AUDIO.md | 395 +
modules/core/AUTHORIZATION.md | 212 +
modules/core/CMakeLists.txt | 61 -
modules/core/README.md | 952 +-
modules/core/RUNTIME_PROPERTIES.md | 145 +
modules/core/aac-module-core.bb | 10 -
.../Engine/Audio/AASBAudioEngineService.h | 8 +-
.../AASB/Engine/Audio/AASBAudioInput.h | 95 +
.../Engine/Audio/AASBAudioInputProvider.h | 59 +
.../AASB/Engine/Audio/AASBAudioOutput.h | 101 +
.../Engine/Audio/AASBAudioOutputProvider.h | 56 +
.../Engine/Authorization/AASBAuthorization.h | 11 +-
.../AASBAuthorizationEngineService.h | 8 +-
.../AASB/Engine/DeviceUsage/AASBDeviceUsage.h | 8 +-
.../AASBDeviceUsageEngineService.h | 8 +-
.../Location/AASBLocationEngineService.h | 8 +-
.../Engine/Location/AASBLocationProvider.h | 8 +-
.../Engine/Network/AASBNetworkEngineService.h | 8 +-
.../Engine/Network/AASBNetworkInfoProvider.h | 8 +-
.../PropertyManager/AASBPropertyManager.h | 8 +-
.../AASBPropertyManagerEngineService.h | 8 +-
.../aasb/include/AASB/Utils/StringUtils.h | 35 +
modules/core/aasb/include/AASB/Utils/UUID.h | 33 +
modules/core/aasb/messages/AudioInput.yml | 35 +
modules/core/aasb/messages/AudioOutput.yml | 322 +
modules/core/aasb/messages/Authorization.yml | 100 +
modules/core/aasb/messages/DeviceUsage.yml | 12 +
.../core/aasb/messages/LocationProvider.yml | 55 +
.../aasb/messages/NetworkInfoProvider.yml | 47 +
.../core/aasb/messages/PropertyManager.yml | 59 +
.../src/Audio/AASBAudioEngineService.cpp | 6 +-
.../core/aasb}/src/Audio/AASBAudioInput.cpp | 14 +-
.../src/Audio/AASBAudioInputProvider.cpp | 8 +-
.../core/aasb}/src/Audio/AASBAudioOutput.cpp | 114 +-
.../src/Audio/AASBAudioOutputProvider.cpp | 8 +-
.../src/Authorization/AASBAuthorization.cpp | 60 +-
.../AASBAuthorizationEngineService.cpp | 8 +-
.../aasb}/src/DeviceUsage/AASBDeviceUsage.cpp | 6 +-
.../AASBDeviceUsageEngineService.cpp | 11 +-
.../Location/AASBLocationEngineService.cpp | 8 +-
.../src/Location/AASBLocationProvider.cpp | 8 +-
.../src/Network/AASBNetworkEngineService.cpp | 8 +-
.../src/Network/AASBNetworkInfoProvider.cpp | 8 +-
.../PropertyManager/AASBPropertyManager.cpp | 9 +-
.../AASBPropertyManagerEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../src/main/assets/meta-aac/aace-core.json | 5 +
.../include/AACE/JNI/Audio/AudioInputBinder.h | 0
.../AACE/JNI/Audio/AudioInputProviderBinder.h | 0
.../AACE/JNI/Audio/AudioOutputBinder.h | 23 +
.../JNI/Audio/AudioOutputProviderBinder.h | 0
.../AACE/JNI/Audio/AudioStreamBinder.h | 0
.../JNI/Authorization/AuthorizationBinder.h | 0
.../cpp/include/AACE/JNI/Core/EngineBinder.h | 0
.../AACE/JNI/Core/EngineConfigurationBinder.h | 0
.../AACE/JNI/Core/MessageBrokerBinder.h | 49 +
.../AACE/JNI/Core/MessageStreamBinder.h | 67 +
.../cpp/include/AACE/JNI/Core/NativeLib.h | 0
.../AACE/JNI/Core/PlatformInterfaceBinder.h | 0
.../AACE/JNI/DeviceUsage/DeviceUsageBinder.h | 0
.../JNI/Location/LocationProviderBinder.h | 0
.../include/AACE/JNI/Logger/LoggerBinder.h | 0
.../AACE/JNI/Metrics/MetricsUploaderBinder.h | 0
.../cpp/include/AACE/JNI/Native/GlobalRef.h | 0
.../cpp/include/AACE/JNI/Native/JavaArray.h | 0
.../cpp/include/AACE/JNI/Native/JavaClass.h | 0
.../cpp/include/AACE/JNI/Native/JavaEnum.h | 0
.../cpp/include/AACE/JNI/Native/JavaField.h | 0
.../cpp/include/AACE/JNI/Native/JavaMethod.h | 0
.../cpp/include/AACE/JNI/Native/JavaObject.h | 0
.../cpp/include/AACE/JNI/Native/JavaString.h | 0
.../include/AACE/JNI/Native/NativeMacros.h | 3 +-
.../include/AACE/JNI/Native/ThreadContext.h | 0
.../JNI/Network/NetworkInfoProviderBinder.h | 0
.../PropertyManager/PropertyManagerBinder.h | 0
.../JNI/Vehicle/VehicleConfigurationBinder.h | 0
.../main/cpp/src/Audio/AudioInputBinder.cpp | 0
.../src/Audio/AudioInputProviderBinder.cpp | 0
.../main/cpp/src/Audio/AudioOutputBinder.cpp | 47 +
.../src/Audio/AudioOutputProviderBinder.cpp | 0
.../main/cpp/src/Audio/AudioStreamBinder.cpp | 0
.../src/Authorization/AuthorizationBinder.cpp | 0
.../cpp/src/DeviceUsage/DeviceUsageBinder.cpp | 0
.../src/main/cpp/src/EngineBinder.cpp | 29 +
.../cpp/src/EngineConfigurationBinder.cpp | 0
.../src/Location/LocationProviderBinder.cpp | 0
.../src/main/cpp/src/Logger/LoggerBinder.cpp | 0
.../src/Logger/LoggerConfigurationBinder.cpp | 0
.../src/main/cpp/src/MessageBrokerBinder.cpp | 134 +
.../src/main/cpp/src/MessageStreamBinder.cpp | 115 +
.../cpp/src/Metrics/MetricsUploaderBinder.cpp | 0
.../src/main/cpp/src/Native/JavaArray.cpp | 0
.../src/main/cpp/src/Native/JavaClass.cpp | 0
.../src/main/cpp/src/Native/JavaField.cpp | 3 -
.../src/main/cpp/src/Native/JavaMethod.cpp | 3 -
.../src/main/cpp/src/Native/JavaObject.cpp | 0
.../src/main/cpp/src/Native/JavaString.cpp | 0
.../src/main/cpp/src/Native/ThreadContext.cpp | 0
.../src/Network/NetworkInfoProviderBinder.cpp | 0
.../main/cpp/src/PlatformInterfaceBinder.cpp | 3 -
.../PropertyManager/PropertyManagerBinder.cpp | 0
.../Storage/StorageConfigurationBinder.cpp | 0
.../Vehicle/VehicleConfigurationBinder.cpp | 0
.../com/amazon/aace/audio/AudioFormat.java | 0
.../com/amazon/aace/audio/AudioInput.java | 0
.../amazon/aace/audio/AudioInputProvider.java | 7 +-
.../com/amazon/aace/audio/AudioOutput.java | 69 +
.../aace/audio/AudioOutputProvider.java | 7 +-
.../com/amazon/aace/audio/AudioStream.java | 0
.../aace/authorization/Authorization.java | 7 +-
.../com/amazon/aace/core/CoreProperties.java | 0
.../java/com/amazon/aace/core/Engine.java | 27 +-
.../com/amazon/aace/core/MessageBroker.java | 55 +
.../com/amazon/aace/core/MessageStream.java | 136 +
.../java/com/amazon/aace/core/NativeRef.java | 0
.../amazon/aace/core/PlatformInterface.java | 0
.../aace/core/config/ConfigurationFile.java | 0
.../aace/core/config/EngineConfiguration.java | 0
.../aace/core/config/StreamConfiguration.java | 0
.../amazon/aace/deviceusage/DeviceUsage.java | 0
.../com/amazon/aace/location/Location.java | 0
.../aace/location/LocationProvider.java | 5 +
.../java/com/amazon/aace/logger/Logger.java | 7 +-
.../logger/config/LoggerConfiguration.java | 0
.../aace/network/NetworkInfoProvider.java | 7 +-
.../aace/network/NetworkProperties.java | 41 +
.../aace/propertymanager/PropertyManager.java | 7 +-
.../storage/config/StorageConfiguration.java | 0
.../aace/vehicle/VehicleProperties.java | 0
.../vehicle/config/VehicleConfiguration.java | 0
.../core/assets/PropertyManager_changed.png | Bin 58607 -> 0 bytes
modules/core/assets/PropertyManager_get.png | Bin 14470 -> 0 bytes
modules/core/assets/PropertyManager_set.png | Bin 20177 -> 0 bytes
.../diagrams/out/AuthProvider_login.png | Bin 0 -> 98823 bytes
.../diagrams/out/AuthProvider_logout.png | Bin 0 -> 90982 bytes
.../out}/Authorization_cancel.png | Bin
.../out}/Authorization_logout.png | Bin
.../out}/Authorization_start.png | Bin
.../out/authprovider-cancel-sequence.png | Bin 0 -> 18159 bytes
.../out/authprovider-logout-sequence.png | Bin 0 -> 26550 bytes
.../out/authprovider-start-sequence.png | Bin 0 -> 76603 bytes
modules/core/assets/diagrams/out/ducking.png | Bin 0 -> 54173 bytes
.../assets/diagrams/out/ducking_3p_event.png | Bin 0 -> 66693 bytes
.../diagrams/src/AudioInput_audio.plantuml | 31 +
.../diagrams/src/AudioInput_duck.plantuml | 44 +
.../diagrams/src/AudioOutput_duck3rd.plantuml | 49 +
.../diagrams/src/AudioOutput_reply.plantuml | 34 +
.../src}/Authorization_cancel.plantuml | 0
.../src}/Authorization_logout.plantuml | 0
.../src}/Authorization_start.plantuml | 0
.../src/authprovider-cancel-sequence.plantuml | 15 +
.../src/authprovider-logout-sequence.plantuml | 19 +
.../src/authprovider-start-sequence.plantuml | 33 +
modules/core/cmake/FindSQLite3.cmake | 18 -
modules/core/cmake/aac-core-module.cmake | 92 +
modules/core/conanfile.py | 47 +
modules/core/engine/CMakeLists.txt | 263 -
.../Engine/Audio/AudioInputChannelInterface.h | 22 +-
.../AACE/Engine/Audio/AudioInputEngineImpl.h | 2 +-
.../Audio/AudioOutputChannelInterface.h | 3 +
.../AACE/Engine/Audio/AudioOutputEngineImpl.h | 4 +
.../AACE/Engine/Audio/IStreamAudioStream.h | 55 +
.../include/AACE/Engine/Core/EngineImpl.h | 18 +-
.../AACE/Engine/Core/ServiceDescription.h | 6 +
.../DeviceUsage/DeviceUsageEngineImpl.h | 2 -
.../Location/LocationServiceInterface.h | 2 +
.../LocationServiceObserverInterface.h | 2 +
.../AACE/Engine/MessageBroker}/Message.h | 13 +-
.../MessageBrokerEngineService.h | 77 +
.../Engine/MessageBroker/MessageBrokerImpl.h | 99 +
.../MessageBroker}/MessageBrokerInterface.h | 8 +-
.../MessageBrokerServiceInterface.h | 46 +
.../MessageHandlerEngineService.h | 79 +
.../Engine/MessageBroker}/PublishMessage.h | 14 +-
.../Engine/MessageBroker/StreamManagerImpl.h | 58 +
.../MessageBroker/StreamManagerInterface.h | 41 +
.../Engine/Network/NetworkEngineService.h | 5 +
.../AACE/Engine/Network/NetworkInfoObserver.h | 9 +
.../Network/NetworkInfoProviderEngineImpl.h | 1 +
.../PropertyListenerInterface.h | 2 +
.../include/AACE/Engine/Utils/JSON/JSON.h | 2 +-
.../AACE/Engine/Utils/String/StringUtils.h | 3 -
.../engine/src/Audio/AudioInputEngineImpl.cpp | 17 +-
.../src/Audio/AudioOutputEngineImpl.cpp | 43 +
.../engine/src/Audio/IStreamAudioStream.cpp | 70 +
modules/core/engine/src/EngineImpl.cpp | 55 +
.../engine/src/Logger/LoggerEngineService.cpp | 10 +-
.../engine/src/Logger/Sinks/SyslogSink.cpp | 18 +-
.../engine/src/MessageBroker}/Message.cpp | 8 +-
.../MessageBrokerEngineService.cpp | 163 +
.../src/MessageBroker/MessageBrokerImpl.cpp | 303 +
.../MessageBrokerServiceInterface.cpp | 27 +
.../MessageHandlerEngineService.cpp | 162 +
.../src/MessageBroker}/PublishMessage.cpp | 19 +-
.../src/MessageBroker/StreamManagerImpl.cpp | 82 +
.../src/Network/NetworkEngineService.cpp | 28 +
.../Network/NetworkInfoProviderEngineImpl.cpp | 25 +
.../core/engine/src/ServiceDescription.cpp | 29 +-
.../core/engine/src/Utils/Encoding/Base64.cpp | 12 +-
modules/core/engine/src/Utils/JSON/JSON.cpp | 7 +-
.../engine/src/Utils/String/StringUtils.cpp | 2 +-
modules/core/engine/test/CMakeLists.txt | 92 -
.../Audio/MockAudioInputChannelInterface.h | 37 -
modules/core/engine/test/src/main.cpp | 6 -
modules/core/platform/CMakeLists.txt | 75 -
.../AACE/Audio/AudioEngineInterfaces.h | 18 +
.../platform/include/AACE/Audio/AudioFormat.h | 18 +-
.../include/AACE/Audio/AudioInputProvider.h | 8 +-
.../platform/include/AACE/Audio/AudioOutput.h | 49 +
.../include/AACE/Audio/AudioOutputProvider.h | 8 +-
.../AACE/Authorization/Authorization.h | 7 +-
.../core/platform/include/AACE/Core/Engine.h | 6 +
.../include/AACE/Core/MessageBroker.h | 63 +
.../include/AACE/Core/MessageStream.h | 87 +
.../DeviceUsage/DeviceUsageEngineInterfaces.h | 2 +
.../include/AACE/Location/LocationProvider.h | 5 +
.../LocationProviderEngineInterface.h | 2 +
.../platform/include/AACE/Logger/Logger.h | 7 +-
.../AACE/Logger/LoggerEngineInterfaces.h | 2 +
.../include/AACE/Metrics/MetricsUploader.h | 7 +-
.../AACE/Network/NetworkEngineInterfaces.h | 2 +
.../AACE/Network/NetworkInfoProvider.h | 7 +-
.../include/AACE/Network/NetworkProperties.h | 17 +-
.../AACE/PropertyManager/PropertyManager.h | 7 +-
.../PropertyManagerEngineInterface.h | 2 +
.../core/platform/src/Audio/AudioOutput.cpp | 6 +
.../Audio/MockAudioInputChannelInterface.h | 39 +
.../Unit}/Audio/MockAudioManagerInterface.h | 8 +-
.../Audio/MockAudioOutputChannelInterface.h | 11 +-
.../MockAuthorizationProviderListener.h | 8 +-
.../AACE/Test/Unit}/Core/CoreTestHelper.h | 8 +-
.../Test/Unit}/Core/MockEngineConfiguration.h | 8 +-
.../Test/Unit}/Core/MockPlatformInterface.h | 8 +-
.../MockPropertyManagerServiceInterface.h | 6 +-
.../unit/framework}/src/CoreTestHelper.cpp | 8 +-
.../tests}/AuthorizationEngineImplTest.cpp | 0
.../unit/tests}/EngineImplTest.cpp | 13 +-
.../tests}/LocationProviderEngineImplTest.cpp | 0
.../unit/tests/ServiceDescriptionTest.cpp | 91 +
.../tests}/VehicleConfigurationImplTest.cpp | 14 +-
modules/custom-domain/README.md | 114 +
.../Engine/CustomDomain/AASBCustomDomain.h | 63 +
.../AASBCustomDomainEngineService.h | 44 +
.../aasb/messages/CustomDomain.yml | 87 +
.../aasb/src/AASBCustomDomain.cpp | 187 +
.../src/AASBCustomDomainEngineService.cpp | 61 +
.../android/src/main/AndroidManifest.xml | 4 +
.../assets/meta-aac/aace-custom-domain.json | 5 +
.../JNI/CustomDomain/CustomDomainBinder.h | 98 +
.../src/CustomDomain/CustomDomainBinder.cpp | 177 +
.../aace/customDomain/CustomDomain.java | 205 +
.../custom-domain/assets/custom_context.png | Bin 0 -> 66603 bytes
.../assets/custom_directives_events.png | Bin 0 -> 111921 bytes
modules/custom-domain/conanfile.py | 9 +
.../CustomDomainCapabilityAgent.h | 266 +
.../CustomDomain/CustomDomainEngineImpl.h | 156 +
.../CustomDomain/CustomDomainEngineService.h | 61 +
.../CustomDomainHandlerInterface.h | 103 +
.../src/CustomDomainCapabilityAgent.cpp | 427 +
.../engine/src/CustomDomainEngineImpl.cpp | 260 +
.../engine/src/CustomDomainEngineService.cpp | 84 +
.../include/AACE/CustomDomain/CustomDomain.h | 184 +
.../CustomDomainEngineInterface.h | 66 +
.../platform/src/CustomDomain.cpp | 51 +
.../tests/CustomDomainCapabilityAgentTest.cpp | 328 +
.../unit/tests/CustomDomainEngineImplTest.cpp | 100 +
.../loopback-detector/LICENSE | 0
.../loopback-detector/NOTICE | 0
modules/loopback-detector/README.md | 159 +
.../android}/src/main/AndroidManifest.xml | 0
.../meta-aac/aace-loopback-detector.json | 5 +
.../LoopbackDetectorConfigurationBinder.cpp | 0
.../assets/loopback-detector-data-flow.png | Bin 0 -> 56015 bytes
modules/loopback-detector/conanfile.py | 9 +
.../loopback-detector/engine/CMakeLists.txt | 0
.../engine/src/LoopbackDetector.cpp | 2 +-
.../engine/src/LoopbackDetector.h | 0
.../src/LoopbackDetectorEngineService.cpp | 0
.../src/LoopbackDetectorEngineService.h | 0
modules/messaging/CMakeLists.txt | 53 -
modules/messaging/README.md | 298 +-
modules/messaging/aac-module-messaging.bb | 7 -
.../AASB/Engine/Messaging/AASBMessaging.h | 8 +-
.../Messaging/AASBMessagingEngineService.h | 8 +-
modules/messaging/aasb/messages/Messaging.yml | 124 +
.../messaging/aasb}/src/AASBMessaging.cpp | 6 +-
.../aasb}/src/AASBMessagingEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../main/assets/meta-aac/aace-messaging.json | 5 +
.../AACE/JNI/Messaging/MessagingBinder.h | 0
.../cpp/src/Messaging/MessagingBinder.cpp | 0
.../com/amazon/aace/messaging/Messaging.java | 7 +-
.../aac-messaging-reading-messages.plantuml | 47 +
.../assets/aac-messaging-reading-messages.png | Bin 47057 -> 43716 bytes
.../aac-messaging-reply-message.plantuml | 65 +
.../assets/aac-messaging-reply-message.png | Bin 75027 -> 64698 bytes
.../aac-messaging-sending-messages.plantuml | 41 +
.../assets/aac-messaging-sending-messages.png | Bin 32098 -> 31238 bytes
...ssaging-endpoint-state-connection.plantuml | 35 +
...te-messaging-endpoint-state-connection.png | Bin 0 -> 19474 bytes
...saging-endpoint-state-permissions.plantuml | 35 +
...e-messaging-endpoint-state-permissions.png | Bin 0 -> 25981 bytes
modules/messaging/conanfile.py | 9 +
modules/messaging/engine/CMakeLists.txt | 62 -
modules/messaging/engine/test/CMakeLists.txt | 27 -
modules/messaging/platform/CMakeLists.txt | 39 -
.../include/AACE/Messaging/Messaging.h | 7 +-
.../AACE/Messaging/MessagingEngineInterface.h | 2 +
.../unit/tests}/MessagingEngineImplTest.cpp | 12 +-
modules/navigation/.gitignore | 1 -
modules/navigation/CMakeLists.txt | 59 -
modules/navigation/README.md | 908 +-
modules/navigation/aac-module-navigation.bb | 7 -
.../AASB/Engine/Navigation/AASBNavigation.h | 8 +-
.../Navigation/AASBNavigationEngineService.h | 8 +-
.../navigation/aasb/messages/Navigation.yml | 283 +
.../navigation/aasb}/src/AASBNavigation.cpp | 7 +-
.../aasb}/src/AASBNavigationEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../main/assets/meta-aac/aace-navigation.json | 5 +
.../AACE/JNI/Navigation/NavigationBinder.h | 0
.../cpp/src/Navigation/NavigationBinder.cpp | 0
.../NavigationConfigurationBinder.cpp | 0
.../amazon/aace/navigation/Navigation.java | 7 +-
.../config/NavigationConfiguration.java | 0
.../navigation/assets/add_waypoint.plantuml | 78 +-
modules/navigation/assets/add_waypoint.png | Bin 71871 -> 91249 bytes
.../assets/announce_maneuver.plantuml | 57 +-
.../navigation/assets/announce_maneuver.png | Bin 42647 -> 54803 bytes
.../assets/announce_road_regulation.plantuml | 45 +-
.../assets/announce_road_regulation.png | Bin 43703 -> 56540 bytes
.../assets/cancel_navigation.plantuml | 40 +-
.../navigation/assets/cancel_navigation.png | Bin 50234 -> 37031 bytes
.../navigation/assets/map_control.plantuml | 49 +-
modules/navigation/assets/map_control.png | Bin 54453 -> 44901 bytes
.../navigate_previous_waypoint.plantuml | 45 +-
.../assets/navigate_previous_waypoint.png | Bin 44134 -> 55935 bytes
.../assets/remove_waypoint.plantuml | 76 +-
modules/navigation/assets/remove_waypoint.png | Bin 79743 -> 99214 bytes
.../assets/show_alternate_routes.plantuml | 47 +-
.../assets/show_alternate_routes.png | Bin 42177 -> 64231 bytes
.../assets/show_previous_waypoints.plantuml | 47 +-
.../assets/show_previous_waypoints.png | Bin 43373 -> 55237 bytes
.../assets/start_navigation.plantuml | 56 +-
.../navigation/assets/start_navigation.png | Bin 43782 -> 55261 bytes
modules/navigation/conanfile.py | 9 +
modules/navigation/engine/CMakeLists.txt | 63 -
modules/navigation/engine/test/CMakeLists.txt | 29 -
.../engine/test/MockAttachmentManager.h | 51 -
modules/navigation/platform/CMakeLists.txt | 36 -
.../include/AACE/Navigation/Navigation.h | 7 +-
.../Navigation/NavigationEngineInterfaces.h | 2 +
...avigationAssistanceCapabilityAgentTest.cpp | 38 +-
.../tests}/NavigationCapabilityAgentTest.cpp | 16 +-
.../unit/tests}/NavigationEngineImplTest.cpp | 14 +-
modules/phone-control/.gitignore | 1 -
modules/phone-control/CMakeLists.txt | 55 -
modules/phone-control/README.md | 415 +-
.../phone-control/aac-module-phone-control.bb | 7 -
.../AASBPhoneCallController.h | 8 +-
.../AASBPhoneCallControllerEngineService.h | 8 +-
.../aasb/messages/PhoneCallController.yml | 170 +
.../aasb}/src/AASBPhoneCallController.cpp | 13 +-
.../AASBPhoneCallControllerEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../assets/meta-aac/aace-phonecontrol.json | 5 +
.../PhoneControl/PhoneCallControllerBinder.h | 0
.../PhoneCallControllerBinder.cpp | 0
.../phonecontrol/PhoneCallController.java | 546 +
.../aac-pcc-connection-state-changed.plantuml | 33 +
.../aac-pcc-connection-state-changed.png | Bin 0 -> 20353 bytes
...-pcc-device-configuration-updated.plantuml | 27 +
.../aac-pcc-device-configuration-updated.png | Bin 0 -> 15299 bytes
.../assets/aac-pcc-inbound-call.plantuml | 74 +
.../assets/aac-pcc-inbound-call.png | Bin 93965 -> 83522 bytes
.../assets/aac-pcc-outbound-call.plantuml | 54 +
.../assets/aac-pcc-outbound-call.png | Bin 79475 -> 51866 bytes
modules/phone-control/conanfile.py | 9 +
modules/phone-control/engine/CMakeLists.txt | 60 -
.../PhoneCallControllerCapabilityAgent.cpp | 256 +-
.../phone-control/engine/test/CMakeLists.txt | 27 -
.../engine/test/MockAttachmentManager.h | 51 -
modules/phone-control/platform/CMakeLists.txt | 39 -
.../PhoneCallController/PhoneCallController.h | 7 +-
.../PhoneCallControllerEngineInterfaces.h | 2 +
...PhoneCallControllerCapabilityAgentTest.cpp | 48 +-
.../PhoneCallControllerEngineImplTest.cpp | 14 +-
modules/system-audio/README.md | 218 +
.../system-audio/aal}/.gitignore | 0
modules/system-audio/aal/CMakeLists.txt | 118 +
.../system-audio}/aal/README.md | 0
modules/system-audio/aal/conanfile.py | 123 +
.../system-audio}/aal/include/aal/aal.h | 0
.../system-audio}/aal/include/aal/common.h | 0
.../aal/lib/c-ringbuf/.clang-format | 0
.../aal/lib/c-ringbuf/.github/CONTRIBUTING.md | 0
.../lib/c-ringbuf/.github/ISSUE_TEMPLATE.md | 0
.../.github/PULL_REQUEST_TEMPLATE.md | 0
.../aal/lib/c-ringbuf/.gitignore | 0
.../system-audio}/aal/lib/c-ringbuf/COPYING | 0
.../system-audio}/aal/lib/c-ringbuf/Makefile | 0
.../system-audio}/aal/lib/c-ringbuf/README.md | 0
.../aal/lib/c-ringbuf/ringbuf-test.c | 0
.../system-audio}/aal/lib/c-ringbuf/ringbuf.c | 0
.../system-audio}/aal/lib/c-ringbuf/ringbuf.h | 0
.../system-audio}/aal/src/common.c | 45 +-
modules/system-audio/aal/src/gstreamer/core.c | 578 +
.../system-audio}/aal/src/gstreamer/core.h | 0
.../aal/src/gstreamer/mathstubs.c | 7 +
.../system-audio}/aal/src/gstreamer/player.c | 0
.../aal/src/gstreamer/recorder.c | 0
.../system-audio}/aal/src/omxal/core.c | 0
.../system-audio}/aal/src/omxal/core.h | 0
.../system-audio}/aal/src/omxal/player.c | 0
.../system-audio}/aal/src/omxal/player.h | 0
modules/system-audio/aal/src/qsa/core.c | 390 +
.../system-audio}/aal/src/qsa/core.h | 3 +-
.../system-audio}/aal/src/qsa/player.c | 8 +-
.../system-audio}/aal/src/qsa/recorder.c | 0
.../system-audio}/aal/src/test/CMakeLists.txt | 0
.../system-audio}/aal/src/test/README.md | 0
.../system-audio}/aal/src/test/player.cpp | 0
.../system-audio}/aal/src/test/recorder.cpp | 0
modules/system-audio/conanfile.py | 36 +
.../configs/linux/config-system-audio.json | 0
.../configs/neutrino/config-system-audio.json | 0
.../AACE/Engine/SystemAudio/AudioInputImpl.h | 0
.../AACE/Engine/SystemAudio/AudioOutputImpl.h | 6 +
.../SystemAudio/SystemAudioEngineService.h | 0
.../AACE/Engine/SystemAudio/Throttle.h | 0
.../engine/src/AudioInputImpl.cpp | 0
.../engine/src/AudioOutputImpl.cpp | 58 +-
.../engine/src/SystemAudioEngineService.cpp | 0
.../text-to-speech-provider/CMakeLists.txt | 44 -
modules/text-to-speech-provider/README.md | 22 +-
.../aac-module-text-to-speech-provider.bb | 8 -
.../android}/src/main/AndroidManifest.xml | 0
.../aace-text-to-speech-provider.json | 5 +
modules/text-to-speech-provider/conanfile.py | 9 +
.../engine/CMakeLists.txt | 54 -
modules/text-to-speech/.gitignore | 5 -
modules/text-to-speech/CMakeLists.txt | 53 -
modules/text-to-speech/README.md | 232 +-
.../aac-module-text-to-speech.bb | 8 -
.../Engine/TextToSpeech/AASBTextToSpeech.h | 84 +
.../AASBTextToSpeechEngineService.h | 8 +-
.../aasb/messages/TextToSpeech.yml | 64 +
.../aasb}/src/AASBTextToSpeech.cpp | 20 +-
.../src/AASBTextToSpeechEngineService.cpp | 8 +-
.../android}/src/main/AndroidManifest.xml | 0
.../assets/meta-aac/aace-text-to-speech.json | 5 +
.../JNI/TextToSpeech/TextToSpeechBinder.h | 0
.../src/TextToSpeech/TextToSpeechBinder.cpp | 0
.../aace/textToSpeech/TextToSpeech.java | 7 +-
.../assets/CapabilitiesReceived.plantuml | 15 -
.../assets/CapabilitiesReceived.png | Bin 18816 -> 0 bytes
.../assets/GetCapabilities.plantuml | 39 +-
.../text-to-speech/assets/GetCapabilities.png | Bin 14933 -> 14640 bytes
.../assets/PrepareSpeech.plantuml | 36 +-
.../text-to-speech/assets/PrepareSpeech.png | Bin 20971 -> 18932 bytes
.../assets/PrepareSpeechCompleted.plantuml | 16 -
.../assets/PrepareSpeechCompleted.png | Bin 21378 -> 0 bytes
.../assets/PrepareSpeechFailed.plantuml | 16 -
.../assets/PrepareSpeechFailed.png | Bin 21106 -> 0 bytes
modules/text-to-speech/conanfile.py | 9 +
modules/text-to-speech/engine/CMakeLists.txt | 59 -
.../Engine/TextToSpeech/PrepareSpeechResult.h | 4 +-
.../TextToSpeech/TextToSpeechEngineService.h | 2 +-
.../engine/src/TextToSpeechEngineImpl.cpp | 3 +
.../engine/src/TextToSpeechEngineService.cpp | 15 +-
.../text-to-speech/engine/test/CMakeLists.txt | 27 -
.../text-to-speech/platform/CMakeLists.txt | 37 -
.../include/AACE/TextToSpeech/TextToSpeech.h | 7 +-
.../tests}/TextToSpeechEngineImplTest.cpp | 14 +-
platforms/android/.gitignore | 73 -
.../alexa-auto-client-service/README.md | 797 -
.../android-service/.gitignore | 9 -
.../android-service/README.md | 573 -
.../android-service/build.gradle | 76 -
.../modules/aacs-extra/build.gradle | 32 -
.../android-service/service/build.gradle | 141 -
.../assets/file-util-res/aacs_config.json | 226 -
.../service/src/main/AndroidManifest.xml | 77 -
.../ComponentRegistry.java | 170 -
.../mediaPlayer/exo/MediaSourceFactory.java | 178 -
.../mediaPlayer/exo/PlaylistParser.java | 110 -
.../raw/RawAudioOutputHandler.java | 273 -
.../mediaManager/LocalMediaSourceHandler.java | 684 -
.../PropertyManagerHandler.java | 36 -
.../SystemPropertyChangeReceiver.java | 158 -
.../alexaautoclientservice/util/FileUtil.java | 840 -
.../util/MediaPlayerUtil.java | 54 -
.../android-service/settings.gradle | 1 -
.../assets/AACS_CBLLogin.png | Bin 40862 -> 0 bytes
.../assets/AACS_CBLLogin.puml | 26 -
.../assets/config.json | 259 -
.../commonutils/aacscommonutils/build.gradle | 45 -
.../aacs/common/PlaybackControlMessages.java | 85 -
.../commonutils/build.gradle | 46 -
.../commonutils/settings.gradle | 7 -
.../constants/aacsconstants/build.gradle | 32 -
.../constants/build.gradle | 27 -
.../alexa-auto-client-service/ipc/.gitignore | 17 -
.../alexa-auto-client-service/ipc/README.md | 213 -
.../ipc/build.gradle | 26 -
.../app-components/alexa-auto-apis/README.md | 35 -
.../alexa-auto-apis/build.gradle | 50 -
.../alexa-auto-apl-renderer/README.md | 174 -
.../alexa-auto-apl-renderer/build.gradle | 84 -
.../src/main/AndroidManifest.xml | 36 -
.../src/main/assets/APLViewport.json | 113 -
.../amazon/alexa/auto/apl/APLActivity.java | 180 -
.../com/amazon/alexa/auto/apl/Constants.java | 22 -
.../alexa/auto/apl/handler/APLHandler.java | 258 -
.../alexa/auto/apl/receiver/APLReceiver.java | 47 -
.../src/main/res/layout/activity_apl.xml | 18 -
.../src/main/res/layout/apl_view.xml | 12 -
.../auto/apl/handler/APLHandlerTest.java | 60 -
.../alexa-auto-apps-common-ui/build.gradle | 56 -
.../amazon_alexa_placeholder_logo.png | Bin 6152 -> 0 bytes
.../alexa-auto-apps-common-util/README.md | 3 -
.../alexa-auto-apps-common-util/build.gradle | 62 -
.../src/main/AndroidManifest.xml | 5 -
.../alexa/auto/apps/common/Constants.java | 35 -
.../alexa/auto/apps/common/util/FileUtil.java | 200 -
.../alexa-auto-carcontrol/README.md | 191 -
.../aacscarcontrol/build.gradle | 60 -
.../alexa-auto-carcontrol/build.gradle | 46 -
.../alexa-auto-carcontrol/settings.gradle | 9 -
.../alexa-auto-comms-ui/README.md | 18 -
.../alexa-auto-comms-ui/build.gradle | 81 -
.../src/main/AndroidManifest.xml | 25 -
.../amazon/alexa/auto/comms/ui/Constants.java | 29 -
.../auto/comms/ui/ContactsControllerImpl.java | 170 -
.../ui/db/ConnectedBTDeviceRepository.java | 141 -
.../ui/dependencies/CommunicationModule.java | 24 -
.../comms/ui/receiver/BluetoothReceiver.java | 56 -
.../communication_setup_fragment.xml | 88 -
.../layout/communication_setup_fragment.xml | 89 -
.../src/main/res/values-land/dimens.xml | 24 -
.../src/main/res/values/dimens.xml | 27 -
.../src/main/res/values/strings.xml | 21 -
.../alexa-auto-contacts/README.md | 129 -
.../aacscontacts/build.gradle | 50 -
.../alexa-auto-contacts/build.gradle | 45 -
.../alexa-auto-contacts/settings.gradle | 9 -
.../alexa-auto-device-usage/README.md | 40 -
.../alexa-auto-lwa-auth/build.gradle | 62 -
.../src/main/AndroidManifest.xml | 57 -
.../amazon/alexa/auto/lwa/AuthReceiver.java | 110 -
.../amazon/alexa/auto/lwa/CBLReceiver.java | 216 -
.../alexa/auto/lwa/LWAAuthController.java | 433 -
.../alexa-auto-media-player/README.md | 30 -
.../alexa-auto-media-player/build.gradle | 89 -
.../src/main/AndroidManifest.xml | 71 -
.../aacs/handlers/AudioPlayerHandler.java | 319 -
.../auto/media/player/MediaSourceFactory.java | 131 -
.../media/session/MediaSessionManager.java | 515 -
.../media/session/PlaybackController.java | 107 -
.../alexa-auto-navigation/build.gradle | 74 -
.../src/main/res/values/dimens.xml | 60 -
.../alexa-auto-settings/README.md | 15 -
.../alexa-auto-settings/build.gradle | 88 -
.../src/main/AndroidManifest.xml | 27 -
.../src/main/assets/locales.json | 109 -
.../AlexaSettingsLanguagesFragment.java | 203 -
.../auto/settings/config/PreferenceKeys.java | 53 -
.../layout/settings_alexa_language_layout.xml | 774 -
.../src/main/res/values/strings.xml | 64 -
.../app-components/alexa-auto-setup/README.md | 29 -
.../alexa-auto-setup/build.gradle | 79 -
.../setup/dependencies/SetupComponent.java | 61 -
.../receiver/NetworkStateChangeReceiver.java | 36 -
.../fragment/EnablePreviewModeFragment.java | 132 -
.../auth_provider_login_finished.xml | 128 -
.../main/res/layout-land/cbl_login_error.xml | 66 -
.../res/layout-land/cbl_login_finished.xml | 101 -
.../res/layout-land/enable_preview_mode.xml | 91 -
.../main/res/layout-land/location_consent.xml | 97 -
.../layout-land/login_display_cbl_code.xml | 80 -
.../src/main/res/layout-land/login_start.xml | 75 -
.../main/res/layout-land/network_fragment.xml | 82 -
.../res/layout-land/setup_not_complete.xml | 67 -
.../layout-land/start_language_selection.xml | 55 -
.../layout/auth_provider_login_finished.xml | 131 -
.../src/main/res/layout/cbl_login_error.xml | 67 -
.../main/res/layout/cbl_login_finished.xml | 104 -
.../main/res/layout/enable_preview_mode.xml | 93 -
.../src/main/res/layout/location_consent.xml | 97 -
.../res/layout/login_display_cbl_code.xml | 82 -
.../src/main/res/layout/login_start.xml | 75 -
.../src/main/res/layout/network_fragment.xml | 82 -
.../main/res/layout/setup_not_complete.xml | 67 -
.../res/layout/start_language_selection.xml | 54 -
.../src/main/res/values-land/dimens.xml | 28 -
.../src/main/res/values/dimens.xml | 34 -
.../src/main/res/values/strings.xml | 50 -
.../alexa-auto-telephony/README.md | 231 -
.../aacstelephony/build.gradle | 52 -
.../aacstelephony/consumer-rules.pro | 0
.../aacstelephony/PhoneCallController.java | 357 -
.../alexa-auto-telephony/build.gradle | 46 -
.../alexa-auto-telephony/settings.gradle | 9 -
.../build.gradle | 77 -
.../src/main/res/layout/weather.xml | 105 -
.../src/main/res/values/dimens.xml | 57 -
.../app-components/alexa-auto-tts/README.md | 177 -
.../alexa-auto-tts/aacstts/build.gradle | 52 -
.../alexa-auto-tts/build.gradle | 27 -
.../alexa-auto-tts/gradle.properties | 20 -
.../alexa-auto-voice-interaction/README.md | 11 -
.../alexa-auto-voice-interaction/build.gradle | 74 -
.../earcon/EarconController.java | 116 -
.../receiver/AACSBroadcastReceiver.java | 88 -
.../service/AutoVoiceInteractionSession.java | 362 -
.../src/main/res/values/styles.xml | 15 -
.../receiver/AACSBroadcastReceiverTest.java | 155 -
.../AutoVoiceInteractionSessionTest.java | 129 -
platforms/android/modules/abifilter.gradle | 88 -
.../modules/addressbook/CMakeLists.txt | 55 -
.../android/modules/addressbook/README.md | 203 -
.../assets/remove_contacts.plantuml | 35 -
.../addressbook/assets/remove_contacts.png | Bin 22159 -> 0 bytes
.../assets/remove_navigation_fav.plantuml | 36 -
.../assets/remove_navigation_fav.png | Bin 22381 -> 0 bytes
.../assets/upload_contacts.plantuml | 54 -
.../addressbook/assets/upload_contacts.png | Bin 44530 -> 0 bytes
.../assets/upload_navigation_fav.plantuml | 54 -
.../assets/upload_navigation_fav.png | Bin 46483 -> 0 bytes
.../android/modules/addressbook/build.gradle | 67 -
.../assets/meta-aac/aace-addressbook.json | 5 -
.../android/modules/alexa/CMakeLists.txt | 161 -
platforms/android/modules/alexa/README.md | 1382 -
platforms/android/modules/alexa/build.gradle | 67 -
.../src/main/assets/meta-aac/aace-alexa.json | 5 -
.../amazon/aace/alexa/PlaybackController.java | 173 -
.../android/modules/apl-render/README.md | 247 -
.../android/modules/apl-render/build.gradle | 74 -
.../apl/android/render/APLPresenter.java | 623 -
.../apl-render/src/main/libs/.gitignore | 2 -
platforms/android/modules/apl/CMakeLists.txt | 59 -
platforms/android/modules/apl/README.md | 227 -
platforms/android/modules/apl/build.gradle | 68 -
.../src/main/assets/meta-aac/aace-apl.json | 5 -
.../modules/car-control/CMakeLists.txt | 54 -
.../android/modules/car-control/README.md | 2172 --
.../assets/meta-aac/aace-car-control.json | 5 -
.../android/modules/car-control/build.gradle | 66 -
.../assets/meta-aac/aace-car-control.json | 5 -
platforms/android/modules/cbl/CMakeLists.txt | 54 -
platforms/android/modules/cbl/README.md | 392 -
platforms/android/modules/cbl/build.gradle | 67 -
.../src/main/assets/meta-aac/aace-cbl.json | 5 -
.../modules/connectivity/CMakeLists.txt | 62 -
.../android/modules/connectivity/README.md | 128 -
.../Connectivity-Sequence-CloudAskReport.png | Bin 43591 -> 0 bytes
.../Connectivity-Sequence-CloudAskReport.puml | 33 -
.../Connectivity-Sequence-ConnectCloud.png | Bin 46817 -> 0 bytes
.../Connectivity-Sequence-ConnectCloud.puml | 36 -
.../Connectivity-Sequence-DeviceDiscovery.png | Bin 32293 -> 0 bytes
...Connectivity-Sequence-DeviceDiscovery.puml | 24 -
...ctivity-Sequence-sendConnectivityEvent.png | Bin 72209 -> 0 bytes
...tivity-Sequence-sendConnectivityEvent.puml | 31 -
.../android/modules/connectivity/build.gradle | 68 -
.../assets/meta-aac/aace-connectivity.json | 5 -
platforms/android/modules/core/CMakeLists.txt | 72 -
platforms/android/modules/core/README.md | 721 -
.../core/assets/Authorization_cancel.plantuml | 13 -
.../core/assets/Authorization_cancel.png | Bin 17976 -> 0 bytes
.../core/assets/Authorization_logout.plantuml | 15 -
.../core/assets/Authorization_logout.png | Bin 22489 -> 0 bytes
.../core/assets/Authorization_start.plantuml | 38 -
.../core/assets/Authorization_start.png | Bin 63325 -> 0 bytes
.../core/assets/PropertyManager_changed.png | Bin 58607 -> 0 bytes
.../core/assets/PropertyManager_get.png | Bin 14470 -> 0 bytes
.../core/assets/PropertyManager_set.png | Bin 20177 -> 0 bytes
platforms/android/modules/core/build.gradle | 64 -
.../src/main/assets/meta-aac/aace-core.json | 5 -
.../aace/network/NetworkProperties.java | 27 -
platforms/android/modules/gradle.properties | 17 -
.../android/modules/maccandroid/.classpath | 6 -
.../android/modules/maccandroid/build.gradle | 55 -
.../android/modules/messaging/CMakeLists.txt | 53 -
platforms/android/modules/messaging/README.md | 114 -
.../assets/aac-messaging-reading-messages.png | Bin 47057 -> 0 bytes
.../assets/aac-messaging-reply-message.png | Bin 75027 -> 0 bytes
.../assets/aac-messaging-sending-messages.png | Bin 32098 -> 0 bytes
.../android/modules/messaging/build.gradle | 67 -
.../main/assets/meta-aac/aace-messaging.json | 5 -
.../android/modules/navigation/CMakeLists.txt | 54 -
.../android/modules/navigation/README.md | 586 -
.../navigation/assets/add_waypoint.png | Bin 71871 -> 0 bytes
.../navigation/assets/announce_maneuver.png | Bin 42647 -> 0 bytes
.../assets/announce_road_regulation.png | Bin 43703 -> 0 bytes
.../navigation/assets/cancel_navigation.png | Bin 50234 -> 0 bytes
.../modules/navigation/assets/map_control.png | Bin 54453 -> 0 bytes
.../assets/navigate_previous_waypoint.png | Bin 44134 -> 0 bytes
.../navigation/assets/remove_waypoint.png | Bin 79743 -> 0 bytes
.../assets/show_alternate_routes.png | Bin 42177 -> 0 bytes
.../assets/show_previous_waypoint.png | Bin 43373 -> 0 bytes
.../navigation/assets/start_navigation.png | Bin 43782 -> 0 bytes
.../android/modules/navigation/build.gradle | 67 -
.../main/assets/meta-aac/aace-navigation.json | 5 -
.../modules/phonecontrol/CMakeLists.txt | 53 -
.../android/modules/phonecontrol/README.md | 152 -
.../android/modules/phonecontrol/build.gradle | 67 -
.../assets/meta-aac/aace-phonecontrol.json | 5 -
.../phonecontrol/PhoneCallController.java | 541 -
platforms/android/modules/settings.gradle | 20 -
.../modules/text-to-speech-provider/README.md | 102 -
.../text-to-speech-provider/build.gradle | 79 -
.../aace-text-to-speech-provider.json | 5 -
.../modules/text-to-speech/CMakeLists.txt | 60 -
.../android/modules/text-to-speech/README.md | 124 -
.../assets/CapabilitiesReceived.plantuml | 15 -
.../assets/CapabilitiesReceived.png | Bin 18816 -> 0 bytes
.../assets/GetCapabilities.plantuml | 14 -
.../text-to-speech/assets/GetCapabilities.png | Bin 14933 -> 0 bytes
.../assets/PrepareSpeech.plantuml | 19 -
.../text-to-speech/assets/PrepareSpeech.png | Bin 20971 -> 0 bytes
.../assets/PrepareSpeechCompleted.plantuml | 16 -
.../assets/PrepareSpeechCompleted.png | Bin 21378 -> 0 bytes
.../assets/PrepareSpeechFailed.plantuml | 16 -
.../assets/PrepareSpeechFailed.png | Bin 21106 -> 0 bytes
.../modules/text-to-speech/build.gradle | 66 -
.../assets/meta-aac/aace-text-to-speech.json | 5 -
.../alexa-auto-app/README.md | 415 -
.../alexa-auto-app/build.gradle | 119 -
.../alexa-auto-app/gradle.properties | 15 -
.../src/main/AndroidManifest.xml | 44 -
.../src/main/assets/config/aacs_config.json | 80 -
samples/android-aacs-sample-app/build.gradle | 104 -
.../android-aacs-sample-app/settings.gradle | 77 -
samples/android/.gitignore | 63 -
samples/android/README.md | 295 -
samples/android/app/.gitignore | 1 -
samples/android/app/build.gradle | 90 -
.../sampleapp/ExampleInstrumentedTest.java | 41 -
.../android/app/src/main/AndroidManifest.xml | 56 -
.../aidl/com/amazon/alexalve/ILVCClient.aidl | 205 -
.../aidl/com/amazon/alexalve/ILVCService.aidl | 64 -
.../app/src/main/assets/CarControlAssets.json | 141 -
.../android/app/src/main/assets/Contacts.json | 228 -
.../src/main/assets/ConversationsReport.json | 40 -
.../src/main/assets/NavigationFavorites.json | 320 -
.../app/src/main/assets/NavigationState.json | 62 -
.../app/src/main/assets/app_config.json | 9 -
.../app/src/main/assets/models/.gitkeep | 0
.../java/com/amazon/sampleapp/FileUtils.java | 203 -
.../sampleapp/LVCInteractionService.java | 328 -
.../sampleapp/LimitedSizeArrayList.java | 43 -
.../com/amazon/sampleapp/MainActivity.java | 1514 --
.../sampleapp/NetworkStatsManagerRunner.java | 226 -
.../amazon/sampleapp/SampleApplication.java | 60 -
.../impl/AddressBook/AddressBookHandler.java | 298 -
.../sampleapp/impl/Alerts/AlertsHandler.java | 82 -
.../impl/AlexaClient/AlexaClientHandler.java | 144 -
.../AlexaSpeaker/AlexaSpeakerHandler.java | 241 -
.../impl/Audio/AudioFocusController.java | 316 -
.../impl/Audio/AudioInputHandler.java | 206 -
.../impl/Audio/AudioInputProviderHandler.java | 53 -
.../impl/Audio/AudioOutputHandler.java | 423 -
.../Audio/AudioOutputProviderHandler.java | 64 -
.../impl/Audio/MediaSourceFactory.java | 192 -
.../sampleapp/impl/Audio/PlaylistParser.java | 107 -
.../impl/Audio/RawAudioOutputHandler.java | 270 -
.../sampleapp/impl/Audio/Releasable.java | 8 -
.../impl/Audio/UnifiedAudioOutput.java | 209 -
.../impl/AudioPlayer/AudioPlayerHandler.java | 36 -
.../Authorization/AuthorizationHandler.java | 123 -
.../CBLAuthorizationHandler.java | 243 -
.../impl/CarControl/BoolController.java | 35 -
.../CarControl/CarControlDataProvider.java | 712 -
.../impl/CarControl/CarControlHandler.java | 312 -
.../impl/CarControl/ModeController.java | 50 -
.../impl/CarControl/RangeController.java | 45 -
.../impl/DeviceSetup/DeviceSetupHandler.java | 59 -
.../impl/DeviceUsage/DeviceUsageHandler.java | 236 -
.../DoNotDisturb/DoNotDisturbHandler.java | 109 -
.../impl/EqualizerController/EQUtils.java | 69 -
.../EqualizerConfiguration.java | 93 -
.../EqualizerControllerHandler.java | 319 -
.../impl/ExternalMediaPlayer/MACCPlayer.java | 399 -
.../LocalMediaSource/AMLocalMediaSource.java | 31 -
.../BluetoothLocalMediaSource.java | 33 -
.../LocalMediaSource/CDLocalMediaSource.java | 31 -
.../LocalMediaSource/DABLocalMediaSource.java | 31 -
.../LocalMediaSource/DefaultMediaSource.java | 35 -
.../LocalMediaSource/FMLocalMediaSource.java | 31 -
.../LineInLocalMediaSource.java | 33 -
.../LocalMediaSourceHandler.java | 135 -
.../SatelliteLocalMediaSource.java | 27 -
.../SiriusXMLocalMediaSource.java | 31 -
.../LocalMediaSource/USBLocalMediaSource.java | 33 -
.../LocationProviderHandler.java | 399 -
.../sampleapp/impl/Logger/LoggerFragment.java | 136 -
.../sampleapp/impl/Logger/LoggerHandler.java | 226 -
.../impl/Messaging/MessagingHandler.java | 726 -
.../impl/Navigation/NavigationHandler.java | 480 -
.../NetworkConnectionObserver.java | 9 -
.../NetworkInfoProviderHandler.java | 282 -
.../Notifications/NotificationsHandler.java | 48 -
.../PhoneCallControllerHandler.java | 549 -
.../PlaybackControllerHandler.java | 494 -
.../PropertyManagerHandler.java | 91 -
.../SpeechRecognizerHandler.java | 163 -
.../SpeechSynthesizerHandler.java | 20 -
.../TemplateRuntimeHandler.java | 228 -
.../TextToSpeech/TextToSpeechHandler.java | 186 -
.../logView/ConfigureViewHolder.java | 872 -
.../sampleapp/logView/DownloadImageTask.java | 62 -
.../amazon/sampleapp/logView/LogEntry.java | 35 -
.../logView/LogRecyclerViewAdapter.java | 410 -
.../logView/ViewHolderBodyTemplate1.java | 46 -
.../logView/ViewHolderBodyTemplate2.java | 52 -
.../sampleapp/logView/ViewHolderCBLCard.java | 56 -
.../logView/ViewHolderCBLExpiredCard.java | 36 -
.../logView/ViewHolderListTemplate1.java | 66 -
.../ViewHolderLocalSearchDetailTemplate1.java | 150 -
.../ViewHolderLocalSearchListTemplate1.java | 49 -
.../ViewHolderLocalSearchListTemplate2.java | 76 -
.../ViewHolderPreviousWaypointsTemplate.java | 51 -
.../logView/ViewHolderRenderPlayerInfo.java | 67 -
.../ViewHolderStartNavigationTemplate.java | 130 -
.../sampleapp/logView/ViewHolderTextLog.java | 41 -
.../ViewHolderTrafficDetailsTemplate.java | 72 -
.../logView/ViewHolderWeatherTemplate.java | 71 -
samples/android/app/src/main/libs/.gitignore | 2 -
.../main/res/drawable-hdpi/ic_action_stop.png | Bin 94 -> 0 bytes
.../drawable-hdpi/ic_action_tap_to_talk.png | Bin 552 -> 0 bytes
.../main/res/drawable-mdpi/ic_action_stop.png | Bin 90 -> 0 bytes
.../drawable-mdpi/ic_action_tap_to_talk.png | Bin 369 -> 0 bytes
.../drawable-v24/ic_launcher_foreground.xml | 34 -
.../res/drawable-xhdpi/ic_action_stop.png | Bin 95 -> 0 bytes
.../drawable-xhdpi/ic_action_tap_to_talk.png | Bin 690 -> 0 bytes
.../res/drawable-xxhdpi/ic_action_stop.png | Bin 108 -> 0 bytes
.../drawable-xxhdpi/ic_action_tap_to_talk.png | Bin 1124 -> 0 bytes
.../main/res/drawable/btn_drawer_default.xml | 11 -
.../main/res/drawable/btn_drawer_pressed.xml | 8 -
.../main/res/drawable/btn_drawer_selector.xml | 7 -
.../res/drawable/control_selector_next.xml | 12 -
.../res/drawable/control_selector_pause.xml | 12 -
.../res/drawable/control_selector_play.xml | 12 -
.../res/drawable/control_selector_prev.xml | 12 -
.../control_selector_skip_backward.xml | 12 -
.../control_selector_skip_forward.xml | 12 -
.../drawable/control_toggle_play_pause.xml | 21 -
.../src/main/res/drawable/ic_chevron_left.png | Bin 130 -> 0 bytes
.../main/res/drawable/ic_chevron_right.png | Bin 128 -> 0 bytes
.../ic_control_30sec_back_default.png | Bin 2620 -> 0 bytes
.../ic_control_30sec_back_disabled.png | Bin 3693 -> 0 bytes
.../ic_control_30sec_back_enabled.png | Bin 3513 -> 0 bytes
.../ic_control_30sec_forward_default.png | Bin 2641 -> 0 bytes
.../ic_control_30sec_forward_disabled.png | Bin 3337 -> 0 bytes
.../ic_control_30sec_forward_enabled.png | Bin 3500 -> 0 bytes
.../res/drawable/ic_control_loop_default.png | Bin 2080 -> 0 bytes
.../res/drawable/ic_control_loop_disabled.png | Bin 2533 -> 0 bytes
.../main/res/drawable/ic_control_loop_on.png | Bin 2582 -> 0 bytes
.../res/drawable/ic_control_next_default.png | Bin 1824 -> 0 bytes
.../res/drawable/ic_control_next_disabled.png | Bin 1869 -> 0 bytes
.../res/drawable/ic_control_next_focus.png | Bin 1528 -> 0 bytes
.../res/drawable/ic_control_pause_default.png | Bin 1487 -> 0 bytes
.../drawable/ic_control_pause_disabled.png | Bin 1961 -> 0 bytes
.../res/drawable/ic_control_pause_focus.png | Bin 1256 -> 0 bytes
.../res/drawable/ic_control_play_default.png | Bin 1647 -> 0 bytes
.../res/drawable/ic_control_play_disabled.png | Bin 2241 -> 0 bytes
.../res/drawable/ic_control_play_focus.png | Bin 1375 -> 0 bytes
.../res/drawable/ic_control_prev_default.png | Bin 1828 -> 0 bytes
.../res/drawable/ic_control_prev_disabled.png | Bin 1883 -> 0 bytes
.../res/drawable/ic_control_prev_focus.png | Bin 1828 -> 0 bytes
.../drawable/ic_control_repeat_default.png | Bin 346 -> 0 bytes
.../drawable/ic_control_repeat_disabled.png | Bin 346 -> 0 bytes
.../res/drawable/ic_control_repeat_on.png | Bin 346 -> 0 bytes
.../drawable/ic_control_shuffle_default.png | Bin 2083 -> 0 bytes
.../drawable/ic_control_shuffle_disabled.png | Bin 2580 -> 0 bytes
.../res/drawable/ic_control_shuffle_on.png | Bin 2697 -> 0 bytes
.../ic_control_thumb_down_default.png | Bin 2188 -> 0 bytes
.../ic_control_thumb_down_disabled.png | Bin 2638 -> 0 bytes
.../res/drawable/ic_control_thumb_down_on.png | Bin 2707 -> 0 bytes
.../drawable/ic_control_thumb_up_default.png | Bin 2194 -> 0 bytes
.../drawable/ic_control_thumb_up_disabled.png | Bin 2664 -> 0 bytes
.../res/drawable/ic_control_thumb_up_on.png | Bin 2718 -> 0 bytes
.../src/main/res/drawable/ic_down_arrow.png | Bin 212 -> 0 bytes
.../res/drawable/ic_launcher_background.xml | 170 -
.../app/src/main/res/drawable/ic_menu.xml | 9 -
.../src/main/res/drawable/ic_toggle_loop.xml | 9 -
.../main/res/drawable/ic_toggle_repeat.xml | 9 -
.../main/res/drawable/ic_toggle_shuffle.xml | 9 -
.../res/drawable/ic_toggle_thumb_down.xml | 9 -
.../main/res/drawable/ic_toggle_thumb_up.xml | 9 -
.../app/src/main/res/drawable/ic_undo.png | Bin 202 -> 0 bytes
.../app/src/main/res/drawable/ic_up_arrow.png | Bin 221 -> 0 bytes
.../linear_layout_horizontal_divider.xml | 7 -
.../app/src/main/res/layout/activity_main.xml | 50 -
.../main/res/layout/card_body_template1.xml | 84 -
.../main/res/layout/card_body_template2.xml | 111 -
.../main/res/layout/card_list_template1.xml | 105 -
.../card_list_template1_item_content.xml | 20 -
.../layout/card_list_template1_item_index.xml | 20 -
.../card_local_search_detail_template1.xml | 300 -
.../card_local_search_list_template1.xml | 49 -
.../card_local_search_list_template1_item.xml | 63 -
.../card_local_search_list_template2.xml | 58 -
.../card_local_search_list_template2_item.xml | 167 -
.../app/src/main/res/layout/card_lwa_cbl.xml | 58 -
.../main/res/layout/card_lwa_cbl_expired.xml | 40 -
.../card_previous_waypoints_template.xml | 180 -
.../res/layout/card_render_player_info.xml | 191 -
.../layout/card_start_navigation_template.xml | 101 -
.../layout/card_traffic_details_template.xml | 142 -
.../main/res/layout/card_weather_template.xml | 244 -
...card_weather_template_weather_forecast.xml | 74 -
.../app/src/main/res/layout/drawer_switch.xml | 33 -
.../app/src/main/res/layout/drawer_view.xml | 1873 --
.../src/main/res/layout/eq_band_control.xml | 54 -
.../app/src/main/res/layout/eq_section.xml | 117 -
.../main/res/layout/log_card_container.xml | 16 -
.../app/src/main/res/layout/log_item.xml | 18 -
.../app/src/main/res/layout/log_view.xml | 12 -
.../src/main/res/layout/menu_item_talk.xml | 8 -
.../main/res/layout/playback_controller.xml | 195 -
.../app/src/main/res/menu/menu_main.xml | 20 -
.../res/mipmap-anydpi-v26/ic_launcher.xml | 5 -
.../mipmap-anydpi-v26/ic_launcher_round.xml | 5 -
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3056 -> 0 bytes
.../res/mipmap-hdpi/ic_launcher_round.png | Bin 5024 -> 0 bytes
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2096 -> 0 bytes
.../res/mipmap-mdpi/ic_launcher_round.png | Bin 2858 -> 0 bytes
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4569 -> 0 bytes
.../res/mipmap-xhdpi/ic_launcher_round.png | Bin 7098 -> 0 bytes
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6464 -> 0 bytes
.../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10676 -> 0 bytes
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9250 -> 0 bytes
.../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15523 -> 0 bytes
.../res/raw/med_state_bluetooth_connected.mp3 | Bin 43945 -> 0 bytes
.../raw/med_state_bluetooth_disconnected.mp3 | Bin 40873 -> 0 bytes
.../src/main/res/raw/med_ui_endpointing.wav | Bin 134444 -> 0 bytes
.../main/res/raw/med_ui_endpointing_touch.wav | Bin 134444 -> 0 bytes
.../app/src/main/res/raw/med_ui_wakesound.wav | Bin 124304 -> 0 bytes
.../main/res/raw/med_ui_wakesound_touch.wav | Bin 90656 -> 0 bytes
.../app/src/main/res/values/colors.xml | 34 -
.../app/src/main/res/values/strings.xml | 213 -
.../app/src/main/res/values/styles.xml | 23 -
.../main/res/xml/network_security_config.xml | 5 -
.../com/amazon/sampleapp/ExampleUnitTest.java | 32 -
.../android/assets/android_api_key_fields.png | Bin 49395 -> 0 bytes
.../assets/android_sample_add_lwa_lib.png | Bin 276133 -> 0 bytes
samples/android/assets/capabilities.png | Bin 190252 -> 0 bytes
samples/android/assets/finished_dialog.png | Bin 28164 -> 0 bytes
samples/android/build.gradle | 26 -
samples/android/gradle.properties | 19 -
samples/android/gradlew.bat | 84 -
samples/android/modules/sample-apl/.gitignore | 1 -
.../android/modules/sample-apl/build.gradle | 66 -
.../modules/sample-apl/gradle.properties | 3 -
.../modules/sample-apl/proguard-rules.pro | 21 -
.../modules/sample-apl/settings.gradle | 1 -
.../sample-apl/src/main/AndroidManifest.xml | 2 -
.../src/main/assets/config/APLViewport.json | 116 -
.../main/assets/sample-app/sample-apl.json | 5 -
.../com/amazon/sampleapp/apl/APLFragment.java | 54 -
.../com/amazon/sampleapp/apl/APLHandler.java | 181 -
.../sampleapp/apl/APLModuleFactory.java | 160 -
.../sample-apl/src/main/libs/.gitignore | 2 -
.../src/main/res/drawable/customborder.xml | 6 -
.../src/main/res/layout/apl_view.xml | 20 -
.../modules/sample-connectivity/.gitignore | 1 -
.../modules/sample-connectivity/build.gradle | 53 -
.../sample-connectivity/gradle.properties | 2 -
.../sample-connectivity/settings.gradle | 1 -
.../src/main/AndroidManifest.xml | 2 -
.../sample-app/sample-connectivity.json | 5 -
.../AlexaConnectivityHandler.java | 521 -
.../ConnectivityModuleFactory.java | 59 -
.../src/main/libs/.gitignore | 2 -
.../src/main/res/layout/connectivity_view.xml | 31 -
.../src/main/res/values/colors.xml | 7 -
.../src/main/res/values/strings.xml | 7 -
.../android/modules/sample-core/.gitignore | 1 -
.../android/modules/sample-core/build.gradle | 31 -
.../modules/sample-core/proguard-rules.pro | 21 -
.../sample-core/src/main/AndroidManifest.xml | 2 -
.../sampleapp/core/AuthStateObserver.java | 28 -
.../AuthorizationHandlerFactoryInterface.java | 35 -
.../core/AuthorizationHandlerInterface.java | 56 -
...AuthorizationHandlerObserverInterface.java | 78 -
.../sampleapp/core/EngineStatusListener.java | 21 -
.../core/LoggerControllerInterface.java | 6 -
.../core/ModuleFactoryInterface.java | 18 -
.../sampleapp/core/PropertyListener.java | 29 -
.../sampleapp/core/SampleAppContext.java | 60 -
.../src/main/res/values/strings.xml | 3 -
samples/android/settings.gradle | 2 -
samples/cpp/.gitignore | 11 -
samples/cpp/CMakeLists.txt | 52 +-
samples/cpp/README.md | 236 +-
samples/cpp/SampleApp/CMakeLists.txt | 447 -
.../AddressBook/AddressBookHandler.h | 109 -
.../include/SampleApp/Alexa/AlertsHandler.h | 67 -
.../SampleApp/Alexa/AlexaClientHandler.h | 69 -
.../SampleApp/Alexa/AlexaSpeakerHandler.h | 66 -
.../SampleApp/Alexa/AudioPlayerHandler.h | 63 -
.../SampleApp/Alexa/DeviceSetupHandler.h | 64 -
.../SampleApp/Alexa/DoNotDisturbHandler.h | 64 -
.../Alexa/EqualizerControllerHandler.h | 64 -
.../SampleApp/Alexa/GlobalPresetHandler.h | 63 -
.../SampleApp/Alexa/LocalMediaSourceHandler.h | 91 -
.../SampleApp/Alexa/NotificationsHandler.h | 65 -
.../Alexa/PlaybackControllerHandler.h | 59 -
.../SampleApp/Alexa/SpeechRecognizerHandler.h | 84 -
.../SampleApp/Alexa/TemplateRuntimeHandler.h | 76 -
.../Audio/AudioInputProviderHandler.h | 127 -
.../Audio/AudioOutputProviderHandler.h | 133 -
.../Authorization/AuthorizationHandler.h | 131 -
.../SampleApp/CarControl/CarControlHandler.h | 100 -
.../Communication/CommunicationHandler.h | 100 -
.../Connectivity/AlexaConnectivityHandler.h | 68 -
.../LocalSearchProviderHandler.h | 101 -
.../Location/LocationProviderHandler.h | 63 -
.../include/SampleApp/Logger/LoggerHandler.h | 101 -
.../SampleApp/Messaging/MessagingHandler.h | 138 -
.../SampleApp/Navigation/NavigationHandler.h | 97 -
.../Network/NetworkInfoProviderHandler.h | 70 -
.../PhoneControl/PhoneControlHandler.h | 98 -
.../PropertyManager/PropertyManagerHandler.h | 59 -
.../TextToSpeech/TextToSpeechHandler.h | 77 -
samples/cpp/SampleApp/include/gsl/contracts.h | 162 -
.../SampleApp/include/nlohmann/.clang-format | 2 -
.../cpp/SampleApp/include/nlohmann/json.hpp | 20842 ----------------
.../src/AddressBook/AddressBookHandler.cpp | 286 -
.../cpp/SampleApp/src/Alexa/AlertsHandler.cpp | 157 -
.../src/Alexa/AlexaClientHandler.cpp | 174 -
.../src/Alexa/AlexaSpeakerHandler.cpp | 166 -
.../src/Alexa/AudioPlayerHandler.cpp | 104 -
.../src/Alexa/DeviceSetupHandler.cpp | 83 -
.../src/Alexa/DoNotDisturbHandler.cpp | 129 -
.../src/Alexa/EqualizerControllerHandler.cpp | 118 -
.../src/Alexa/GlobalPresetHandler.cpp | 85 -
.../src/Alexa/LocalMediaSourceHandler.cpp | 320 -
.../src/Alexa/NotificationsHandler.cpp | 107 -
.../src/Alexa/SpeechRecognizerHandler.cpp | 164 -
.../src/Alexa/TemplateRuntimeHandler.cpp | 202 -
.../src/Audio/AudioInputProviderHandler.cpp | 195 -
.../src/Audio/AudioOutputProviderHandler.cpp | 289 -
.../Authorization/AuthorizationHandler.cpp | 352 -
.../src/CarControl/CarControlHandler.cpp | 334 -
.../Communication/CommunicationHandler.cpp | 217 -
.../Connectivity/AlexaConnectivityHandler.cpp | 283 -
.../LocalSearchProviderHandler.cpp | 144 -
.../src/Location/LocationProviderHandler.cpp | 123 -
.../SampleApp/src/Logger/LoggerHandler.cpp | 124 -
.../src/Navigation/NavigationHandler.cpp | 557 -
.../Network/NetworkInfoProviderHandler.cpp | 113 -
.../src/PhoneControl/PhoneControlHandler.cpp | 534 -
.../PropertyManagerHandler.cpp | 72 -
.../src/TextToSpeech/TextToSpeechHandler.cpp | 180 -
samples/cpp/SampleApp/src/main.cpp | 270 -
samples/cpp/aac-sample-cpp.bb | 27 -
samples/cpp/assets/certs/09789157.0 | 24 -
samples/cpp/assets/certs/3513523f.0 | 22 -
samples/cpp/assets/certs/6d41d539.0 | 31 -
samples/cpp/assets/certs/85cf5865.0 | 27 -
samples/cpp/assets/certs/8cb5ee0f.0 | 12 -
samples/cpp/assets/certs/b204d74a.0 | 28 -
samples/cpp/assets/certs/ce5e74ef.0 | 20 -
samples/cpp/assets/certs/de6d66f3.0 | 13 -
samples/cpp/assets/certs/f387163d.0 | 24 -
samples/cpp/assets/config.json.in | 59 -
samples/cpp/assets/config/config.json | 91 +
samples/cpp/assets/{ => menu}/MENU.md | 21 -
samples/cpp/assets/{ => menu}/menu.json | 19 +-
samples/cpp/assets/sampledata/Contacts.json | 72 -
.../sampledata/NavigationFavorites.json | 96 -
samples/cpp/cmake/FindSQLite3.cmake | 18 -
samples/cpp/cmake/aac-sampleapp.cmake | 112 +
samples/cpp/conanfile.py | 135 +
.../include/SampleApp/Activity.h | 0
.../AddressBook/AddressBookHandler.h | 170 +
.../include/SampleApp/Alexa/AlertsHandler.h | 141 +
.../SampleApp/Alexa/AlexaClientHandler.h | 137 +
.../SampleApp/Alexa/AlexaSpeakerHandler.h | 126 +
.../SampleApp/Alexa/AudioPlayerHandler.h | 142 +
.../SampleApp/Alexa/DeviceSetupHandler.h | 93 +
.../SampleApp/Alexa/DoNotDisturbHandler.h | 91 +
.../Alexa/EqualizerControllerHandler.h | 133 +
.../SampleApp/Alexa/LocalMediaSourceHandler.h | 242 +
.../Alexa/MediaPlaybackRequestorHandler.h | 84 +
.../SampleApp/Alexa/NotificationsHandler.h | 92 +
.../Alexa/PlaybackControllerHandler.h | 88 +
.../SampleApp/Alexa/SpeechRecognizerHandler.h | 139 +
.../Alexa/SpeechSynthesizerHandler.h | 6 +-
.../SampleApp/Alexa/TemplateRuntimeHandler.h | 143 +
.../include/SampleApp/Application.h | 95 +-
.../include/SampleApp/ApplicationContext.h | 0
.../{SampleApp => }/include/SampleApp/Args.h | 0
.../Audio/AudioInputProviderHandler.h | 100 +
.../Audio/AudioOutputProviderHandler.h | 321 +
.../AuthProviderAuthorizationHandler.h | 0
...thProviderAuthorizationListenerInterface.h | 2 +
.../Authorization/AuthorizationHandler.h | 206 +
.../SampleApp/CarControl/BoolController.h | 0
.../CarControl/CarControlDataProvider.h | 0
.../SampleApp/CarControl/CarControlHandler.h | 208 +
.../SampleApp/CarControl/ModeController.h | 0
.../SampleApp/CarControl/RangeController.h | 0
.../Communication/AlexaCommsHandler.h | 121 +
.../Connectivity/AlexaConnectivityHandler.h | 160 +
.../include/SampleApp/DCM/DCMHandler.h | 16 +-
.../{SampleApp => }/include/SampleApp/Event.h | 5 +-
.../include/SampleApp/Executor.h | 0
.../include/SampleApp/Extension.h | 13 +-
.../LocalSearchProviderHandler.h | 124 +
.../Location/LocationProviderHandler.h | 105 +
.../include/SampleApp/Logger/LoggerHandler.h | 124 +
.../SampleApp/Messaging/MessagingHandler.h | 236 +
.../SampleApp/Navigation/NavigationHandler.h | 245 +
.../Network/NetworkInfoProviderHandler.h | 111 +
.../PhoneControl/PhoneControlHandler.h | 273 +
.../PropertyManager/PropertyManagerHandler.h | 126 +
.../include/SampleApp/Status.h | 0
.../include/SampleApp/Subject.h | 0
.../{SampleApp => }/include/SampleApp/TTY.h | 0
.../include/SampleApp/TaskQueue.h | 0
.../include/SampleApp/TaskThread.h | 0
.../TextToSpeech/TextToSpeechHandler.h | 158 +
.../{SampleApp => }/include/SampleApp/Views.h | 0
samples/cpp/{SampleApp => }/src/Activity.cpp | 0
.../src/AddressBook/AddressBookHandler.cpp | 402 +
samples/cpp/src/Alexa/AlertsHandler.cpp | 250 +
samples/cpp/src/Alexa/AlexaClientHandler.cpp | 366 +
samples/cpp/src/Alexa/AlexaSpeakerHandler.cpp | 219 +
samples/cpp/src/Alexa/AudioPlayerHandler.cpp | 266 +
samples/cpp/src/Alexa/DeviceSetupHandler.cpp | 120 +
samples/cpp/src/Alexa/DoNotDisturbHandler.cpp | 158 +
.../src/Alexa/EqualizerControllerHandler.cpp | 195 +
.../cpp/src/Alexa/LocalMediaSourceHandler.cpp | 554 +
.../Alexa/MediaPlaybackRequestorHandler.cpp | 112 +
.../cpp/src/Alexa/NotificationsHandler.cpp | 141 +
.../src/Alexa/PlaybackControllerHandler.cpp | 37 +-
.../cpp/src/Alexa/SpeechRecognizerHandler.cpp | 227 +
.../src/Alexa/SpeechSynthesizerHandler.cpp | 3 +-
.../cpp/src/Alexa/TemplateRuntimeHandler.cpp | 298 +
.../cpp/{SampleApp => }/src/Application.cpp | 281 +-
.../src/ApplicationContext.cpp | 16 +-
.../src/Audio/AudioInputProviderHandler.cpp | 174 +
.../src/Audio/AudioOutputProviderHandler.cpp | 533 +
.../AuthProviderAuthorizationHandler.cpp | 3 +-
.../Authorization/AuthorizationHandler.cpp | 481 +
.../src/CarControl/CarControlDataProvider.cpp | 0
.../cpp/src/CarControl/CarControlHandler.cpp | 337 +
.../src/Communication/AlexaCommsHandler.cpp | 246 +
.../Connectivity/AlexaConnectivityHandler.cpp | 453 +
.../{SampleApp => }/src/DCM/DCMHandler.cpp | 18 +-
samples/cpp/{SampleApp => }/src/Executor.cpp | 0
samples/cpp/{SampleApp => }/src/Extension.cpp | 23 +-
.../LocalSearchProviderHandler.cpp | 175 +
.../src/Location/LocationProviderHandler.cpp | 179 +
samples/cpp/src/Logger/LoggerHandler.cpp | 98 +
.../src/Messaging/MessagingHandler.cpp | 128 +-
.../cpp/src/Navigation/NavigationHandler.cpp | 683 +
.../Network/NetworkInfoProviderHandler.cpp | 162 +
.../src/PhoneControl/PhoneControlHandler.cpp | 773 +
.../PropertyManagerHandler.cpp | 218 +
samples/cpp/{SampleApp => }/src/TaskQueue.cpp | 0
.../cpp/{SampleApp => }/src/TaskThread.cpp | 0
.../src/TextToSpeech/TextToSpeechHandler.cpp | 333 +
samples/cpp/{SampleApp => }/src/Views.cpp | 3 +-
samples/cpp/src/main.cpp | 269 +
tools/aac-tool-a2ml/conanfile.py | 25 +
.../aac-tool-a2ml/src/A2ML/a2ml/generator.py | 25 +
tools/aac-tool-a2ml/src/A2ML/a2ml/parser.py | 48 +
.../src/A2ML/a2ml/templates/interface.tmpl | 64 +
.../aac-tool-a2ml/src/A2ML/aasb/generator.py | 194 +
.../src/A2ML/aasb/templates/enum.tmpl | 44 +
.../src/A2ML/aasb/templates/footer.tmpl | 7 +
.../src/A2ML/aasb/templates/header.tmpl | 40 +
.../src/A2ML/aasb/templates/message.tmpl | 246 +
.../src/A2ML/aasb/templates/struct.tmpl | 48 +
.../src/A2ML/markdown/generator.py | 31 +
.../A2ML/markdown/templates/interface.tmpl | 198 +
tools/aac-tool-a2ml/src/A2ML/model.py | 351 +
tools/aac-tool-a2ml/src/A2ML/processor.py | 132 +
tools/aac-tool-a2ml/src/a2ml.py | 57 +
4438 files changed, 576805 insertions(+), 258113 deletions(-)
create mode 100644 BUILDING.md
delete mode 100644 CMakeLists.txt
create mode 100644 LICENSE_APACHE_V2
create mode 100644 LINUX_INTEGRATION.md
create mode 100644 MIGRATION_TO_AASB_MESSAGEBROKER.md
create mode 100644 SDK_MODULES.md
create mode 100644 SECURITY.md
create mode 100644 aacs/android/README.md
rename {platforms => aacs}/android/app-components/alexa-auto-apis/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apis/README.md
create mode 100644 aacs/android/app-components/alexa-auto-apis/build.gradle
rename {extensions/bluetooth/aacs/android/modules/aacs-bluetooth => aacs/android/app-components/alexa-auto-apis}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AnimationProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AssistantManager.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/EarconProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SettingsProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupController.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupProvider.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/apl/APLTheme.kt
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaApp.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaAppRootComponent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/ScopedComponent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthController.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthStatus.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt (93%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthorizationHandlerInterface.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/BluetoothDevice.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/ContactsController.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/login/LoginUIEventListener.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/module/ModuleInterface.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionActivityController.java
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionViewController.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupController.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupWorkflowController.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionStatus.kt
create mode 100644 aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionsController.java
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/README.md
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/build.gradle
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/gradle.properties (100%)
rename {extensions/extras => aacs/android/app-components/alexa-auto-apl-renderer/libs}/.gitignore (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/README.md
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/build.gradle
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/gradle.properties (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/lombok.config (100%)
rename {extensions/bluetooth/samples/android/modules/sample-bluetooth => aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render}/proguard-rules.pro (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/settings.gradle (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/AndroidManifest.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLPresenter.java
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java (97%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/audio/AudioFocusController.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java (98%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityContext.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityScope.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationContext.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationScope.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ActivityComponent.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ApplicationComponent.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java (87%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ActivityModule.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ApplicationModule.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/MediaPlayerModule.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/NetworkModule.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/TtsModule.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/ExtensionManager.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackExtension.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStack.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStackDocument.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/IBackCallback.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/localinfo/LocalInfoExtension.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/font/AutoEmbeddedFontResolver.java
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java (87%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLEventSender.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLOptionsBuilderProvider.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLTokenProvider.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IDismissible.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataConsumer.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataReporter.java
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java (76%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java (98%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayerProvider.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/NetworkExecutor.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java (98%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java (95%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/ExecuteCommandPayload.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java (97%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java (98%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderedDocumentStatePayload.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/TimeoutType.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/UserEventPayload.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java (96%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java (96%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/RenderDocumentUtils.java (100%)
rename {platforms/android => aacs/android/app-components/alexa-auto-apl-renderer}/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/ViewportUtils.java (100%)
rename {platforms/android/app-components/alexa-auto-apl-renderer => aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main}/libs/.gitignore (100%)
rename {platforms/android/alexa-auto-client-service/commonutils/aacscommonutils => aacs/android/app-components/alexa-auto-apl-renderer}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/assets/APLViewport.json
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLDirective.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLFragment.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLThemeDirective.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/Constants.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/handler/APLHandler.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/fragment_apl.xml
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/dimens.xml
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/TestResourceFileReader.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/handler/APLHandlerTest.java
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java (87%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiverTest.java
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json (91%)
rename {platforms => aacs}/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json (92%)
create mode 100644 aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/UpdateAPLRuntimeProperties.json
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/.gitignore (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/README.md (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-ui/build.gradle
rename {platforms/android/alexa-auto-client-service/constants/aacsconstants => aacs/android/app-components/alexa-auto-apps-common-ui}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/CirclePageIndicatorDecoration.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/LoadingDialog.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialog.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/PopupDialogUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/ViewUtils.java (100%)
create mode 100755 aacs/android/app-components/alexa-auto-apps-common-ui/src/main/res-placeholders/drawable/alexa_bubble_small.png
rename platforms/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/alexa_placeholder_logo.png => aacs/android/app-components/alexa-auto-apps-common-ui/src/main/res-placeholders/drawable/alexa_logo.png (100%)
mode change 100644 => 100755
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/color/radio_button_color_selector.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/ic_close.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/light_button_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/medium_component_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/selected_rect_button_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/small_component_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/transparent_button_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/transparent_rect_button_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/layout/loading_dialog_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/layout/simple_dialog_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/layout/two_choice_dialog_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/attrs.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/colors.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/dimens.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/styles.app.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/main/res/values/theme-alexa-standard.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-ui/src/test/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialogTest.java (100%)
rename {extensions/bluetooth/samples/android/modules/sample-bluetooth => aacs/android/app-components/alexa-auto-apps-common-util}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/README.md
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/build.gradle
rename {platforms/android/alexa-auto-client-service/ipc/aacsipc => aacs/android/app-components/alexa-auto-apps-common-util}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/Constants.java
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/aacs/AACSServiceController.java (95%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/message/AssistantMessage.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/DNDSettingsProvider.java
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/EarconSoundSettingsProvider.java
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/FileUtil.java
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/LocaleUtil.java
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/ModuleProvider.java (90%)
rename {platforms/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow => aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common}/util/NetworkUtil.java (96%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/Preconditions.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/UiThemeManager.java
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/config/AlexaPropertyManager.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/config/LocalesProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/test/java/com/amazon/alexa/auto/apps/common/aacs/AACSServiceControllerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/test/java/com/amazon/alexa/auto/apps/common/util/FileUtilTest.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-apps-common-util/src/test/java/com/amazon/alexa/auto/apps/common/util/UiThemeManagerTest.java
rename {platforms => aacs}/android/app-components/alexa-auto-apps-common-util/src/test/resources/aacs_config.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-carcontrol/README.md
rename {extensions/system-audio/modules/system-audio/lib/aal => aacs/android/app-components/alexa-auto-carcontrol/aacscarcontrol}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-carcontrol/aacscarcontrol/build.gradle
rename {platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra => aacs/android/app-components/alexa-auto-carcontrol/aacscarcontrol}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/assets/CarControlEndpointMapping.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/java/com/amazon/aacscarcontrol/AACSCarControlReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/java/com/amazon/aacscarcontrol/CarControlConstants.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/java/com/amazon/aacscarcontrol/CarControlHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/java/com/amazon/aacscarcontrol/CarControlHelper.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/main/java/com/amazon/aacscarcontrol/CarControlUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/test/java/com/amazon/aacscarcontrol/CarControlHandlerTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/aacscarcontrol/src/test/java/com/amazon/aacscarcontrol/CarControlHelperTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/assets/set-fan-speed-to-3.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/assets/set-fan-speed-to-3.puml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/assets/set-reply-to-engine.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-carcontrol/assets/set-reply-to-engine.puml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-carcontrol/build.gradle
rename {extensions/bluetooth/aacs/android => aacs/android/app-components/alexa-auto-carcontrol}/gradle.properties (100%)
create mode 100644 aacs/android/app-components/alexa-auto-carcontrol/settings.gradle
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/README.md
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/build.gradle
rename {platforms/android/app-components/alexa-auto-apis => aacs/android/app-components/alexa-auto-comms-ui}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/Constants.java
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/ContactsControllerImpl.java
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/PreferenceKeys.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/BTDevice.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/BTDeviceDao.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/BTDeviceDatabase.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/BTDeviceRepository.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/ConnectedBTDevice.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/ConnectedBTDeviceDao.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/ConnectedBTDeviceDatabase.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/ConnectedBTDeviceRepository.java
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/dependencies/AndroidModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/dependencies/CommunicationComponent.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/dependencies/CommunicationModule.java
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/fragment/settings/CommunicationFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/fragment/settings/CommunicationPreferenceFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/fragment/setup/CommunicationConsentFragment.java (96%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/fragment/setup/CommunicationConsentViewModel.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/handler/BluetoothDirectiveHandler.java (91%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/receiver/BluetoothReceiver.java
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/drawable/ic_arrow_right.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/layout-land/communication_setup_fragment.xml
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_consent_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_pair_new_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_preference_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_settings_fragment.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_setup_fragment.xml
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/navigation/communication_navigation.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-de/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-en-rAU/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-en-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-en-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-en-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-en/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-es-rMX/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-es-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-es/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-fr-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-fr/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-hi-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-it/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-ja/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-land/dimens.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values-pt-rBR/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values/dimens.xml
create mode 100644 aacs/android/app-components/alexa-auto-comms-ui/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/main/res/xml/communication_preferences.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/test/java/com/amazon/alexa/auto/comms/ui/fragment/setup/CommunicationConsentFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/test/java/com/amazon/alexa/auto/comms/ui/fragment/setup/CommunicationConsentViewModelTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/test/java/com/amazon/alexa/auto/comms/ui/handler/BluetoothDirectiveHandlerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-comms-ui/src/test/java/com/amazon/alexa/auto/comms/ui/receiver/BluetoothReceiverTest.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-contacts/README.md
rename {platforms/android/app-components/alexa-auto-media-player => aacs/android/app-components/alexa-auto-contacts/aacscontacts}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-contacts/aacscontacts/build.gradle
rename {extensions/bluetooth/aacs/android/modules/aacs-bluetooth => aacs/android/app-components/alexa-auto-contacts/aacscontacts}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-apl-renderer => aacs/android/app-components/alexa-auto-contacts/aacscontacts}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/main/java/com/amazon/aacscontacts/AACSContactsService.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/main/java/com/amazon/aacscontacts/Constants.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/main/java/com/amazon/aacscontacts/PhoneBookController.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/app-components/alexa-auto-contacts/aacscontacts}/src/main/res/drawable/alexa_notification_icon.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/aacscontacts/src/test/java/com/amazon/aacscontacts/PhoneBookControllerTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/assets/contactsLib-add.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/assets/contactsLib-add.puml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/assets/contactsLib-remove.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-contacts/assets/contactsLib-remove.puml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-contacts/build.gradle
rename {platforms/android/alexa-auto-client-service/commonutils => aacs/android/app-components/alexa-auto-contacts}/gradle.properties (100%)
create mode 100644 aacs/android/app-components/alexa-auto-contacts/settings.gradle
rename {platforms/android/app-components/alexa-auto-navigation => aacs/android/app-components/alexa-auto-device-usage}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-device-usage/README.md
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/build.gradle (100%)
rename {platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra => aacs/android/app-components/alexa-auto-device-usage}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-apps-common-ui => aacs/android/app-components/alexa-auto-device-usage}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/src/main/java/com/amazon/alexa/auto/deviceusage/AASBReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/src/main/java/com/amazon/alexa/auto/deviceusage/DeviceUsageHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/src/main/java/com/amazon/alexa/auto/deviceusage/NetworkStatsManagerRunner.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-device-usage/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/.gitignore (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/README.md (100%)
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/build.gradle
rename {platforms/android/app-components/alexa-auto-apps-common-util => aacs/android/app-components/alexa-auto-lwa-auth}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/src/main/AndroidManifest.xml
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/AlexaClientReceiver.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/AuthReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/CBLAuthReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/LWAAuthConstants.java
create mode 100644 aacs/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/LWAAuthController.java
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/TokenStore.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/UserIdentityStore.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-lwa-auth/src/main/res/values/strings.xml (100%)
rename {platforms/android/app-components/alexa-auto-templateruntime-renderer => aacs/android/app-components/alexa-auto-media-player}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/README.md
create mode 100644 aacs/android/app-components/alexa-auto-media-player/build.gradle
rename {platforms/android/app-components/alexa-auto-comms-ui => aacs/android/app-components/alexa-auto-media-player}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/AndroidManifest.xml
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/Constants.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/MusicStreamAttributeUpdater.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/ShutdownActionReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/aacs/handlers/AudioPlayerHandler.java
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/aacs/handlers/IMediaDuckingObserver.java
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/aacs/handlers/TemplateRuntimeHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/browse/AlexaMediaBrowseService.java (77%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/content/AlbumArtContentProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/dependencies/AACSModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/dependencies/AndroidModule.java (79%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/dependencies/MediaComponent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/dependencies/MediaModule.java (89%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/MediaPlayerAudioFocusController.java (90%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/MediaPlayerExo.java (98%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/MediaSourceFactory.java
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/MediaState.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/NotificationController.java (94%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/PlaylistParser.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/CustomActionProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/CustomActionProviders.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/MediaMetadataProvider.java (95%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/MediaSessionManager.java
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/PlaybackControlButtonActionProvider.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/PlaybackController.java
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/default_album_image.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_dislike.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_dislike_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_item_place_holder.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_like.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_like_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_repeat.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_repeat_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_shuffle.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_shuffle_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_skip_backward_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_skip_forward_selected.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_skip_next_disabled.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/drawable/media_skip_previous_disabled.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/layout/msp_option_view.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-de/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-en-rAU/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-en-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-en-rIN/strings.xml
rename {platforms/android/app-components/alexa-auto-media-player/src/main/res/values => aacs/android/app-components/alexa-auto-media-player/src/main/res/values-en-rUS}/strings.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-en/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-es-rMX/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-es-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-es/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-fr-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-fr/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values-h600dp/dimens.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values-h600dp/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values-h600dp/values.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-hi-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-it/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-ja/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values-pt-rBR/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values/colors.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values/dimens.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values/integers.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-media-player/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/main/res/values/values.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/browse/AlexaMediaBrowseServiceTest.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/player/MediaPlayerAudioFocusControllerTest.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/session/MediaMetadataProverTest.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/session/MediaSessionManagerTest.kt (93%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/session/PlaybackControlButtonActionProviderTest.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/session/PlaybackControllerTest.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/java/com/amazon/alexa/auto/media/session/RenderPlayerInfoBuilder.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-media-player/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker (100%)
rename {samples/android-aacs-sample-app/alexa-auto-app => aacs/android/app-components/alexa-auto-navigation}/.gitignore (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/README.md (100%)
create mode 100644 aacs/android/app-components/alexa-auto-navigation/build.gradle
rename {platforms/android/app-components/alexa-auto-contacts/aacscontacts => aacs/android/app-components/alexa-auto-navigation}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/dependencies/AACSModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/dependencies/AndroidModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/dependencies/GoogleMapsModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/dependencies/NavigationComponent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/handlers/LocalSearchDirectiveHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/handlers/NavigationDirectiveHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/poi/ClearTemplateEvent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/poi/LocalSearchListAdapter.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/providers/NavigationProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/providers/google/GoogleMapsNavigationProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/receiver/LocalSearchTemplateRuntimeReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/java/com/amazon/alexa/auto/navigation/receiver/NavigationReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/drawable/circle_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/drawable/ic_cancel.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/drawable/light_info_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/drawable/local_search_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/layout/local_search_detail.xml (98%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/layout/local_search_item.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/layout/local_search_list.xml (96%)
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-de/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-en-rAU/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-en-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-en-rIN/strings.xml
rename {platforms/android/app-components/alexa-auto-navigation/src/main/res/values => aacs/android/app-components/alexa-auto-navigation/src/main/res/values-en-rUS}/strings.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-en/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-es-rMX/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-es-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-es/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-fr-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-fr/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-hi-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-it/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-ja/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/values-land/dimens.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values-pt-rBR/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values/dimens.xml
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/values/ids.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-navigation/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/main/res/values/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/handlers/LocalSearchDirectiveHandlerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/handlers/NavigationDirectiveHandlerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/poi/LocalSearchListAdapterTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/providers/google/GoogleMapsNavigationProviderTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/receiver/LocalSearchTemplateRuntimeReceiverTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/receiver/NavigationReceiverTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/java/com/amazon/alexa/auto/navigation/receiver/TestResourceFileReader.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/CancelNavigation.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/ClearTemplate.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/GetNavigationState.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/RenderTemplateLocalSearchDetail.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/RenderTemplateLocalSearchList.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-navigation/src/test/resources/aacs/StartNavigation.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/README.md
create mode 100644 aacs/android/app-components/alexa-auto-settings/build.gradle
rename {platforms/android/app-components/alexa-auto-device-usage => aacs/android/app-components/alexa-auto-settings}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/assets/locales.json
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/AACSMetadataReceiver.java (88%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/AACSPreferenceFragment.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/AlexaSettingsLanguagesFragment.java
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/AlexaSoundPreferencesFragment.java
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/DNDChangeMessage.java
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/DNDReceiver.java
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/SettingsActivity.java (96%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/SettingsActivityViewModel.java (83%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/config/AACSConfiguration.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/config/AACSConfigurationPreferences.kt (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/config/AACSConfigurator.java (98%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/config/PreferenceKeys.java
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/dependencies/AACSModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/dependencies/AndroidModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/dependencies/ConfigModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/dependencies/MenuModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/dependencies/SettingsComponent.java (83%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/home/AlexaSettingsHomeFragment.java (90%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/home/AlexaSettingsScreenBuilder.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/home/AuthSettingsScreenBuilder.java (85%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/home/DebugSettingsScreenBuilder.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/home/VoiceAssistanceSettingsScreenBuilder.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/drawable/ic_arrow_back.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/drawable/ic_check.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/layout/alexa_last_preference_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/layout/alexa_preference_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/layout/navigation_bar_layout.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/layout/settings_activity_layout.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/layout/settings_alexa_language_layout.xml
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/navigation/settings_navigation.xml (77%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-de/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-en-rAU/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-en-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-en-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-en-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-en/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-es-rMX/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-es-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-es/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-fr-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-fr/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-hi-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-it/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-ja/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values-pt-rBR/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/values/dimens.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/values/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/xml/aacs_preferences.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/main/res/xml/alexa_preferences.xml (88%)
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/main/res/xml/alexa_sound_preferences.xml
create mode 100644 aacs/android/app-components/alexa-auto-settings/src/test/java/com/amazon/alexa/auto/settings/AlexaSoundPreferencesFragmentTest.java
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/test/java/com/amazon/alexa/auto/settings/home/AlexaSettingsHomeFragmentTest.java (94%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/test/java/com/amazon/alexa/auto/settings/home/AuthSettingsScreenBuilderTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/test/java/com/amazon/alexa/auto/settings/home/DebugSettingsScreenBuilderTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-settings/src/test/java/com/amazon/alexa/auto/settings/home/VoiceAssistanceSettingsScreenBuilderTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/README.md
create mode 100644 aacs/android/app-components/alexa-auto-setup/build.gradle
rename {platforms/android/app-components/alexa-auto-lwa-auth => aacs/android/app-components/alexa-auto-setup}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/assets/workflowSpecification/CBLLoginWorkflowSpecification.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/assets/workflowSpecification/PreviewModeLoginWorkflowSpecification.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/dependencies/AndroidModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/dependencies/ConfigModule.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/dependencies/SetupComponent.java
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/dependencies/WorkflowModule.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/receiver/NetworkStateChangeReceiver.java
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/AlexaSetupWorkflowControllerImpl.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/Workflow.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/WorkflowMessage.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/WorkflowNavigator.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/WorkflowProvider.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/WorkflowStep.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/CheckContactsConsentStatusCommand.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/CheckLanguageCommand.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/CheckLocationConsentCommand.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/CheckLoginRequiredCommand.java (97%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/CheckNetworkStatusCommand.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/Command.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/command/SetupCompleteCommand.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/event/LoginEvent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/event/VoiceAssistanceEvent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/AuthProviderAuthenticatedFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLFragment.java (84%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLLoginErrorFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLLoginFinishFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLViewModel.java (90%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/EnablePreviewModeFragment.java
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/EnablePreviewModeViewModel.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/LanguageSelectionFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/LocationConsentFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/LoginFragment.java (86%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/LoginViewModel.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/NetworkFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/NetworkViewModel.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/SetupNotCompleteFragment.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/model/LocationConsent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/util/QRCodeGenerator.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/drawable/ic_wifi_help.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/auth_provider_login_finished.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/layout-land/cbl_code_loading.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/cbl_login_error.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/cbl_login_finished.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/enable_preview_mode.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/location_consent.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/login_display_cbl_code.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/login_start.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/network_fragment.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/setup_not_complete.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout-land/start_language_selection.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/layout/aacs_connection_loading.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/auth_provider_login_finished.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_code_loading.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_fragment.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_login_error.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_login_finished.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/enable_preview_mode.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/location_consent.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/login_display_cbl_code.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/layout/login_fragment.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/login_start.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/network_fragment.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/setup_not_complete.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/layout/start_language_selection.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/main/res/navigation/setup_navigation.xml (97%)
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-de/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-en-rAU/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-en-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-en-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-en-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-en/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-es-rMX/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-es-rUS/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-es/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-fr-rCA/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-fr/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-hi-rIN/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-it/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-ja/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-land/dimens.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values-pt-rBR/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values/dimens.xml
create mode 100644 aacs/android/app-components/alexa-auto-setup/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/TestResourceFileReader.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/WorkflowNavigatorTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/WorkflowProviderTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/command/CheckLocationConsentCommandTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/command/SetupCompleteCommandTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/AuthProviderAuthenticatedFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLLoginErrorFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLLoginFinishFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/CBLViewModelTest.java (85%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/EnablePreviewModeFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/LanguageSelectionFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/LocationConsentFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/LoginFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/LoginViewModelTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/NetworkFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/fragment/SetupNotCompleteFragmentTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/java/com/amazon/alexa/auto/setup/workflow/receiver/NetworkStateChangeReceiverTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-setup/src/test/resources/workflowSpecification/CBLLoginWorkflowSpecification.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-telephony/README.md
rename {platforms/android/alexa-auto-client-service/commonutils/aacscommonutils => aacs/android/app-components/alexa-auto-telephony/aacstelephony}/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-telephony/aacstelephony/build.gradle
rename {platforms/android/alexa-auto-client-service/commonutils/aacscommonutils => aacs/android/app-components/alexa-auto-telephony/aacstelephony}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-media-player => aacs/android/app-components/alexa-auto-telephony/aacstelephony}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/androidTest/java/com/amazon/aacstelephony/ExampleInstrumentedTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/AACSTelephonyService.java (85%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/BluetoothStateListener.java (98%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/CallMap.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/CallStateListener.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/Constants.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/PhoneCallController.java
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/Util.java (92%)
rename {platforms/android/app-components/alexa-auto-contacts/aacscontacts => aacs/android/app-components/alexa-auto-telephony/aacstelephony}/src/main/res/drawable/alexa_notification_icon.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/test/java/com/amazon/aacstelephony/BluetoothStateListenerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/test/java/com/amazon/aacstelephony/CallStateListenerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/aacstelephony/src/test/java/com/amazon/aacstelephony/PhoneCallControllerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/assets/AACSTelephony_initiateCall.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-telephony/assets/AACSTelephony_initiateCall.puml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-telephony/build.gradle
rename {platforms/android/alexa-auto-client-service/constants => aacs/android/app-components/alexa-auto-telephony}/gradle.properties (100%)
create mode 100644 aacs/android/app-components/alexa-auto-telephony/settings.gradle
create mode 100644 aacs/android/app-components/alexa-auto-templateruntime-renderer/.gitignore
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/README.md (100%)
create mode 100644 aacs/android/app-components/alexa-auto-templateruntime-renderer/build.gradle
rename {platforms/android/app-components/alexa-auto-navigation => aacs/android/app-components/alexa-auto-templateruntime-renderer}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/dependencies/AACSModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/dependencies/AndroidModule.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/dependencies/TemplateRuntimeComponent.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/receiver/AlexaStateChangeReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/receiver/AlexaVoiceoverCompletedMessage.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/receiver/TemplateRuntimeReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/weather/WeatherAdapter.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/java/com/amazon/alexa/auto/templateruntime/weather/WeatherDirectiveHandler.java (97%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/drawable/display_card_background.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/drawable/ic_cancel.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/layout/weather.xml
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/layout/weather_current.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/layout/weather_forecast.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/layout/weather_forecast_day.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values-land/dimens.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values/dimens.xml
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values/ids.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values/styles.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/java/com/amazon/alexa/auto/templateruntime/common/TestResourceFileReader.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/java/com/amazon/alexa/auto/templateruntime/receiver/AlexaStateChangeReceiverTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/java/com/amazon/alexa/auto/templateruntime/receiver/TemplateRuntimeReceiverTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/java/com/amazon/alexa/auto/templateruntime/weather/WeatherAdapterTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/java/com/amazon/alexa/auto/templateruntime/weather/WeatherDirectiveHandlerTest.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/resources/aacs/ClearTemplate.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/resources/aacs/DialogStateChangedIdle.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/resources/aacs/DialogStateChangedListening.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-templateruntime-renderer/src/test/resources/aacs/RenderTemplateWeather.json (100%)
create mode 100644 aacs/android/app-components/alexa-auto-tts/README.md
create mode 100644 aacs/android/app-components/alexa-auto-tts/aacstts/.gitignore
create mode 100644 aacs/android/app-components/alexa-auto-tts/aacstts/build.gradle
rename {platforms/android/app-components/alexa-auto-settings => aacs/android/app-components/alexa-auto-tts/aacstts}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/AACSUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/AmazonTextToSpeechService.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/AudioDecoder.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/ISO3CodeUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/JSONUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/MessageHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/SynthesizeTextUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/TTSConstants.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/TTSIntentReceiver.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/handler/AASBHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/handler/AlexaClientHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/handler/IAACSMessageHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/handler/TTSHandler.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/models/GetCapabilitiesPayload.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/models/PrepareSpeechMessageOptions.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/models/PrepareSpeechMessagePayload.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/models/ProviderVoiceItem.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/java/com/amazon/aacstts/models/TTSSynthesisFutureResponse.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/test/java/com/amazon/aacstts/AlexaClientHandlerTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/test/java/com/amazon/aacstts/AmazonTextToSpeechServiceTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/test/java/com/amazon/aacstts/SynthesizeTextUtilTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/test/java/com/amazon/aacstts/TTSHandlerTests.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/aacstts/src/test/java/com/amazon/aacstts/TestAACSUtil.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/assets/Android_TTS.png (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/assets/Android_TTS.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-tts/build.gradle
rename {platforms/android/app-components/alexa-auto-carcontrol => aacs/android/app-components/alexa-auto-tts}/gradle.properties (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-tts/settings.gradle (100%)
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/.gitignore
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/README.md
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/build.gradle
rename {platforms/android/app-components/alexa-auto-setup => aacs/android/app-components/alexa-auto-ux-restrictions}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/src/main/assets/aacs-sample-app/modules-uxrestrictions.json
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/src/main/java/com/amazon/alexa/auto/uxrestrictions/CarUxRestrictionsModule.java
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/src/main/java/com/amazon/alexa/auto/uxrestrictions/DefaultCarUxRestrictionsController.java
create mode 100644 aacs/android/app-components/alexa-auto-ux-restrictions/src/main/res/values/strings.xml
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/.gitignore (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-interaction/README.md
create mode 100644 aacs/android/app-components/alexa-auto-voice-interaction/build.gradle
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/gradle.properties (100%)
rename {platforms/android/app-components/alexa-auto-telephony/aacstelephony => aacs/android/app-components/alexa-auto-voice-interaction}/proguard-rules.pro (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/AndroidManifest.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/common/AutoVoiceInteractionMessage.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/common/Constants.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/receiver/AACSBroadcastReceiver.java
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/service/AutoVoiceInteractionService.java (85%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/service/AutoVoiceInteractionSession.java
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/service/AutoVoiceInteractionSessionService.java (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/res/values/strings.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/main/res/xml/auto_voice_interaction_service.xml (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/test/java/com/amazon/alexa/auto/voiceinteraction/TestResourceFileReader.java (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-interaction/src/test/java/com/amazon/alexa/auto/voiceinteraction/receiver/AACSBroadcastReceiverTest.java
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/test/resources/aacs/ConnectionStatusChangedConnected.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/test/resources/aacs/ConnectionStatusChangedDisconnected.json (100%)
rename {platforms => aacs}/android/app-components/alexa-auto-voice-interaction/src/test/resources/aacs/WakewordDetected.json (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/.gitignore
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/README.md
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/build.gradle
rename {samples/android-aacs-sample-app => aacs/android/app-components/alexa-auto-voice-ui}/gradle.properties (100%)
rename {platforms/android/app-components/alexa-auto-templateruntime-renderer => aacs/android/app-components/alexa-auto-voice-ui}/proguard-rules.pro (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/AndroidManifest.xml
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/VoiceActivity.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/common/AutoVoiceUIMessage.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/common/Constants.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/earcon/EarconController.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/receiver/AACSBroadcastReceiver.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/session/SessionActivityControllerImpl.java
rename {platforms/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction => aacs/android/app-components/alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui}/session/SessionViewControllerImpl.java (96%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/layout/autovoiceinteraction_layout.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-de/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-en-rAU/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-en-rCA/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-en-rIN/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-en-rUS/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-en/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-es-rMX/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-es-rUS/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-es/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-fr-rCA/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-fr/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-hi-rIN/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-it/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-ja/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw-pt-rBR/auto_error_offline.mp3
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/raw/auto_error_offline.mp3
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/raw/med_ui_endpointing.wav (100%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/raw/med_ui_wakesound.wav (100%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/raw/med_ui_wakesound_touch.wav (100%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/values-land/dimens.xml (100%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/main/res/values/dimens.xml (100%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/values/strings.xml
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/main/res/values/styles.xml
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/test/java/com/amazon/alexa/auto/voice/ui/TestResourceFileReader.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/test/java/com/amazon/alexa/auto/voice/ui/receiver/AACSBroadcastReceiverTest.java
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/test/java/com/amazon/alexa/auto/voice/ui/session/SessionActivityControllerImplTest.java
rename {platforms/android/app-components/alexa-auto-voice-interaction/src/test/java/com/amazon/alexa/auto/voiceinteraction => aacs/android/app-components/alexa-auto-voice-ui/src/test/java/com/amazon/alexa/auto/voice/ui}/session/SessionViewControllerImplTest.java (97%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/test/resources/aacs/DialogStateChangedIdle.json (91%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/test/resources/aacs/DialogStateChangedListening.json (91%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/test/resources/aacs/DialogStateChangedSpeaking.json (91%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/app-components/alexa-auto-voice-ui}/src/test/resources/aacs/DialogStateChangedThinking.json (91%)
create mode 100644 aacs/android/app-components/alexa-auto-voice-ui/src/test/resources/aacs/WakewordDetected.json
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/AACSArchDetailed.png (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/AACSInit.puml (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/AACSInitFlow.png (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/AACSWakeword.png (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/AACSWakeword.puml (100%)
create mode 100644 aacs/android/assets/AACS_CBLLogin.png
create mode 100644 aacs/android/assets/AACS_CBLLogin.puml
rename {platforms/android/alexa-auto-client-service => aacs/android}/assets/APCP.png (100%)
create mode 100644 aacs/android/assets/config.json
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/.gitignore (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/README.md (100%)
rename {platforms/android/alexa-auto-client-service/constants/aacsconstants => aacs/android/common/commonutils/aacscommonutils}/.gitignore (100%)
create mode 100644 aacs/android/common/commonutils/aacscommonutils/build.gradle
rename {platforms/android/alexa-auto-client-service/constants/aacsconstants => aacs/android/common/commonutils/aacscommonutils}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-tts/aacstts => aacs/android/common/commonutils/aacscommonutils}/proguard-rules.pro (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/AndroidManifest.xml (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSComponentRegistryUtil.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessage.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessageBuilder.java (98%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessageSender.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSReplyMessage.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/ConnectionStatusChangedMessages.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/DialogStateChangedMessages.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/LocalSearchCommon.kt (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/LocalSearchDetailTemplate.kt (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/LocalSearchListTemplate.kt (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/NavigationMessages.java (100%)
create mode 100644 aacs/android/common/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/PlaybackControlMessages.java
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/RenderPlayerInfo.kt (87%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/SpeechRecognizerMessages.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/StartNavigation.kt (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/TemplateRuntimeMessages.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/WakewordDetectedMessages.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/WeatherTemplate.kt (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/AACSMessageBuilderTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/AACSMessageSenderTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/ConnectionStatusChangedMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/DialogStateChangedMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/NavigationMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/PlaybackControlMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/SpeechRecognizerMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/TemplateRuntimeMessagesTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/TestResourceFileReader.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/resources/aacs/LocalSearchDetailTemplateV1.json (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/resources/aacs/LocalSearchListTemplateV2.json (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/resources/aacs/StartNavigation.json (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/commonutils/aacscommonutils/src/test/resources/aacs/TemplateRuntimePlayerRenderInfo.json (100%)
create mode 100644 aacs/android/common/commonutils/build.gradle
rename {platforms/android/app-components/alexa-auto-contacts => aacs/android/common/commonutils}/gradle.properties (100%)
create mode 100644 aacs/android/common/commonutils/settings.gradle
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/.gitignore (100%)
rename {platforms/android/alexa-auto-client-service/ipc/aacsipc => aacs/android/common/constants/aacsconstants}/.gitignore (100%)
create mode 100644 aacs/android/common/constants/aacsconstants/build.gradle
rename {platforms/android/app-components/alexa-auto-contacts/aacscontacts => aacs/android/common/constants/aacsconstants}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-voice-interaction => aacs/android/common/constants/aacsconstants}/proguard-rules.pro (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/androidTest/java/com/amazon/aacsconstants/ExampleInstrumentedTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/AndroidManifest.xml (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/AACSConstants.java (87%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/AACSPropertyConstants.java (96%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/AASBConstants.java (89%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/Action.java (92%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/ContactsConstants.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/MediaConstants.java (86%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/NavigationConstants.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/NetworkConstants.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/PlaybackConstants.java (76%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/TelephonyConstants.java (91%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/TemplateRuntimeConstants.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/Topic.java (94%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/aacsconstants/src/test/java/com/amazon/aacsconstants/ExampleUnitTest.java (100%)
create mode 100644 aacs/android/common/constants/build.gradle
rename {platforms/android/app-components/alexa-auto-telephony => aacs/android/common/constants}/gradle.properties (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/constants/settings.gradle (100%)
rename {extensions/bluetooth/aacs/android => aacs/android/common/ipc}/.gitignore (100%)
create mode 100644 aacs/android/common/ipc/README.md
rename {platforms/android/app-components/alexa-auto-apps-common-util => aacs/android/common/ipc/aacsipc}/.gitignore (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/build.gradle (100%)
rename {platforms/android/modules/apl-render => aacs/android/common/ipc/aacsipc}/proguard-rules.pro (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/androidTest/java/com/amazon/aacsipc/ExampleInstrumentedTest.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/AndroidManifest.xml (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/AACSPinger.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/AACSReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/AACSSender.java (97%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/IPCConstants.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/SenderMap.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/main/java/com/amazon/aacsipc/TargetComponent.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/test/java/com/amazon/aacsipc/DummyService.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestAACSReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestAACSSender.java (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestUtils.java (100%)
create mode 100644 aacs/android/common/ipc/build.gradle
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/gradle.properties (100%)
rename {platforms/android/alexa-auto-client-service => aacs/android/common}/ipc/settings.gradle (100%)
create mode 100644 aacs/android/conanfile.py
create mode 100644 aacs/android/restrictedAssets/LICENSE_PMLA
create mode 100644 aacs/android/restrictedAssets/NOTICE
create mode 100644 aacs/android/restrictedAssets/drawable/alexa_bubble_small.png
create mode 100644 aacs/android/restrictedAssets/drawable/alexa_logo.png
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/.gitignore (100%)
create mode 100644 aacs/android/sample-app/README.md
create mode 100644 aacs/android/sample-app/alexa-auto-app/.gitignore
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/assets/AACSSampleAppArch.png (100%)
create mode 100644 aacs/android/sample-app/alexa-auto-app/assets/AACSSampleAppComponentDiagram.drawio
create mode 100644 aacs/android/sample-app/alexa-auto-app/assets/AACSSampleAppComponentDiagram.png
create mode 100644 aacs/android/sample-app/alexa-auto-app/build.gradle
rename {platforms/android/alexa-auto-client-service/android-service => aacs/android/sample-app/alexa-auto-app}/gradle.properties (100%)
rename {platforms/android/modules/maccandroid => aacs/android/sample-app/alexa-auto-app}/proguard-rules.pro (100%)
create mode 100644 aacs/android/sample-app/alexa-auto-app/src/main/AndroidManifest.xml
create mode 100644 aacs/android/sample-app/alexa-auto-app/src/main/assets/config/aacs_config.json
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/AutoApplication.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/Constants.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/DefaultAlexaAppRootComponent.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/audio/AudioIOService.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/audio/AudioIOServiceWorker.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/audio/AudioInputHandler.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/audio/AudioInputReader.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/audio/AudioServiceNotificationBuilder.java (91%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AACSModule.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AlexaAppModule.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AlexaAppScope.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AndroidAppModule.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AppComponent.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AudioIOComponent.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/AudioIOModule.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/dependencies/ServiceScope.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/java/com/amazon/alexa/auto/app/setup/AlexaSetupControllerImpl.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/res/values/strings.xml (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/main/res/xml/filepaths.xml (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/test/java/com/amazon/alexa/auto/app/audio/AudioIOServiceTest.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/test/java/com/amazon/alexa/auto/app/audio/AudioInputHandlerTest.java (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/alexa-auto-app/src/test/java/com/amazon/alexa/auto/app/audio/AudioInputReaderTest.java (100%)
create mode 100644 aacs/android/sample-app/build.gradle
create mode 100755 aacs/android/sample-app/gradle.properties
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/gradle/wrapper/gradle-wrapper.jar (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/gradle/wrapper/gradle-wrapper.properties (100%)
rename {samples/android-aacs-sample-app => aacs/android/sample-app}/gradlew (100%)
create mode 100644 aacs/android/sample-app/settings.gradle
create mode 100755 aacs/android/service/.gitignore
create mode 100644 aacs/android/service/README.md
create mode 100755 aacs/android/service/build.gradle
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/.gitignore (100%)
create mode 100644 aacs/android/service/core-service/build.gradle
create mode 100644 aacs/android/service/core-service/src/androidTest/assets/file-util-res/aacs_config.json
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/androidTest/assets/file-util-res/auto_sdk_config.json (94%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestAlexaAutoClientService.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestFileUtil.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestUtil.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/debug/AndroidManifest.xml (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/debug/java/com/amazon/alexaautoclientservice/AACSMessageLogger.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/debug/java/com/amazon/alexaautoclientservice/README.md (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/debug/java/com/amazon/alexaautoclientservice/constants/MessageLoggerConstants.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/debug/java/com/amazon/alexaautoclientservice/receiver/InstrumentationReceiver.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/AndroidManifest.xml
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/aidl/com/amazon/alexalve/ILVCClient.aidl (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/aidl/com/amazon/alexalve/ILVCService.aidl (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/09789157.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/3513523f.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/6d41d539.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/85cf5865.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/8cb5ee0f.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/b204d74a.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/ce5e74ef.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/de6d66f3.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/assets/certs/f387163d.0 (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/AACSPropertyContentProvider.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/AASBHandler.java (82%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/AlexaAutoClientService.java (90%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/ComponentRegistry.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/ConfigMessageReceivedCallback.java (89%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/LVCInteractionProvider.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/NotificationListener.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/constants/AudioSourceConstants.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/constants/ConfigFieldConstants.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/constants/LVCServiceConstants.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/AlexaClientMessageHandler.java (75%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/AuthStateObserver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/ConnectionStateObserver.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/DialogStateObserver.java
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioInput/AudioInputFocusManager.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/audioInput/AudioInputMessageHandler.java (98%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput/AudioOutputMessageHandler.java (92%)
rename {platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput}/mediaPlayer/AACSMediaPlayer.java (94%)
rename {platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput}/mediaPlayer/AudioFocusAttributes.java (94%)
rename {platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput}/mediaPlayer/EventReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput}/mediaPlayer/exo/ExoPlayerHandler.java (77%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput/mediaPlayer/exo/MediaSourceFactory.java
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput/mediaPlayer/exo/PlaylistParser.java
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput/mediaPlayer/raw/RawAudioOutputHandler.java
rename {extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules}/bluetooth/BluetoothProviderHandler.java (96%)
rename {extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules}/bluetooth/BluetoothServerSocketHandler.java (97%)
rename {extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/java/com/amazon/alexaautoclientservice => aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules}/bluetooth/BluetoothSocketHandler.java (96%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/customDomain/CustomDomainMessageDispatcher.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/externalMediaPlayer/IDiscoveredPlayerProvider.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/externalMediaPlayer/MACCPlayer.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/locationProvider/LocationProviderHandler.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/mediaManager/LocalMediaSourceHandler.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/mediaManager/LocalSessionHandler.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/mediaManager/MediaSource.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/modules/networkInfoProvider/NetworkInfoProviderHandler.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/modules/propertyManager/PropertyManagerHandler.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/receiver/LVCReceiver.java (97%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/receiver/PingReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/receiver/ServiceMetadataRequestReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/receiver/StartOnBootReceiver.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/receiver/SystemPropertyChangeReceiver.java
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/util/AACSStateObserver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/java/com/amazon/alexaautoclientservice/util/AASBUtil.java (100%)
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/util/FileUtil.java
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/util/MediaPlayerUtil.java
create mode 100644 aacs/android/service/core-service/src/main/java/com/amazon/alexaautoclientservice/util/PropertyUtil.java
rename {platforms/android/app-components/alexa-auto-telephony/aacstelephony => aacs/android/service/core-service}/src/main/res/drawable/alexa_notification_icon.png (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/main/res/values/strings.xml (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/release/java/com/amazon/alexaautoclientservice/AACSMessageLogger.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/release/java/com/amazon/alexaautoclientservice/receiver/InstrumentationReceiver.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/service => aacs/android/service/core-service}/src/test/java/com/amazon/alexaautoclientservice/unittest/TestAASBHandler.java (100%)
create mode 100755 aacs/android/service/gradle.properties
rename {samples/android => aacs/android/service}/gradle/wrapper/gradle-wrapper.jar (100%)
rename {samples/android => aacs/android/service}/gradle/wrapper/gradle-wrapper.properties (80%)
rename {samples/android => aacs/android/service}/gradlew (100%)
mode change 100644 => 100755
create mode 100644 aacs/android/service/modules/aacs-extra/build.gradle
rename {platforms/android/app-components/alexa-auto-device-usage => aacs/android/service/modules/aacs-extra}/consumer-rules.pro (100%)
rename {platforms/android/app-components/alexa-auto-carcontrol/aacscarcontrol => aacs/android/service/modules/aacs-extra}/proguard-rules.pro (100%)
rename {platforms/android/alexa-auto-client-service/android-service => aacs/android/service}/modules/aacs-extra/src/main/AndroidManifest.xml (100%)
rename {platforms/android/alexa-auto-client-service/android-service => aacs/android/service}/modules/aacs-extra/src/main/java/com/amazon/alexaautoclientservice/aacs_extra/AACSContext.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service => aacs/android/service}/modules/aacs-extra/src/main/java/com/amazon/alexaautoclientservice/aacs_extra/AACSModuleFactoryInterface.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service => aacs/android/service}/modules/aacs-extra/src/main/java/com/amazon/alexaautoclientservice/aacs_extra/EngineStatusListener.java (100%)
rename {platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra => aacs/android/service/modules/maccandroid}/.gitignore (100%)
create mode 100644 aacs/android/service/modules/maccandroid/build.gradle
rename {samples/android-aacs-sample-app/alexa-auto-app => aacs/android/service/modules/maccandroid}/proguard-rules.pro (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/AndroidManifest.xml (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/DiscoverAndReportMediaAppsHandler.java (99%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/Log.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MACCAndroidClient.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MACCAndroidClientCallback.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaApp.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaAppsConnectionListener.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaAppsDirectivesHandler.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaAppsRepository.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaAppsStateReporter.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/MediaControllerCallback.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/APIConstants.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/AdjustSeekDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/Directive.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/LoginDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/LogoutDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/PlayControlDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/PlayDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/Directive/SeekDirective.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/PackageMetadata.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/PlayBackStateFields.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/PlayerEvents.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/PlayerPlaybackInfo.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/SupportedOperations.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/errors/CapabilityAgentError.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/errors/MediaAppPlayerError.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/players/AuthorizedPlayer.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/players/DiscoveredPlayer.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/state/ExternalMediaPlayerState.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/state/MediaAppMetaData.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/state/MediaAppPlaybackState.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/main/java/com/amazon/maccandroid/model/state/MediaAppSessionState.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/DiscoverAndReportMediaAppsHandlerTest.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/ExampleUnitTest.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/MediaAppsDirectivesHandlerTest.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/MediaAppsRepositoryTest.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/MediaControllerCallbackTest.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/ShadowJobInfo.java (100%)
rename {platforms/android => aacs/android/service}/modules/maccandroid/src/test/java/com/amazon/maccandroid/ShadowUri.java (100%)
create mode 100755 aacs/android/service/settings.gradle
create mode 100644 assets/Migration-ApplicationArch.png
create mode 100644 assets/Migration-Hybrid.png
create mode 100644 assets/Migration-Steps.png
delete mode 100644 assets/aac_architecture.png
create mode 100644 assets/aac_linux_integration.png
create mode 100755 builder/build.py
delete mode 100755 builder/build.sh
delete mode 100755 builder/hosttools/pkg-config
delete mode 100644 builder/hosttools/qnx7-pkgconfig/aarch64le/libcrypto.pc
delete mode 100644 builder/hosttools/qnx7-pkgconfig/x86_64/libcrypto.pc
delete mode 100644 builder/meta-aac-builder/classes/aac-base.bbclass
delete mode 100644 builder/meta-aac-builder/classes/aac-image.bbclass
delete mode 100644 builder/meta-aac-builder/conf/conf-notes.txt
delete mode 100644 builder/meta-aac-builder/conf/distro/aac.conf
delete mode 100644 builder/meta-aac-builder/conf/distro/include/tclibc-android.inc
delete mode 100644 builder/meta-aac-builder/conf/distro/include/tclibc-qnx.inc
delete mode 100644 builder/meta-aac-builder/conf/distro/include/tcmode-external.inc
delete mode 100644 builder/meta-aac-builder/conf/layer.conf
delete mode 100644 builder/meta-aac-builder/conf/local.conf.sample
delete mode 100644 builder/meta-aac-builder/conf/machine/androidarm.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/androidarm64.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/androidx86-64.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/androidx86.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/include/android.inc
delete mode 100644 builder/meta-aac-builder/conf/machine/include/linaro.inc
delete mode 100644 builder/meta-aac-builder/conf/machine/include/poky.inc
delete mode 100644 builder/meta-aac-builder/conf/machine/include/qnx7.inc
delete mode 100644 builder/meta-aac-builder/conf/machine/linaroarm64.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/linaroarmel.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/linaroarmhf.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/native.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/pokyarm.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/pokyarm64.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/qnx7arm64.conf
delete mode 100644 builder/meta-aac-builder/conf/machine/qnx7x86-64.conf
delete mode 100644 builder/meta-aac-builder/recipes-connectivity/mbedtls/mbedtls_2.16.2.bb
delete mode 100644 builder/meta-aac-builder/recipes-connectivity/nghttp2/nghttp2_%.bbappend
delete mode 100644 builder/meta-aac-builder/recipes-connectivity/openssl/openssl_1.1.0%.bbappend
delete mode 100644 builder/meta-aac-builder/recipes-core/images/aac-sdk-build.bb
delete mode 100755 builder/meta-aac-builder/recipes-devtools/asio/asio_1.12.2.bb
delete mode 100644 builder/meta-aac-builder/recipes-devtools/cmake/cmake-native_3.8.2.bb
delete mode 100644 builder/meta-aac-builder/recipes-devtools/nlohmann/nlohmann_3.7.1.bb
delete mode 100644 builder/meta-aac-builder/recipes-devtools/protobuf/protobuf_%.bbappend
delete mode 100644 builder/meta-aac-builder/recipes-devtools/rapidjson/rapidjson_1.1.0.bb
delete mode 100755 builder/meta-aac-builder/recipes-devtools/websocketpp/websocketpp_0.8.1.bb
delete mode 100644 builder/meta-aac-builder/recipes-support/curl/curl_7.65.3.bb
delete mode 100644 builder/meta-aac-builder/recipes-support/sqlite/sqlite3_%.bbappend
delete mode 100644 builder/meta-aac-ubuntu/classes/hostnativepackage.bbclass
delete mode 100644 builder/meta-aac-ubuntu/classes/python3native.bbclass
delete mode 100644 builder/meta-aac-ubuntu/conf/layer.conf
delete mode 100644 builder/meta-aac-ubuntu/recipes-native/db/db-native.bb
delete mode 100644 builder/meta-aac-ubuntu/recipes-native/expat/expat-native.bb
delete mode 100644 builder/meta-aac-ubuntu/recipes-native/libarchive/libarchive-native.bb
delete mode 100644 builder/meta-aac-ubuntu/recipes-native/popt/popt-native.bb
delete mode 100644 builder/meta-aac-ubuntu/recipes-native/zlib/zlib-native.bb
delete mode 100644 builder/meta-aac/README.md
delete mode 100644 builder/meta-aac/classes/aac-module.bbclass
delete mode 100644 builder/meta-aac/classes/devlibsonly.bbclass
delete mode 100644 builder/meta-aac/classes/unittests.bbclass
delete mode 100644 builder/meta-aac/conf/layer.conf
delete mode 100644 builder/meta-aac/custom-licenses/ASL-1.0
delete mode 100644 builder/meta-aac/lib/aac/__init__.py
delete mode 100644 builder/meta-aac/recipes-apl/apl-core-library/apl-core-library_git.bb
delete mode 100644 builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk-1.22.0/0001-Auto-SDK-Changes-for-v1.22-AVS-SDK.patch
delete mode 100644 builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk.inc
delete mode 100644 builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.22.0.bb
delete mode 100644 builder/meta-aac/recipes-avs/smart-screen-sdk/smart-screen-sdk/0001-Smart-Screen-SDK-for-Alexa-Auto-SDK.patch
delete mode 100644 builder/meta-aac/recipes-avs/smart-screen-sdk/smart-screen-sdk/0002-Disable-SmartScreenCapabilityAgents-test.patch
delete mode 100644 builder/meta-aac/recipes-avs/smart-screen-sdk/smart-screen-sdk_git.bb
delete mode 100644 builder/meta-aac/recipes-connectivity/nghttp2/nghttp2_1.39.1.bb
delete mode 100644 builder/meta-aac/recipes-devtools/googletest/googletest_1.8.0.bb
delete mode 100644 builder/meta-aac/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch
delete mode 100644 builder/meta-aac/recipes-devtools/protobuf/protobuf/0001-protobuf-fix-configure-error.patch
delete mode 100644 builder/meta-aac/recipes-devtools/protobuf/protobuf_3.9.0.bb
delete mode 100644 builder/meta-aac/recipes-multimedia/libopus/libopus_1.3.1.bb
delete mode 100644 builder/meta-aac/recipes-support/curl/curl_%.bbappend
delete mode 100644 builder/meta-aac/recipes-wakeword/snowboy/snowboy_1.3.0.bb
create mode 100644 builder/pylib/build_cmd.py
create mode 100644 builder/pylib/clean_cmd.py
create mode 100644 builder/pylib/common.py
create mode 100644 builder/pylib/configure_cmd.py
create mode 100644 builder/pylib/imports_cmd.py
delete mode 100644 builder/scripts/Dockerfile
delete mode 100755 builder/scripts/agreement.sh
delete mode 100644 builder/scripts/common.sh
delete mode 100755 builder/scripts/gen-version.sh
delete mode 100755 builder/scripts/run-aacs-android.sh
delete mode 100755 builder/scripts/run-bitbake.sh
delete mode 100755 builder/scripts/run-builder.sh
delete mode 100755 builder/scripts/run-docker.sh
delete mode 100755 builder/scripts/run-gradle.sh
delete mode 100755 builder/scripts/setup-android-toolchain.sh
delete mode 100644 builder/scripts/version
create mode 100644 conan/config/profiles/aac-android
create mode 100644 conan/config/profiles/aac-linux
create mode 100644 conan/config/profiles/aac-macos
create mode 100644 conan/config/profiles/aac-mingw
create mode 100644 conan/config/profiles/aac-poky
create mode 100644 conan/config/profiles/aac-qnx
create mode 100644 conan/config/remotes.txt
create mode 100644 conan/docker/aac-ubuntu-bionic/Dockerfile
create mode 100644 conan/docker/aac-ubuntu-focal/Dockerfile
create mode 100644 conan/recipes/aac-sdk-tools/CMakeLists.txt
create mode 100644 conan/recipes/aac-sdk-tools/build.gradle
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/09789157.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/3513523f.0 (100%)
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/6d41d539.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/85cf5865.0 (100%)
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/8cb5ee0f.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/b204d74a.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/ce5e74ef.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/de6d66f3.0 (100%)
mode change 100644 => 100755
rename {samples/android/app/src/main/assets => conan/recipes/aac-sdk-tools}/certs/f387163d.0 (100%)
mode change 100644 => 100755
create mode 100644 conan/recipes/aac-sdk-tools/cmake/001-aac-base-module.cmake
create mode 100644 conan/recipes/aac-sdk-tools/conanfile.py
create mode 100644 conan/recipes/aac-sdk-tools/gradle/gradle.properties
create mode 100644 conan/recipes/aac-sdk-tools/pylib/a2ml_build.py
create mode 100644 conan/recipes/aac-sdk-tools/pylib/cmake_build.py
create mode 100644 conan/recipes/aac-sdk-tools/pylib/ddl_build.py
create mode 100644 conan/recipes/aac-sdk-tools/pylib/gradle_build.py
create mode 100644 conan/recipes/aac-sdk-tools/pylib/utils.py
create mode 100755 conan/recipes/android-sdk-tools/cmake-wrapper
create mode 100644 conan/recipes/android-sdk-tools/cmake-wrapper.cmd
create mode 100644 conan/recipes/android-sdk-tools/conanfile.py
create mode 100644 conan/recipes/apl-core/conanfile.py
create mode 100644 conan/recipes/avs-device-sdk/conanfile.py
create mode 100644 conan/recipes/avs-device-sdk/patches/0001-Alexa-Auto-SDK-Changes-for-v1.25.0-AVS-SDK.patch
create mode 100644 conan/recipes/cheetah/conanfile.py
create mode 100644 conan/recipes/cheetah/patches/fix_namemapper_warning.patch
create mode 100644 conan/recipes/faad2/conanfile.py
create mode 100644 conan/recipes/glib-networking/conanfile.py
create mode 100644 conan/recipes/glib/conandata.yml
create mode 100644 conan/recipes/glib/conanfile.py
create mode 100644 conan/recipes/gradle/conanfile.py
create mode 100644 conan/recipes/gst-plugins-bad/conandata.yml
create mode 100644 conan/recipes/gst-plugins-bad/conanfile.py
create mode 100644 conan/recipes/gst-plugins-bad/patches/0001-Remove-unnecessary-stuff.patch
create mode 100644 conan/recipes/gst-plugins-base/conandata.yml
create mode 100644 conan/recipes/gst-plugins-base/conanfile.py
create mode 100644 conan/recipes/gst-plugins-good/conandata.yml
create mode 100644 conan/recipes/gst-plugins-good/conanfile.py
create mode 100644 conan/recipes/gst-plugins-good/patches/0001-Resolve-gst-multifile-test-splitmuxpartreader-link-e.patch
create mode 100644 conan/recipes/gst-plugins-good/patches/0001-Set-DEFAULT_SSL_STRICT-to-FALSE-by-default.patch
create mode 100644 conan/recipes/gstreamer/conandata.yml
create mode 100644 conan/recipes/gstreamer/conanfile.py
create mode 100644 conan/recipes/libcurl/all/CMakeLists.txt
create mode 100644 conan/recipes/libcurl/all/conandata.yml
create mode 100644 conan/recipes/libcurl/all/conanfile.py
create mode 100644 conan/recipes/libcurl/all/lib_Makefile_add.am
create mode 100644 conan/recipes/libcurl/all/patches/001-Update-FindLibSSH2.cmake-add-libssh2-as-possible-nam.patch
create mode 100644 conan/recipes/libcurl/all/patches/002-add-missing-file-FindZstd.patch
create mode 100644 conan/recipes/libcurl/all/patches/003-Fix-linker-error-of-_getpid-for-QNX.patch
create mode 100644 conan/recipes/libcurl/config.yml
create mode 100644 conan/recipes/libnghttp2/all/CMakeLists.txt
create mode 100644 conan/recipes/libnghttp2/all/conandata.yml
create mode 100644 conan/recipes/libnghttp2/all/conanfile.py
create mode 100644 conan/recipes/libnghttp2/all/patches/fix-addNghttp2IncludesPathCMake.patch
create mode 100644 conan/recipes/libnghttp2/all/patches/fix-findJemalloc.cmake
create mode 100644 conan/recipes/libnghttp2/all/patches/fix-findLibevent.cmake
create mode 100644 conan/recipes/libnghttp2/all/patches/nghttp_static_include_directories.patch
create mode 100644 conan/recipes/libnghttp2/all/patches/nghttp_static_include_directories_1.42.0.patch
create mode 100644 conan/recipes/libnghttp2/config.yml
create mode 100644 conan/recipes/libsoup/conanfile.py
create mode 100644 conan/recipes/poky-sdk/conandata.yml
create mode 100644 conan/recipes/poky-sdk/conanfile.py
create mode 100644 conan/recipes/pyyaml/conanfile.py
create mode 100644 conan/recipes/qnx7-sdp/conanfile.py
create mode 100644 conan/recipes/qnx7-sdp/openssl/conanfile.py
create mode 100644 conan/recipes/qnx7-sdp/qnx7_toolchain_armv8.cmake
create mode 100644 conan/recipes/qnx7-sdp/qnx7_toolchain_x86_64.cmake
create mode 100644 conan/recipes/smart-screen-sdk/conanfile.py
create mode 100644 conan/recipes/smart-screen-sdk/patches/0001-Smart-Screen-SDK-for-Alexa-Auto-SDK.patch
create mode 100644 conan/recipes/smart-screen-sdk/patches/0002-Disable-SmartScreenCapabilityAgents-test.patch
rename {builder/meta-aac/recipes-avs/smart-screen-sdk/smart-screen-sdk => conan/recipes/smart-screen-sdk/patches}/0003-Disable-APLClient-dependency.patch (91%)
create mode 100644 conan/recipes/smart-screen-sdk/patches/0004-Disable-GUI.patch
create mode 100644 conan/recipes/smart-screen-sdk/patches/0005-Template-runtime-version-1.2.patch
create mode 100644 conan/recipes/smart-screen-sdk/patches/0006-Ignore-template-runtime-token.patch
create mode 100755 conan/setup.py
delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1addressbook_1_1config_1_1_address_book_configuration-members.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1addressbook_1_1config_1_1_address_book_configuration.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor-members.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1connectivity_1_1_alexa_connectivity-members.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1connectivity_1_1_alexa_connectivity.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1custom_domain_1_1_custom_domain-members.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1custom_domain_1_1_custom_domain.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller-members.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1text_to_speech_1_1_text_to_speech-members.html
create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1text_to_speech_1_1_text_to_speech.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test-members.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client-members.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info-members.html
delete mode 100644 docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor_1_1_invocation_reason-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor_1_1_invocation_reason.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor_1_1_media_playback_request_status-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_media_playback_requestor_1_1_media_playback_request_status.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_focus_action-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_focus_action.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1bluetooth_1_1_g_a_t_t_server_1_1_connection_state-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1bluetooth_1_1_g_a_t_t_server_1_1_connection_state.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1connectivity_1_1_alexa_connectivity_1_1_status_code-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1connectivity_1_1_alexa_connectivity_1_1_status_code.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1core_1_1_message_stream_1_1_mode-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1core_1_1_message_stream_1_1_mode.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1custom_domain_1_1_custom_domain_1_1_result_type-members.html
create mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1custom_domain_1_1_custom_domain_1_1_result_type.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error-members.html
delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error.html
create mode 100644 docs/android/search/classes_e.html
create mode 100644 docs/android/search/classes_e.js
create mode 100644 docs/android/search/functions_12.html
create mode 100644 docs/android/search/functions_12.js
create mode 100644 docs/cpp/_alexa_connectivity_8h_source.html
create mode 100644 docs/cpp/_alexa_connectivity_engine_interface_8h_source.html
create mode 100644 docs/cpp/_bluetooth_engine_interfaces_8h_source.html
create mode 100644 docs/cpp/_bluetooth_provider_8h_source.html
create mode 100644 docs/cpp/_bluetooth_server_socket_8h_source.html
create mode 100644 docs/cpp/_bluetooth_socket_8h_source.html
create mode 100644 docs/cpp/_byte_array_8h_source.html
create mode 100644 docs/cpp/_g_a_t_t_server_8h_source.html
create mode 100644 docs/cpp/_media_playback_requestor_8h_source.html
create mode 100644 docs/cpp/_message_broker_8h_source.html
create mode 100644 docs/cpp/_message_stream_8h_source.html
create mode 100644 docs/cpp/_text_to_speech_8h_source.html
create mode 100644 docs/cpp/_text_to_speech_engine_interface_8h_source.html
create mode 100644 docs/cpp/classaace_1_1address_book_1_1_address_book-members.html
create mode 100644 docs/cpp/classaace_1_1address_book_1_1_address_book.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_external_media_adapter-members.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_external_media_adapter.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_media_playback_requestor-members.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_media_playback_requestor.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_media_playback_requestor_engine_interface-members.html
create mode 100644 docs/cpp/classaace_1_1alexa_1_1_media_playback_requestor_engine_interface.html
create mode 100644 docs/cpp/classaace_1_1audio_1_1_audio_input_provider-members.html
create mode 100644 docs/cpp/classaace_1_1audio_1_1_audio_input_provider.html
create mode 100644 docs/cpp/classaace_1_1audio_1_1_audio_output_provider-members.html
create mode 100644 docs/cpp/classaace_1_1audio_1_1_audio_output_provider.html
create mode 100644 docs/cpp/classaace_1_1bluetooth_1_1_bluetooth_provider-members.html
create mode 100644 docs/cpp/classaace_1_1bluetooth_1_1_bluetooth_provider.html
create mode 100644 docs/cpp/classaace_1_1connectivity_1_1_alexa_connectivity-members.html
create mode 100644 docs/cpp/classaace_1_1connectivity_1_1_alexa_connectivity.html
create mode 100644 docs/cpp/classaace_1_1core_1_1_message_broker-members.html
create mode 100644 docs/cpp/classaace_1_1core_1_1_message_broker.html
create mode 100644 docs/cpp/classaace_1_1text_to_speech_1_1_text_to_speech-members.html
create mode 100644 docs/cpp/classaace_1_1text_to_speech_1_1_text_to_speech.html
create mode 100644 docs/cpp/search/classes_d.html
create mode 100644 docs/cpp/search/classes_d.js
create mode 100644 docs/cpp/search/functions_13.html
create mode 100644 docs/cpp/search/functions_13.js
create mode 100644 docs/cpp/search/typedefs_c.html
create mode 100644 docs/cpp/search/typedefs_c.js
create mode 100644 docs/sdk-docs/404.html
create mode 100644 docs/sdk-docs/BUILDING/index.html
create mode 100644 docs/sdk-docs/CHANGELOG/index.html
create mode 100644 docs/sdk-docs/CODE_OF_CONDUCT/index.html
create mode 100644 docs/sdk-docs/CONTRIBUTING/index.html
create mode 100644 docs/sdk-docs/GETSTARTED/index.html
create mode 100644 docs/sdk-docs/LINUX_INTEGRATION/index.html
create mode 100644 docs/sdk-docs/MIGRATION/index.html
create mode 100644 docs/sdk-docs/MIGRATION_TO_AASB_MESSAGEBROKER/index.html
create mode 100644 docs/sdk-docs/NEED_HELP/index.html
create mode 100644 docs/sdk-docs/SDK_MODULES/index.html
create mode 100644 docs/sdk-docs/SECURITY/index.html
create mode 100644 docs/sdk-docs/SEQUENCE_DIAGRAMS/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-apis/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-apl-renderer/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-apps-common-ui/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-apps-common-util/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-carcontrol/assets/set-fan-speed-to-3.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-carcontrol/assets/set-fan-speed-to-3.puml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-carcontrol/assets/set-reply-to-engine.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-carcontrol/assets/set-reply-to-engine.puml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-carcontrol/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-comms-ui/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-contacts/assets/contactsLib-add.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-contacts/assets/contactsLib-add.puml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-contacts/assets/contactsLib-remove.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-contacts/assets/contactsLib-remove.puml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-contacts/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-device-usage/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-lwa-auth/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-media-player/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-navigation/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-settings/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-setup/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-telephony/assets/AACSTelephony_initiateCall.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-telephony/assets/AACSTelephony_initiateCall.puml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-telephony/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-templateruntime-renderer/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-tts/assets/Android_TTS.png
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-tts/assets/Android_TTS.xml
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-tts/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-ux-restrictions/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-voice-interaction/index.html
create mode 100644 docs/sdk-docs/aacs/android/app-components/alexa-auto-voice-ui/index.html
create mode 100644 docs/sdk-docs/aacs/android/assets/AACSArchDetailed.png
create mode 100644 docs/sdk-docs/aacs/android/assets/AACSInit.puml
create mode 100644 docs/sdk-docs/aacs/android/assets/AACSInitFlow.png
create mode 100644 docs/sdk-docs/aacs/android/assets/AACSWakeword.png
create mode 100644 docs/sdk-docs/aacs/android/assets/AACSWakeword.puml
create mode 100644 docs/sdk-docs/aacs/android/assets/AACS_CBLLogin.png
create mode 100644 docs/sdk-docs/aacs/android/assets/AACS_CBLLogin.puml
create mode 100644 docs/sdk-docs/aacs/android/assets/APCP.png
create mode 100644 docs/sdk-docs/aacs/android/assets/config.json
create mode 100644 docs/sdk-docs/aacs/android/common/commonutils/index.html
create mode 100644 docs/sdk-docs/aacs/android/common/ipc/index.html
create mode 100644 docs/sdk-docs/aacs/android/index.html
create mode 100644 docs/sdk-docs/aacs/android/sample-app/alexa-auto-app/assets/AACSSampleAppArch.png
create mode 100644 docs/sdk-docs/aacs/android/sample-app/alexa-auto-app/assets/AACSSampleAppComponentDiagram.drawio
create mode 100644 docs/sdk-docs/aacs/android/sample-app/alexa-auto-app/assets/AACSSampleAppComponentDiagram.png
create mode 100644 docs/sdk-docs/aacs/android/sample-app/index.html
create mode 100644 docs/sdk-docs/aacs/android/service/core-service/src/debug/java/com/amazon/alexaautoclientservice/index.html
create mode 100644 docs/sdk-docs/aacs/android/service/index.html
create mode 100644 docs/sdk-docs/assets/Migration-ApplicationArch.png
create mode 100644 docs/sdk-docs/assets/Migration-Hybrid.png
create mode 100644 docs/sdk-docs/assets/Migration-Steps.png
create mode 100644 docs/sdk-docs/assets/aac-seq-ttt.plantuml
create mode 100644 docs/sdk-docs/assets/aac-seq-ttt.png
create mode 100644 docs/sdk-docs/assets/aac-seq-wwe.plantuml
create mode 100644 docs/sdk-docs/assets/aac-seq-wwe.png
create mode 100644 docs/sdk-docs/assets/aac_linux_integration.png
create mode 100644 docs/sdk-docs/assets/images/favicon.png
create mode 100644 docs/sdk-docs/assets/javascripts/bundle.a5f8ea78.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/bundle.a5f8ea78.min.js.map
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.ar.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.da.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.de.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.du.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.es.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.fi.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.fr.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.hi.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.hu.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.it.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.ja.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.jp.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.multi.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.nl.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.no.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.pt.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.ro.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.ru.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.sv.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.th.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.tr.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.vi.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/min/lunr.zh.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/tinyseg.js
create mode 100644 docs/sdk-docs/assets/javascripts/lunr/wordcut.js
create mode 100644 docs/sdk-docs/assets/javascripts/workers/search.cefbb252.min.js
create mode 100644 docs/sdk-docs/assets/javascripts/workers/search.cefbb252.min.js.map
create mode 100644 docs/sdk-docs/assets/number-1.png
create mode 100644 docs/sdk-docs/assets/number-2.png
create mode 100644 docs/sdk-docs/assets/number-3.png
create mode 100644 docs/sdk-docs/assets/number-4.png
create mode 100644 docs/sdk-docs/assets/number-5.png
create mode 100644 docs/sdk-docs/assets/number-6.png
create mode 100644 docs/sdk-docs/assets/stylesheets/main.a617204b.min.css
create mode 100644 docs/sdk-docs/assets/stylesheets/main.a617204b.min.css.map
create mode 100644 docs/sdk-docs/assets/stylesheets/palette.9204c3b2.min.css
create mode 100644 docs/sdk-docs/assets/stylesheets/palette.9204c3b2.min.css.map
create mode 100644 docs/sdk-docs/builder/index.html
create mode 100644 docs/sdk-docs/index.html
create mode 100644 docs/sdk-docs/logo.png
create mode 100644 docs/sdk-docs/modules/aasb/aasb-docs/AASB/index.html
create mode 100644 docs/sdk-docs/modules/address-book/aasb-docs/AddressBook/index.html
create mode 100644 docs/sdk-docs/modules/address-book/assets/remove_contacts.plantuml
create mode 100644 docs/sdk-docs/modules/address-book/assets/remove_contacts.png
create mode 100644 docs/sdk-docs/modules/address-book/assets/remove_navigation_fav.plantuml
create mode 100644 docs/sdk-docs/modules/address-book/assets/remove_navigation_fav.png
create mode 100644 docs/sdk-docs/modules/address-book/assets/upload_contacts.plantuml
create mode 100644 docs/sdk-docs/modules/address-book/assets/upload_contacts.png
create mode 100644 docs/sdk-docs/modules/address-book/assets/upload_navigation_fav.plantuml
create mode 100644 docs/sdk-docs/modules/address-book/assets/upload_navigation_fav.png
create mode 100644 docs/sdk-docs/modules/address-book/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/Alerts/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/AlexaClient/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/AlexaSpeaker/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/AudioPlayer/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/AuthProvider/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/DeviceSetup/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/DoNotDisturb/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/EqualizerController/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/ExternalMediaAdapter/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/GlobalPreset/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/LocalMediaSource/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/MediaPlaybackRequestor/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/Notifications/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/PlaybackController/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/SpeechRecognizer/index.html
create mode 100644 docs/sdk-docs/modules/alexa/aasb-docs/TemplateRuntime/index.html
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/AuthProvider_login.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/AuthProvider_logout.png (100%)
create mode 100644 docs/sdk-docs/modules/alexa/assets/DEFAULT_to_DEFAULT_Switching.png
create mode 100644 docs/sdk-docs/modules/alexa/assets/Starting_FM_By_Voice.png
create mode 100644 docs/sdk-docs/modules/alexa/assets/Switching_Default_With_GUI.png
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-cancel-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-cancel-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-logout-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-logout-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-start-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/alexa/assets/authprovider-start-sequence.png (100%)
create mode 100644 docs/sdk-docs/modules/alexa/assets/diagrams/out/complete-interaction-tap-to-talk-sequence.svg
create mode 100644 docs/sdk-docs/modules/alexa/assets/diagrams/src/complete-interaction-tap-to-talk-sequence.plantuml
create mode 100644 docs/sdk-docs/modules/alexa/index.html
create mode 100644 docs/sdk-docs/modules/apl/aasb-docs/APL/index.html
create mode 100644 docs/sdk-docs/modules/apl/assets/aac-apl-general-flow.png
create mode 100644 docs/sdk-docs/modules/apl/assets/aac-apl-platform-properties.plantuml
create mode 100644 docs/sdk-docs/modules/apl/assets/aac-apl-render-document.plantuml
create mode 100644 docs/sdk-docs/modules/apl/assets/aac-apl-set-platform-properties.png
create mode 100644 docs/sdk-docs/modules/apl/index.html
rename {extensions => docs/sdk-docs/modules}/bluetooth/assets/ble.plantuml (100%)
rename {extensions => docs/sdk-docs/modules}/bluetooth/assets/ble.png (100%)
rename {extensions => docs/sdk-docs/modules}/bluetooth/assets/bluetooth_classic.plantuml (100%)
rename {extensions => docs/sdk-docs/modules}/bluetooth/assets/bluetooth_classic.png (100%)
create mode 100644 docs/sdk-docs/modules/bluetooth/index.html
create mode 100644 docs/sdk-docs/modules/car-control/aasb-docs/CarControl/index.html
create mode 100644 docs/sdk-docs/modules/car-control/assets/CarControlConfig.json
create mode 100644 docs/sdk-docs/modules/car-control/assets/adjusting_mode_of_a_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/adjusting_mode_of_a_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/adjusting_value_of_a_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/adjusting_value_of_a_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/assets-1P.json
rename {platforms/android => docs/sdk-docs}/modules/car-control/assets/carcontrol_sequence_online.png (100%)
create mode 100644 docs/sdk-docs/modules/car-control/assets/setting_mode_of_a_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/setting_mode_of_a_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/setting_value_of_a_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/setting_value_of_a_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_off_endpoint.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_off_endpoint.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_off_toggle_state_of_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_off_toggle_state_of_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_on_endpoint.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_on_endpoint.png
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_on_toggle_state_of_setting.plantuml
create mode 100644 docs/sdk-docs/modules/car-control/assets/turning_on_toggle_state_of_setting.png
create mode 100644 docs/sdk-docs/modules/car-control/index.html
create mode 100644 docs/sdk-docs/modules/cbl/aasb-docs/CBL/index.html
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-cancel-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-cancel-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-logout-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-logout-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-refresh-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-refresh-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-start-sequence.plantuml (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl-start-sequence.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl_auth.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl_dereg_inactivity.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl_dereg_user_interaction.png (100%)
rename {platforms/android => docs/sdk-docs}/modules/cbl/assets/cbl_refresh.png (100%)
create mode 100644 docs/sdk-docs/modules/cbl/index.html
create mode 100644 docs/sdk-docs/modules/connectivity/aasb-docs/AlexaConnectivity/index.html
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-CloudAskReport.png
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-CloudAskReport.puml
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-DeviceDiscovery.png
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-DeviceDiscovery.puml
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-sendConnectivityEvent.png
create mode 100644 docs/sdk-docs/modules/connectivity/assets/Connectivity-Sequence-sendConnectivityEvent.puml
create mode 100644 docs/sdk-docs/modules/connectivity/index.html
create mode 100644 docs/sdk-docs/modules/core/AUDIO/index.html
create mode 100644 docs/sdk-docs/modules/core/AUTHORIZATION/index.html
create mode 100644 docs/sdk-docs/modules/core/RUNTIME_PROPERTIES/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/AudioInput/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/AudioOutput/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/Authorization/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/DeviceUsage/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/LocationProvider/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/NetworkInfoProvider/index.html
create mode 100644 docs/sdk-docs/modules/core/aasb-docs/PropertyManager/index.html
create mode 100644 docs/sdk-docs/modules/core/index.html
create mode 100644 docs/sdk-docs/modules/custom-domain/aasb-docs/CustomDomain/index.html
create mode 100644 docs/sdk-docs/modules/custom-domain/assets/custom_context.png
create mode 100644 docs/sdk-docs/modules/custom-domain/assets/custom_directives_events.png
create mode 100644 docs/sdk-docs/modules/custom-domain/index.html
rename {extensions/loopback-detector => docs/sdk-docs/modules/loopback-detector/assets}/loopback-detector-data-flow.png (100%)
create mode 100644 docs/sdk-docs/modules/loopback-detector/index.html
create mode 100644 docs/sdk-docs/modules/messaging/aasb-docs/Messaging/index.html
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-reading-messages.plantuml
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-reading-messages.png
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-reply-message.plantuml
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-reply-message.png
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-sending-messages.plantuml
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-sending-messages.png
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-connection.plantuml
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-connection.png
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-permissions.plantuml
create mode 100644 docs/sdk-docs/modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-permissions.png
create mode 100644 docs/sdk-docs/modules/messaging/index.html
create mode 100644 docs/sdk-docs/modules/navigation/aasb-docs/Navigation/index.html
create mode 100644 docs/sdk-docs/modules/navigation/assets/add_waypoint.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/add_waypoint.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/announce_maneuver.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/announce_maneuver.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/announce_road_regulation.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/announce_road_regulation.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/cancel_navigation.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/cancel_navigation.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/map_control.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/map_control.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/navigate_previous_waypoint.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/navigate_previous_waypoint.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/remove_waypoint.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/remove_waypoint.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/show_alternate_routes.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/show_alternate_routes.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/show_previous_waypoints.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/show_previous_waypoints.png
create mode 100644 docs/sdk-docs/modules/navigation/assets/start_navigation.plantuml
create mode 100644 docs/sdk-docs/modules/navigation/assets/start_navigation.png
create mode 100644 docs/sdk-docs/modules/navigation/index.html
create mode 100644 docs/sdk-docs/modules/phone-control/aasb-docs/PhoneCallController/index.html
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-connection-state-changed.plantuml
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-connection-state-changed.png
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-device-configuration-updated.plantuml
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-device-configuration-updated.png
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-inbound-call.plantuml
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-inbound-call.png
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-outbound-call.plantuml
create mode 100644 docs/sdk-docs/modules/phone-control/assets/aac-pcc-outbound-call.png
create mode 100644 docs/sdk-docs/modules/phone-control/index.html
create mode 100644 docs/sdk-docs/modules/system-audio/index.html
create mode 100644 docs/sdk-docs/modules/text-to-speech-provider/index.html
create mode 100644 docs/sdk-docs/modules/text-to-speech/aasb-docs/TextToSpeech/index.html
create mode 100644 docs/sdk-docs/modules/text-to-speech/assets/GetCapabilities.plantuml
create mode 100644 docs/sdk-docs/modules/text-to-speech/assets/GetCapabilities.png
create mode 100644 docs/sdk-docs/modules/text-to-speech/assets/PrepareSpeech.plantuml
create mode 100644 docs/sdk-docs/modules/text-to-speech/assets/PrepareSpeech.png
create mode 100644 docs/sdk-docs/modules/text-to-speech/index.html
create mode 100644 docs/sdk-docs/samples/cpp/index.html
create mode 100644 docs/sdk-docs/search/search_index.json
create mode 100644 docs/sdk-docs/sitemap.xml
create mode 100644 docs/sdk-docs/sitemap.xml.gz
create mode 100644 extensions/README.md
delete mode 100644 extensions/aasb/.gitignore
delete mode 100644 extensions/aasb/CMakeLists.txt
delete mode 100644 extensions/aasb/README.md
delete mode 100644 extensions/aasb/assets/AASBNewArch.png
delete mode 100644 extensions/aasb/assets/AASBOldArch.png
delete mode 100644 extensions/aasb/docs/AASB/StartServiceMessage.html
delete mode 100644 extensions/aasb/docs/AASB/StopServiceMessage.html
delete mode 100644 extensions/aasb/docs/APL/ClearAllExecuteCommandsMessage.html
delete mode 100644 extensions/aasb/docs/APL/ClearCardMessage.html
delete mode 100644 extensions/aasb/docs/APL/ClearDocumentMessage.html
delete mode 100644 extensions/aasb/docs/APL/DataSourceUpdateMessage.html
delete mode 100644 extensions/aasb/docs/APL/ExecuteCommandsMessage.html
delete mode 100644 extensions/aasb/docs/APL/ExecuteCommandsResultMessage.html
delete mode 100644 extensions/aasb/docs/APL/InterruptCommandSequenceMessage.html
delete mode 100644 extensions/aasb/docs/APL/ProcessActivityEventMessage.html
delete mode 100644 extensions/aasb/docs/APL/RenderDocumentMessage.html
delete mode 100644 extensions/aasb/docs/APL/RenderDocumentResultMessage.html
delete mode 100644 extensions/aasb/docs/APL/SendDataSourceFetchRequestEventMessage.html
delete mode 100644 extensions/aasb/docs/APL/SendDeviceWindowStateMessage.html
delete mode 100644 extensions/aasb/docs/APL/SendDocumentStateMessage.html
delete mode 100644 extensions/aasb/docs/APL/SendRuntimeErrorEventMessage.html
delete mode 100644 extensions/aasb/docs/APL/SendUserEventMessage.html
delete mode 100644 extensions/aasb/docs/APL/SetAPLMaxVersionMessage.html
delete mode 100644 extensions/aasb/docs/APL/SetDocumentIdleTimeoutMessage.html
delete mode 100644 extensions/aasb/docs/AddressBook/AddAddressBookMessage.html
delete mode 100644 extensions/aasb/docs/AddressBook/AddAddressBookMessageReply.html
delete mode 100644 extensions/aasb/docs/AddressBook/RemoveAddressBookMessage.html
delete mode 100644 extensions/aasb/docs/AddressBook/RemoveAddressBookMessageReply.html
delete mode 100644 extensions/aasb/docs/Alerts/AlertCreatedMessage.html
delete mode 100644 extensions/aasb/docs/Alerts/AlertDeletedMessage.html
delete mode 100644 extensions/aasb/docs/Alerts/AlertStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/Alerts/LocalStopMessage.html
delete mode 100644 extensions/aasb/docs/Alerts/RemoveAllAlertsMessage.html
delete mode 100644 extensions/aasb/docs/AlexaClient/AuthStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/AlexaClient/ConnectionStatusChangedMessage.html
delete mode 100644 extensions/aasb/docs/AlexaClient/DialogStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/AlexaClient/StopForegroundActivityMessage.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/ConnectivityStateChangeMessage.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/ConnectivityStateChangeMessageReply.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/GetConnectivityStateMessage.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/GetConnectivityStateMessageReply.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/GetIdentifierMessage.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/GetIdentifierMessageReply.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/SendConnectivityEventMessage.html
delete mode 100644 extensions/aasb/docs/AlexaConnectivity/SendConnectivityEventMessageReply.html
delete mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalAdjustVolumeMessage.html
delete mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalSetMuteMessage.html
delete mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalSetVolumeMessage.html
delete mode 100644 extensions/aasb/docs/AlexaSpeaker/SpeakerSettingsChangedMessage.html
delete mode 100644 extensions/aasb/docs/AudioInput/StartAudioInputMessage.html
delete mode 100644 extensions/aasb/docs/AudioInput/StopAudioInputMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetDurationMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetDurationMessageReply.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessageReply.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetPositionMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/GetPositionMessageReply.html
delete mode 100644 extensions/aasb/docs/AudioOutput/MediaErrorMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/MediaStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/MutedStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/PauseMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/PlayMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/PrepareStreamMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/PrepareURLMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/ResumeMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/SetPositionMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/StopMessage.html
delete mode 100644 extensions/aasb/docs/AudioOutput/VolumeChangedMessage.html
delete mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessage.html
delete mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessageReply.html
delete mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessage.html
delete mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessageReply.html
delete mode 100644 extensions/aasb/docs/AudioPlayer/PlayerActivityChangedMessage.html
delete mode 100644 extensions/aasb/docs/AuthProvider/AuthStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/AuthProvider/GetAuthStateMessage.html
delete mode 100644 extensions/aasb/docs/AuthProvider/GetAuthStateMessageReply.html
delete mode 100644 extensions/aasb/docs/AuthProvider/GetAuthTokenMessage.html
delete mode 100644 extensions/aasb/docs/AuthProvider/GetAuthTokenMessageReply.html
delete mode 100644 extensions/aasb/docs/Authorization/AuthorizationErrorMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/AuthorizationStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/CancelAuthorizationMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/EventReceivedMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/GetAuthorizationDataMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/GetAuthorizationDataMessageReply.html
delete mode 100644 extensions/aasb/docs/Authorization/LogoutMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/SendEventMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/SetAuthorizationDataMessage.html
delete mode 100644 extensions/aasb/docs/Authorization/StartAuthorizationMessage.html
delete mode 100644 extensions/aasb/docs/CBL/CBLStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/CBL/CancelMessage.html
delete mode 100644 extensions/aasb/docs/CBL/ClearRefreshTokenMessage.html
delete mode 100644 extensions/aasb/docs/CBL/GetRefreshTokenMessage.html
delete mode 100644 extensions/aasb/docs/CBL/GetRefreshTokenMessageReply.html
delete mode 100644 extensions/aasb/docs/CBL/ResetMessage.html
delete mode 100644 extensions/aasb/docs/CBL/SetRefreshTokenMessage.html
delete mode 100644 extensions/aasb/docs/CBL/SetUserProfileMessage.html
delete mode 100644 extensions/aasb/docs/CBL/StartMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/AdjustControllerValueMessageReply.html
delete mode 100644 extensions/aasb/docs/CarControl/AdjustModeControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/SetControllerValueMessageReply.html
delete mode 100644 extensions/aasb/docs/CarControl/SetModeControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/SetPowerControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/SetRangeControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/CarControl/SetToggleControllerValueMessage.html
delete mode 100644 extensions/aasb/docs/DeviceSetup/SetupCompletedMessage.html
delete mode 100644 extensions/aasb/docs/DeviceSetup/SetupCompletedResponseMessage.html
delete mode 100644 extensions/aasb/docs/DeviceUsage/ReportNetworkDataUsageMessage.html
delete mode 100644 extensions/aasb/docs/DoNotDisturb/DoNotDisturbChangedMessage.html
delete mode 100644 extensions/aasb/docs/DoNotDisturb/SetDoNotDisturbMessage.html
delete mode 100644 extensions/aasb/docs/EqualizerController/GetBandLevelsMessage.html
delete mode 100644 extensions/aasb/docs/EqualizerController/GetBandLevelsMessageReply.html
delete mode 100644 extensions/aasb/docs/EqualizerController/LocalAdjustBandLevelsMessage.html
delete mode 100644 extensions/aasb/docs/EqualizerController/LocalResetBandsMessage.html
delete mode 100644 extensions/aasb/docs/EqualizerController/LocalSetBandLevelsMessage.html
delete mode 100644 extensions/aasb/docs/EqualizerController/SetBandLevelsMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/AdjustSeekMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/AuthorizeMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/GetStateMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LoginCompleteMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LoginMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LogoutCompleteMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LogoutMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/MutedStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayControlMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayerErrorMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayerEventMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/RequestTokenMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/SeekMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/SetFocusMessage.html
delete mode 100644 extensions/aasb/docs/ExternalMediaAdapter/VolumeChangedMessage.html
delete mode 100644 extensions/aasb/docs/GlobalPreset/SetGlobalPresetMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/AdjustSeekMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/GetStateMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/GetStateMessageReply.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/MutedStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/PlayControlMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/PlayMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/PlayerErrorMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/PlayerEventMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/SeekMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/SetFocusMessage.html
delete mode 100644 extensions/aasb/docs/LocalMediaSource/VolumeChangedMessage.html
delete mode 100644 extensions/aasb/docs/LocationProvider/GetCountryMessage.html
delete mode 100644 extensions/aasb/docs/LocationProvider/GetCountryMessageReply.html
delete mode 100644 extensions/aasb/docs/LocationProvider/GetLocationMessage.html
delete mode 100644 extensions/aasb/docs/LocationProvider/GetLocationMessageReply.html
delete mode 100644 extensions/aasb/docs/LocationProvider/LocationServiceAccessChangedMessage.html
delete mode 100644 extensions/aasb/docs/MainMenu.html
delete mode 100644 extensions/aasb/docs/Messaging/ConversationsReportMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/SendMessageFailedMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/SendMessageMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/SendMessageSucceededMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusFailedMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusSucceededMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/UpdateMessagingEndpointStateMessage.html
delete mode 100644 extensions/aasb/docs/Messaging/UploadConversationsMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/AnnounceManeuverMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/AnnounceRoadRegulationMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/CancelNavigationMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/ControlDisplayMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/GetNavigationStateMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/GetNavigationStateMessageReply.html
delete mode 100644 extensions/aasb/docs/Navigation/NavigateToPreviousWaypointMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/NavigationErrorMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/NavigationEventMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/ShowAlternativeRoutesMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/ShowAlternativeRoutesSucceededMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/ShowPreviousWaypointsMessage.html
delete mode 100644 extensions/aasb/docs/Navigation/StartNavigationMessage.html
delete mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessage.html
delete mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessageReply.html
delete mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessage.html
delete mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.html
delete mode 100644 extensions/aasb/docs/NetworkInfoProvider/NetworkStatusChangedMessage.html
delete mode 100644 extensions/aasb/docs/Notifications/OnNotificationReceivedMessage.html
delete mode 100644 extensions/aasb/docs/Notifications/SetIndicatorMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/AnswerMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/CallFailedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/CallStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/CallerIdReceivedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/ConnectionStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/CreateCallIdMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/CreateCallIdMessageReply.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/DeviceConfigurationUpdatedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/DialMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/RedialMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFFailedMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFSucceededMessage.html
delete mode 100644 extensions/aasb/docs/PhoneCallController/StopMessage.html
delete mode 100644 extensions/aasb/docs/PlaybackController/ButtonPressedMessage.html
delete mode 100644 extensions/aasb/docs/PlaybackController/TogglePressedMessage.html
delete mode 100644 extensions/aasb/docs/PropertyManager/GetPropertyMessage.html
delete mode 100644 extensions/aasb/docs/PropertyManager/GetPropertyMessageReply.html
delete mode 100644 extensions/aasb/docs/PropertyManager/PropertyChangedMessage.html
delete mode 100644 extensions/aasb/docs/PropertyManager/PropertyStateChangedMessage.html
delete mode 100644 extensions/aasb/docs/PropertyManager/SetPropertyMessage.html
delete mode 100644 extensions/aasb/docs/Publish Message General Form.html
delete mode 100644 extensions/aasb/docs/Reply Message General Form.html
delete mode 100644 extensions/aasb/docs/SpeechRecognizer/EndOfSpeechDetectedMessage.html
delete mode 100644 extensions/aasb/docs/SpeechRecognizer/StartCaptureMessage.html
delete mode 100644 extensions/aasb/docs/SpeechRecognizer/StopCaptureMessage.html
delete mode 100644 extensions/aasb/docs/SpeechRecognizer/WakewordDetectedMessage.html
delete mode 100644 extensions/aasb/docs/TemplateRuntime/ClearPlayerInfoMessage.html
delete mode 100644 extensions/aasb/docs/TemplateRuntime/ClearTemplateMessage.html
delete mode 100644 extensions/aasb/docs/TemplateRuntime/DisplayCardClearedMessage.html
delete mode 100644 extensions/aasb/docs/TemplateRuntime/RenderPlayerInfoMessage.html
delete mode 100644 extensions/aasb/docs/TemplateRuntime/RenderTemplateMessage.html
delete mode 100644 extensions/aasb/docs/TextToSpeech/GetCapabilitiesMessage.html
delete mode 100644 extensions/aasb/docs/TextToSpeech/GetCapabilitiesMessageReply.html
delete mode 100644 extensions/aasb/docs/TextToSpeech/PrepareSpeechCompletedMessage.html
delete mode 100644 extensions/aasb/docs/TextToSpeech/PrepareSpeechFailedMessage.html
delete mode 100644 extensions/aasb/docs/TextToSpeech/PrepareSpeechMessage.html
delete mode 100644 extensions/aasb/meta-aac-aasb/conf/layer.conf
delete mode 100644 extensions/aasb/modules/aasb-address-book/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-address-book/aac-aasb-address-book.bb
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBook.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/ContactName.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/NavigationName.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PhoneData.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h
delete mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-alexa/aac-aasb-alexa.bb
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthError.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/StopForegroundActivityMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DeviceSetup/SetupCompletedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DeviceSetup/SetupCompletedResponseMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DeviceSetup/StatusCode.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/Source.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/IndicatorState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/FocusState.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h
delete mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-apl/aac-aasb-apl.bb
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ActivityEvent.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearCardMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearDocumentMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/DataSourceUpdateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendDataSourceFetchRequestEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendDeviceWindowStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendDocumentStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendRuntimeErrorEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendUserEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h
delete mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-car-control/aac-aasb-car-control.bb
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-cbl/aac-aasb-cbl.bb
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBLEngineService.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLState.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CancelMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ResetMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h
delete mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/StartMessage.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-connectivity/aac-aasb-connectivity.bb
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/ConnectivityStateChangeMessage.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/ConnectivityStateChangeMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/GetConnectivityStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/GetConnectivityStateMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/GetIdentifierMessage.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/GetIdentifierMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/SendConnectivityEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/SendConnectivityEventMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-connectivity/engine/include/AASB/Message/Connectivity/AlexaConnectivity/StatusCode.h
delete mode 100644 extensions/aasb/modules/aasb-core/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-core/aac-aasb-core.bb
delete mode 100644 extensions/aasb/modules/aasb-core/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInput.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInputProvider.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutput.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutputProvider.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamProperty.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaError.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaState.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedState.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PauseMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PlayMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/StopMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/AuthorizationErrorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/AuthorizationState.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/AuthorizationStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/CancelAuthorizationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/EventReceivedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/GetAuthorizationDataMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/GetAuthorizationDataMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/LogoutMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/SendEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/SetAuthorizationDataMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Authorization/Authorization/StartAuthorizationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/DeviceUsage/DeviceUsage/ReportNetworkDataUsageMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/Location.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/LocationServiceAccess.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/LocationServiceAccessChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-messaging/aac-aasb-messaging.bb
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConnectionState.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ErrorCode.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/PermissionState.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-navigation/aac-aasb-navigation.bb
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplay.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorCode.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorType.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/EventName.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/RoadRegulation.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h
delete mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-phone-control/aac-aasb-phone-control.bb
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h
delete mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/aac-aasb-text-to-speech.bb
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Engine/TextToSpeech/AASBTextToSpeech.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Message/TextToSpeech/TextToSpeech/GetCapabilitiesMessage.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Message/TextToSpeech/TextToSpeech/GetCapabilitiesMessageReply.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Message/TextToSpeech/TextToSpeech/PrepareSpeechCompletedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Message/TextToSpeech/TextToSpeech/PrepareSpeechFailedMessage.h
delete mode 100644 extensions/aasb/modules/aasb-text-to-speech/engine/include/AASB/Message/TextToSpeech/TextToSpeech/PrepareSpeechMessage.h
delete mode 100644 extensions/aasb/modules/aasb/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb/aac-module-aasb.bb
delete mode 100644 extensions/aasb/modules/aasb/engine/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBHandlerEngineService.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBServiceInterface.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBroker.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManager.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManagerInterface.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StartServiceMessage.h
delete mode 100644 extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StopServiceMessage.h
delete mode 100644 extensions/aasb/modules/aasb/engine/src/AASBEngineService.cpp
delete mode 100644 extensions/aasb/modules/aasb/engine/src/AASBHandlerEngineService.cpp
delete mode 100644 extensions/aasb/modules/aasb/engine/src/AASBServiceInterface.cpp
delete mode 100644 extensions/aasb/modules/aasb/engine/src/MessageBroker.cpp
delete mode 100644 extensions/aasb/modules/aasb/engine/src/StreamManager.cpp
delete mode 100644 extensions/aasb/modules/aasb/platform/CMakeLists.txt
delete mode 100644 extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBStream.h
delete mode 100644 extensions/aasb/modules/aasb/platform/src/AASBStream.cpp
delete mode 100644 extensions/aasb/platforms/android/.gitignore
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/src/main/assets/meta-aac/aasb-address-book.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/assets/meta-aac/aasb-alexa.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/assets/meta-aac/aasb-apl.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/assets/meta-aac/aasb-car-control.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/assets/meta-aac/aasb-cbl.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-connectivity/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-connectivity/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-connectivity/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-connectivity/src/main/assets/meta-aac/aasb-connectivity.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-connectivity/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-core/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-core/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/assets/meta-aac/aasb-core.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/assets/meta-aac/aasb-messaging.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/assets/meta-aac/aasb-navigation.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/assets/meta-aac/aasb-phone-control.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-text-to-speech/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-text-to-speech/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-text-to-speech/src/main/AndroidManifest.xml
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-text-to-speech/src/main/assets/meta-aac/aasb-text-to-speech.json
delete mode 100644 extensions/aasb/platforms/android/modules/aasb-text-to-speech/src/main/cpp/dummy.cpp
delete mode 100644 extensions/aasb/platforms/android/modules/aasb/CMakeLists.txt
delete mode 100644 extensions/aasb/platforms/android/modules/aasb/build.gradle
delete mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/assets/meta-aac/aace-aasb.json
delete mode 100644 extensions/bluetooth/.gitignore
delete mode 100644 extensions/bluetooth/CMakeLists.txt
delete mode 100644 extensions/bluetooth/aacs/android/build.gradle
delete mode 100644 extensions/bluetooth/aacs/android/modules/aacs-bluetooth/.gitignore
delete mode 100644 extensions/bluetooth/aacs/android/modules/aacs-bluetooth/build.gradle
delete mode 100644 extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/AndroidManifest.xml
delete mode 100644 extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/assets/alexaautoclientservice/aacs-bluetooth.json
delete mode 100644 extensions/bluetooth/aacs/android/modules/aacs-bluetooth/src/main/java/com/amazon/alexaautoclientservice/bluetooth/BluetoothModuleFactory.java
delete mode 100644 extensions/bluetooth/aacs/android/settings.gradle
delete mode 100644 extensions/bluetooth/modules/bluetooth/CMakeLists.txt
delete mode 100644 extensions/bluetooth/modules/bluetooth/aac-module-bluetooth.bb
delete mode 100644 extensions/bluetooth/modules/bluetooth/engine/CMakeLists.txt
delete mode 100644 extensions/bluetooth/modules/bluetooth/platform/CMakeLists.txt
delete mode 100644 extensions/bluetooth/platforms/android/.gitignore
delete mode 100644 extensions/bluetooth/platforms/android/modules/bluetooth/CMakeLists.txt
delete mode 100644 extensions/bluetooth/platforms/android/modules/bluetooth/build.gradle
delete mode 100644 extensions/bluetooth/platforms/android/modules/bluetooth/src/main/assets/meta-aac/aace-bluetooth.json
delete mode 100644 extensions/bluetooth/samples/android/build.gradle
delete mode 100644 extensions/loopback-detector/README.md
delete mode 100644 extensions/loopback-detector/extra.conf
delete mode 100644 extensions/loopback-detector/modules/loopback-detector/CMakeLists.txt
delete mode 100644 extensions/loopback-detector/modules/loopback-detector/aac-module-loopback-detector.bb
delete mode 100644 extensions/loopback-detector/platforms/android/.gitignore
delete mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/CMakeLists.txt
delete mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/build.gradle
delete mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/assets/meta-aac/aace-loopback-detector.json
delete mode 100644 extensions/system-audio/README.md
delete mode 100644 extensions/system-audio/extra.conf
delete mode 100644 extensions/system-audio/modules/system-audio/CMakeLists.txt
delete mode 100644 extensions/system-audio/modules/system-audio/aac-module-system-audio.bb
delete mode 100644 extensions/system-audio/modules/system-audio/engine/CMakeLists.txt
delete mode 100644 extensions/system-audio/modules/system-audio/engine/src/SystemAudioEngine.cpp
delete mode 100644 extensions/system-audio/modules/system-audio/engine/test/AudioInputImplTest.cpp
delete mode 100644 extensions/system-audio/modules/system-audio/engine/test/AudioOutputImplTest.cpp
delete mode 100644 extensions/system-audio/modules/system-audio/engine/test/CMakeLists.txt
delete mode 100644 extensions/system-audio/modules/system-audio/engine/test/ThrottleTest.cpp
delete mode 100644 extensions/system-audio/modules/system-audio/lib/aal/CMakeLists.txt
delete mode 100644 extensions/system-audio/modules/system-audio/lib/aal/src/gstreamer/core.c
delete mode 100644 extensions/system-audio/modules/system-audio/lib/aal/src/qsa/core.c
create mode 100644 modules/aasb/aasb/messages/aasb.yml
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/aasb/android/src/main/assets/meta-aac/aace-aasb.json
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/cpp/include/AACE/JNI/AASB/AASBBinder.h (100%)
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/cpp/include/AACE/JNI/AASB/AASBStreamBinder.h (100%)
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/cpp/src/AASBBinder.cpp (100%)
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/cpp/src/AASBStreamBinder.cpp (100%)
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/java/com/amazon/aace/aasb/AASB.java (100%)
rename {extensions/aasb/platforms/android/modules/aasb => modules/aasb/android}/src/main/java/com/amazon/aace/aasb/AASBStream.java (100%)
create mode 100644 modules/aasb/conanfile.py
create mode 100644 modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h
create mode 100644 modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h
rename {extensions/aasb/modules => modules}/aasb/engine/src/AASBEngineImpl.cpp (85%)
create mode 100644 modules/aasb/engine/src/AASBEngineService.cpp
rename {extensions/aasb/modules => modules}/aasb/platform/include/AACE/AASB/AASB.h (100%)
rename {extensions/aasb/modules => modules}/aasb/platform/include/AACE/AASB/AASBEngineInterfaces.h (100%)
create mode 100644 modules/aasb/platform/include/AACE/AASB/AASBStream.h
rename {extensions/aasb/modules => modules}/aasb/platform/src/AASB.cpp (100%)
delete mode 100644 modules/address-book/.gitignore
delete mode 100644 modules/address-book/CMakeLists.txt
delete mode 100644 modules/address-book/aac-module-address-book.bb
rename {extensions/aasb/modules/aasb-address-book/engine => modules/address-book/aasb}/include/AASB/Engine/AddressBook/AASBAddressBook.h (82%)
rename {extensions/aasb/modules/aasb-address-book/engine => modules/address-book/aasb}/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h (80%)
create mode 100644 modules/address-book/aasb/messages/AddressBook.yml
rename {extensions/aasb/modules/aasb-address-book/engine => modules/address-book/aasb}/src/AASBAddressBook.cpp (95%)
rename {extensions/aasb/modules/aasb-address-book/engine => modules/address-book/aasb}/src/AASBAddressBookEngineService.cpp (85%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/address-book/android/src/main/assets/meta-aac/aace-addressbook.json
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/cpp/include/AACE/JNI/AddressBook/AddressBookBinder.h (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/cpp/include/AACE/JNI/AddressBook/IAddressBookEntriesFactoryBinder.h (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/cpp/src/AddressBook/AddressBookBinder.cpp (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/cpp/src/AddressBook/AddressBookConfigurationBinder.cpp (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/cpp/src/AddressBook/IAddressBookEntriesFactoryBinder.cpp (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/java/com/amazon/aace/addressbook/AddressBook.java (92%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/java/com/amazon/aace/addressbook/IAddressBookEntriesFactory.java (100%)
rename {platforms/android/modules/addressbook => modules/address-book/android}/src/main/java/com/amazon/aace/addressbook/config/AddressBookConfiguration.java (100%)
create mode 100644 modules/address-book/conanfile.py
delete mode 100644 modules/address-book/engine/CMakeLists.txt
delete mode 100644 modules/address-book/engine/test/CMakeLists.txt
delete mode 100644 modules/address-book/platform/CMakeLists.txt
rename modules/address-book/{engine/test => testing/unit/tests}/AddressBookCloudUploaderTest.cpp (99%)
delete mode 100644 modules/alexa/.gitignore
delete mode 100644 modules/alexa/CMakeLists.txt
delete mode 100644 modules/alexa/aac-module-alexa.bb
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAlerts.h (79%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAlexaClient.h (79%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAlexaEngineService.h (79%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAudioPlayer.h (77%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBAuthProvider.h (79%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBDeviceSetup.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBDoNotDisturb.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBEqualizerController.h (80%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h (86%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBGlobalPreset.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBLocalMediaSource.h (83%)
create mode 100644 modules/alexa/aasb/include/AASB/Engine/Alexa/AASBMediaPlaybackRequestor.h
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBNotifications.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBPlaybackController.h (81%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h (78%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h (94%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Engine/Alexa/AASBTemplateRuntime.h (80%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h (100%)
create mode 100644 modules/alexa/aasb/messages/Alerts.yml
create mode 100644 modules/alexa/aasb/messages/AlexaClient.yml
create mode 100644 modules/alexa/aasb/messages/AlexaSpeaker.yml
create mode 100644 modules/alexa/aasb/messages/AudioPlayer.yml
create mode 100644 modules/alexa/aasb/messages/AuthProvider.yml
create mode 100644 modules/alexa/aasb/messages/DeviceSetup.yml
create mode 100644 modules/alexa/aasb/messages/DoNotDisturb.yml
create mode 100644 modules/alexa/aasb/messages/EqualizerController.yml
create mode 100644 modules/alexa/aasb/messages/ExternalMediaAdapter.yml
create mode 100644 modules/alexa/aasb/messages/GlobalPreset.yml
create mode 100644 modules/alexa/aasb/messages/LocalMediaSource.yml
create mode 100644 modules/alexa/aasb/messages/MediaPlaybackRequestor.yml
create mode 100644 modules/alexa/aasb/messages/Notifications.yml
create mode 100644 modules/alexa/aasb/messages/PlaybackController.yml
create mode 100644 modules/alexa/aasb/messages/SpeechRecognizer.yml
create mode 100644 modules/alexa/aasb/messages/TemplateRuntime.yml
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAlerts.cpp (94%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAlexaClient.cpp (90%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAlexaEngineService.cpp (91%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAlexaSpeaker.cpp (95%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAudioPlayer.cpp (86%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBAuthProvider.cpp (93%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBDeviceSetup.cpp (91%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBDoNotDisturb.cpp (93%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBEqualizerController.cpp (95%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBExternalMediaAdapter.cpp (95%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBGlobalPreset.cpp (92%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBLocalMediaSource.cpp (97%)
create mode 100644 modules/alexa/aasb/src/AASBMediaPlaybackRequestor.cpp
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBNotifications.cpp (93%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBPlaybackController.cpp (94%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBSpeechRecognizer.cpp (96%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBSpeechSynthesizer.cpp (100%)
rename {extensions/aasb/modules/aasb-alexa/engine => modules/alexa/aasb}/src/AASBTemplateRuntime.cpp (93%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/alexa/android/src/main/assets/meta-aac/aace-alexa.json
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AlertsBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AlexaClientBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AlexaConfigurationBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AlexaSpeakerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AudioPlayerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/AuthProviderBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/DeviceSetupBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/DoNotDisturbBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/EqualizerControllerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/ExternalMediaAdapterBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/GlobalPresetBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/LocalMediaSourceBinder.h (100%)
create mode 100644 modules/alexa/android/src/main/cpp/include/AACE/JNI/Alexa/MediaPlaybackRequestorBinder.h
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/NotificationsBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/PlaybackControllerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/SpeechRecognizerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/SpeechSynthesizerBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/include/AACE/JNI/Alexa/TemplateRuntimeBinder.h (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AlertsBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AlexaClientBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AlexaConfigurationBinder.cpp (94%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AlexaSpeakerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AudioPlayerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/AuthProviderBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/DeviceSetupBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/DoNotDisturbBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/EqualizerControllerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/ExternalMediaAdapterBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/GlobalPresetBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/LocalMediaSourceBinder.cpp (100%)
create mode 100644 modules/alexa/android/src/main/cpp/src/Alexa/MediaPlaybackRequestorBinder.cpp
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/NotificationsBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/PlaybackControllerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/SpeechRecognizerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/SpeechSynthesizerBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/cpp/src/Alexa/TemplateRuntimeBinder.cpp (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/Alerts.java (94%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/AlexaClient.java (97%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/AlexaProperties.java (100%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/AlexaSpeaker.java (94%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/AudioPlayer.java (92%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/AuthProvider.java (95%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/DeviceSetup.java (93%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/DoNotDisturb.java (86%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/EqualizerController.java (95%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/ExternalMediaAdapter.java (98%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/GlobalPreset.java (85%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/LocalMediaSource.java (98%)
create mode 100644 modules/alexa/android/src/main/java/com/amazon/aace/alexa/MediaPlaybackRequestor.java
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/Notifications.java (89%)
create mode 100644 modules/alexa/android/src/main/java/com/amazon/aace/alexa/PlaybackController.java
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/SpeechRecognizer.java (95%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/SpeechSynthesizer.java (79%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/TemplateRuntime.java (95%)
rename {platforms/android/modules/alexa => modules/alexa/android}/src/main/java/com/amazon/aace/alexa/config/AlexaConfiguration.java (88%)
create mode 100644 modules/alexa/assets/diagrams/out/complete-interaction-tap-to-talk-sequence.svg
create mode 100644 modules/alexa/assets/diagrams/src/complete-interaction-tap-to-talk-sequence.plantuml
delete mode 100644 modules/alexa/cmake/FindAVS.cmake
create mode 100644 modules/alexa/cmake/aac-alexa-module.cmake
create mode 100644 modules/alexa/conanfile.py
delete mode 100644 modules/alexa/engine/CMakeLists.txt
create mode 100644 modules/alexa/engine/include/AACE/Engine/Alexa/ChannelVolumeManager.h
create mode 100644 modules/alexa/engine/include/AACE/Engine/Alexa/DuckingInterface.h
create mode 100644 modules/alexa/engine/include/AACE/Engine/Alexa/MediaPlaybackRequestor.h
create mode 100644 modules/alexa/engine/include/AACE/Engine/Alexa/MediaPlaybackRequestorEngineImpl.h
create mode 100644 modules/alexa/engine/src/ChannelVolumeManager.cpp
create mode 100644 modules/alexa/engine/src/MediaPlaybackRequestor.cpp
create mode 100644 modules/alexa/engine/src/MediaPlaybackRequestorEngineImpl.cpp
delete mode 100644 modules/alexa/engine/test/CMakeLists.txt
delete mode 100644 modules/alexa/engine/test/include/AACE/Test/AVS/MockAlexaInterfaceMessageSenderInternalInterface.h
delete mode 100644 modules/alexa/engine/test/include/AACE/Test/AVS/MockAttachmentManager.h
delete mode 100644 modules/alexa/engine/test/include/AACE/Test/AVS/MockCustomerDataManager.h
delete mode 100644 modules/alexa/engine/test/include/AACE/Test/AVS/MockEndpointRegistrationManagerInterface.h
delete mode 100644 modules/alexa/engine/test/include/AACE/Test/Alexa/AlexaMockComponentFactory.h
delete mode 100644 modules/alexa/engine/test/src/main.cpp
create mode 100644 modules/alexa/platform/include/AACE/Alexa/MediaPlaybackRequestor.h
create mode 100644 modules/alexa/platform/src/MediaPlaybackRequestor.cpp
create mode 100644 modules/alexa/testing/unit/framework/include/AACE/Test/Unit/AVS/MockAlexaInterfaceMessageSenderInternalInterface.h
create mode 100644 modules/alexa/testing/unit/framework/include/AACE/Test/Unit/AVS/MockAttachmentManager.h
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockAudioPlayerInterface.h (97%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockAudioPlayerObserverInterface.h (97%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockAuthDelegateInterface.h (86%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockConnectionStatusObserver.h (84%)
create mode 100644 modules/alexa/testing/unit/framework/include/AACE/Test/Unit/AVS/MockCustomerDataManager.h
rename modules/alexa/{engine/test/include => testing/unit/framework/include/AACE/Test/Unit/AVS}/MockDeviceSettingStorage.h (100%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockDeviceSettingsManager.h (81%)
create mode 100644 modules/alexa/testing/unit/framework/include/AACE/Test/Unit/AVS/MockEndpointRegistrationManagerInterface.h
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockInternetConnectionMonitorInterface.h (83%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockMessageObserver.h (82%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockMessageRouter.h (90%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockMessageStorage.h (87%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockMetricRecorder.h (84%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockNotificationsAudioFactoryInterface.h (81%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockRenderPlayerInfoCardsProviderInterface.h (82%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockSpeakerManager.h (100%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockSpeechConfirmationSetting.h (86%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockSpeechEncoder.h (84%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockSystemSoundPlayerInterface.h (80%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockWakeWordConfirmationSetting.h (86%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/AVS/MockWakeWordsSetting.h (86%)
create mode 100644 modules/alexa/testing/unit/framework/include/AACE/Test/Unit/Alexa/AlexaMockComponentFactory.h
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/AlexaTestHelper.h (87%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockAlerts.h (87%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockAlexaClient.h (86%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockAudioPlayer.h (82%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockAuthProvider.h (83%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockAuthorizationManager.h (89%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockDeviceSettingsDelegate.h (92%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockDeviceSetup.h (83%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockInitiatorVerifier.h (84%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockNotifications.h (82%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockPlaybackController.h (80%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockSpeechRecognizer.h (83%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockSpeechSynthesizer.h (80%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockTemplateRuntime.h (86%)
rename modules/alexa/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Alexa/MockWakewordEngineAdapter.h (87%)
rename modules/alexa/{engine/test => testing/unit/framework}/src/AlexaMockComponentFactory.cpp (76%)
rename modules/alexa/{engine/test => testing/unit/framework}/src/AlexaTestHelper.cpp (95%)
rename modules/alexa/{engine/test => testing/unit/framework}/src/StubMiscStorage.cpp (100%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlertsEngineImplTest.cpp (98%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlexaAuthorizationProviderTest.cpp (98%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlexaClientEngineImplTest.cpp (99%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlexaConfigurationImplTest.cpp (94%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlexaEngineClientObserverTest.cpp (100%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AlexaEngineLoggerTest.cpp (95%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AudioPlayerEngineImplTest.cpp (98%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AuthProviderEngineImplTest.cpp (87%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/AuthorizationManagerTest.cpp (94%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/DeviceSetupEngineImplTest.cpp (89%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/DoNotDisturbEngineImplTest.cpp (97%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/NotificationsEngineImplTest.cpp (97%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/PlaybackControllerEngineImplTest.cpp (98%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/SpeechRecognizerEngineImplTest.cpp (80%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/SpeechSynthesizerEngineImplTest.cpp (97%)
rename modules/alexa/{engine/test/src => testing/unit/tests}/TemplateRuntimeEngineImplTest.cpp (94%)
delete mode 100644 modules/apl/CMakeLists.txt
delete mode 100644 modules/apl/aac-module-apl.bb
rename {extensions/aasb/modules/aasb-apl/engine => modules/apl/aasb}/include/AASB/Engine/APL/AASBAPL.h (75%)
rename {extensions/aasb/modules/aasb-apl/engine => modules/apl/aasb}/include/AASB/Engine/APL/AASBAPLEngineService.h (76%)
create mode 100644 modules/apl/aasb/messages/APL.yml
rename {extensions/aasb/modules/aasb-apl/engine => modules/apl/aasb}/src/AASBAPL.cpp (83%)
rename {extensions/aasb/modules/aasb-apl/engine => modules/apl/aasb}/src/AASBAPLEngineService.cpp (85%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/apl/android/src/main/assets/meta-aac/aace-apl.json
rename {platforms/android/modules/apl => modules/apl/android}/src/main/cpp/include/AACE/JNI/APL/APLBinder.h (97%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/cpp/include/AACE/JNI/APL/APLConfigurationBinder.h (100%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/cpp/src/APL/APLBinder.cpp (91%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/cpp/src/APL/APLConfigurationBinder.cpp (100%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/java/com/amazon/aace/apl/APL.java (84%)
rename {platforms/android/modules/apl => modules/apl/android}/src/main/java/com/amazon/aace/apl/config/APLConfiguration.java (100%)
create mode 100644 modules/apl/assets/aac-apl-general-flow.png
create mode 100644 modules/apl/assets/aac-apl-platform-properties.plantuml
create mode 100644 modules/apl/assets/aac-apl-render-document.plantuml
create mode 100644 modules/apl/assets/aac-apl-set-platform-properties.png
create mode 100644 modules/apl/conanfile.py
delete mode 100644 modules/apl/engine/CMakeLists.txt
create mode 100644 modules/apl/engine/include/AACE/Engine/APL/APLRuntimePropertyGenerator.h
create mode 100644 modules/apl/engine/src/APLRuntimePropertyGenerator.cpp
delete mode 100644 modules/apl/platform/CMakeLists.txt
rename {extensions => modules}/bluetooth/README.md (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/bluetooth/android/src/main/assets/meta-aac/aace-bluetooth.json
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/include/AACE/JNI/Bluetooth/BluetoothProviderBinder.h (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/include/AACE/JNI/Bluetooth/BluetoothServerSocketBinder.h (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/include/AACE/JNI/Bluetooth/BluetoothSocketBinder.h (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/include/AACE/JNI/Bluetooth/GATTServerBinder.h (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/src/Bluetooth/BluetoothProviderBinder.cpp (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/src/Bluetooth/BluetoothServerSocketBinder.cpp (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/src/Bluetooth/BluetoothSocketBinder.cpp (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/cpp/src/Bluetooth/GATTServerBinder.cpp (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/java/com/amazon/aace/bluetooth/BluetoothProvider.java (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/java/com/amazon/aace/bluetooth/BluetoothServerSocket.java (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/java/com/amazon/aace/bluetooth/BluetoothSocket.java (100%)
rename {extensions/bluetooth/platforms/android/modules/bluetooth => modules/bluetooth/android}/src/main/java/com/amazon/aace/bluetooth/GATTServer.java (100%)
create mode 100644 modules/bluetooth/assets/ble.plantuml
create mode 100644 modules/bluetooth/assets/ble.png
create mode 100644 modules/bluetooth/assets/bluetooth_classic.plantuml
create mode 100644 modules/bluetooth/assets/bluetooth_classic.png
create mode 100644 modules/bluetooth/conanfile.py
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/BluetoothEngineService.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/BluetoothServiceInterface.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/GATTCharacteristic.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/GATTDescriptor.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/GATTServerEngineImpl.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/GATTServerInterface.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/include/AACE/Engine/Bluetooth/GATTService.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/src/BluetoothEngineService.cpp (97%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/src/GATTDescriptor.cpp (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/src/GATTServerEngineImpl.cpp (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/engine/src/GATTService.cpp (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/BluetoothEngineInterfaces.h (96%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/BluetoothProvider.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/BluetoothServerSocket.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/BluetoothSocket.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/ByteArray.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/include/AACE/Bluetooth/GATTServer.h (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/src/BluetoothProvider.cpp (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/src/ByteArray.cpp (100%)
rename {extensions/bluetooth/modules => modules}/bluetooth/platform/src/GATTServer.cpp (100%)
rename {extensions => modules}/bluetooth/samples/android/.gitignore (100%)
create mode 100644 modules/bluetooth/samples/android/build.gradle
rename {platforms/android/app-components/alexa-auto-telephony/aacstelephony => modules/bluetooth/samples/android/modules/sample-bluetooth}/.gitignore (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/build.gradle (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/gradle.properties (100%)
rename {samples/android/app => modules/bluetooth/samples/android/modules/sample-bluetooth}/proguard-rules.pro (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/AndroidManifest.xml (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/assets/sample-app/sample-bluetooth.json (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/java/com/amazon/sampleapp/bluetooth/BluetoothModuleFactory.java (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/java/com/amazon/sampleapp/bluetooth/BluetoothProviderHandler.java (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/java/com/amazon/sampleapp/bluetooth/BluetoothServerSocketHandler.java (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/java/com/amazon/sampleapp/bluetooth/BluetoothSocketHandler.java (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/java/com/amazon/sampleapp/bluetooth/GATTServerHandler.java (100%)
rename {extensions => modules}/bluetooth/samples/android/modules/sample-bluetooth/src/main/res/values/strings.xml (100%)
rename {extensions => modules}/bluetooth/samples/android/settings.gradle (100%)
delete mode 100644 modules/car-control/.gitignore
delete mode 100644 modules/car-control/CMakeLists.txt
delete mode 100644 modules/car-control/aac-module-car-control.bb
rename {extensions/aasb/modules/aasb-car-control/engine => modules/car-control/aasb}/include/AASB/Engine/CarControl/AASBCarControl.h (90%)
rename {extensions/aasb/modules/aasb-car-control/engine => modules/car-control/aasb}/include/AASB/Engine/CarControl/AASBCarControlEngineService.h (76%)
create mode 100644 modules/car-control/aasb/messages/CarControl.yml
rename {extensions/aasb/modules/aasb-car-control/engine => modules/car-control/aasb}/src/AASBCarControl.cpp (95%)
rename {extensions/aasb/modules/aasb-car-control/engine => modules/car-control/aasb}/src/AASBCarControlEngineService.cpp (84%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/car-control/android/src/main/assets/meta-aac/aace-car-control.json
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/cpp/include/AACE/JNI/CarControl/CarControlBinder.h (100%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/cpp/src/CarControl/CarControlBinder.cpp (100%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/cpp/src/CarControl/CarControlConfigurationBinder.cpp (100%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/java/com/amazon/aace/carControl/CarControl.java (97%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/java/com/amazon/aace/carControl/CarControlAssets.java (100%)
rename {platforms/android/modules/car-control => modules/car-control/android}/src/main/java/com/amazon/aace/carControl/CarControlConfiguration.java (100%)
create mode 100644 modules/car-control/assets/adjusting_mode_of_a_setting.plantuml
create mode 100644 modules/car-control/assets/adjusting_mode_of_a_setting.png
create mode 100644 modules/car-control/assets/adjusting_value_of_a_setting.plantuml
create mode 100644 modules/car-control/assets/adjusting_value_of_a_setting.png
create mode 100644 modules/car-control/assets/setting_mode_of_a_setting.plantuml
create mode 100644 modules/car-control/assets/setting_mode_of_a_setting.png
create mode 100644 modules/car-control/assets/setting_value_of_a_setting.plantuml
create mode 100644 modules/car-control/assets/setting_value_of_a_setting.png
create mode 100644 modules/car-control/assets/turning_off_endpoint.plantuml
create mode 100644 modules/car-control/assets/turning_off_endpoint.png
create mode 100644 modules/car-control/assets/turning_off_toggle_state_of_setting.plantuml
create mode 100644 modules/car-control/assets/turning_off_toggle_state_of_setting.png
create mode 100644 modules/car-control/assets/turning_on_endpoint.plantuml
create mode 100644 modules/car-control/assets/turning_on_endpoint.png
create mode 100644 modules/car-control/assets/turning_on_toggle_state_of_setting.plantuml
create mode 100644 modules/car-control/assets/turning_on_toggle_state_of_setting.png
create mode 100644 modules/car-control/conanfile.py
delete mode 100644 modules/car-control/engine/CMakeLists.txt
delete mode 100644 modules/car-control/engine/test/CMakeLists.txt
delete mode 100644 modules/car-control/platform/CMakeLists.txt
delete mode 100644 modules/cbl/CMakeLists.txt
delete mode 100644 modules/cbl/aac-module-cbl.bb
rename {extensions/aasb/modules/aasb-cbl/engine => modules/cbl/aasb}/include/AASB/Engine/CBL/AASBCBL.h (79%)
create mode 100644 modules/cbl/aasb/include/AASB/Engine/CBL/AASBCBLEngineService.h
create mode 100644 modules/cbl/aasb/messages/CBL.yml
rename {extensions/aasb/modules/aasb-cbl/engine => modules/cbl/aasb}/src/AASBCBL.cpp (88%)
rename {extensions/aasb/modules/aasb-cbl/engine => modules/cbl/aasb}/src/AASBCBLEngineService.cpp (85%)
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/cbl/android/src/main/assets/meta-aac/aace-cbl.json
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/cpp/include/AACE/JNI/CBL/CBLBinder.h (100%)
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/cpp/src/CBL/CBLBinder.cpp (100%)
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/cpp/src/CBL/CBLConfigurationBinder.cpp (100%)
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/java/com/amazon/aace/cbl/CBL.java (95%)
rename {platforms/android/modules/cbl => modules/cbl/android}/src/main/java/com/amazon/aace/cbl/config/CBLConfiguration.java (100%)
create mode 100644 modules/cbl/conanfile.py
delete mode 100644 modules/cbl/engine/CMakeLists.txt
delete mode 100644 modules/cbl/engine/test/CMakeLists.txt
delete mode 100644 modules/cbl/platform/CMakeLists.txt
rename modules/cbl/{engine/test => testing/unit/tests}/CBLAuthorizationProviderTest.cpp (98%)
delete mode 100644 modules/connectivity/CMakeLists.txt
delete mode 100644 modules/connectivity/aac-module-connectivity.bb
rename {extensions/aasb/modules/aasb-connectivity/engine => modules/connectivity/aasb}/include/AASB/Engine/Connectivity/AASBAlexaConnectivity.h (81%)
rename {extensions/aasb/modules/aasb-connectivity/engine => modules/connectivity/aasb}/include/AASB/Engine/Connectivity/AASBConnectivityEngineService.h (80%)
create mode 100644 modules/connectivity/aasb/messages/AlexaConnectivity.yml
rename {extensions/aasb/modules/aasb-connectivity/engine => modules/connectivity/aasb}/src/AASBAlexaConnectivity.cpp (85%)
rename {extensions/aasb/modules/aasb-connectivity/engine => modules/connectivity/aasb}/src/AASBConnectivityEngineService.cpp (80%)
rename {platforms/android/modules/connectivity => modules/connectivity/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/connectivity/android/src/main/assets/meta-aac/aace-connectivity.json
rename {platforms/android/modules/connectivity => modules/connectivity/android}/src/main/cpp/include/AACE/JNI/Connectivity/AlexaConnectivityBinder.h (100%)
rename {platforms/android/modules/connectivity => modules/connectivity/android}/src/main/cpp/src/Connectivity/AlexaConnectivityBinder.cpp (100%)
rename {platforms/android/modules/connectivity => modules/connectivity/android}/src/main/java/com/amazon/aace/connectivity/AlexaConnectivity.java (98%)
delete mode 100644 modules/connectivity/assets/Connectivity-Sequence-ConnectCloud.png
delete mode 100644 modules/connectivity/assets/Connectivity-Sequence-ConnectCloud.puml
create mode 100644 modules/connectivity/conanfile.py
delete mode 100644 modules/connectivity/engine/CMakeLists.txt
delete mode 100644 modules/connectivity/engine/test/CMakeLists.txt
delete mode 100644 modules/connectivity/platform/CMakeLists.txt
rename modules/connectivity/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Connectivity/MockAlexaConnectivity.h (83%)
rename modules/connectivity/{engine/test/src => testing/unit/tests}/AlexaConnectivityEngineImplTest.cpp (97%)
create mode 100644 modules/core/AUDIO.md
create mode 100644 modules/core/AUTHORIZATION.md
delete mode 100644 modules/core/CMakeLists.txt
create mode 100644 modules/core/RUNTIME_PROPERTIES.md
delete mode 100644 modules/core/aac-module-core.bb
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Audio/AASBAudioEngineService.h (80%)
create mode 100644 modules/core/aasb/include/AASB/Engine/Audio/AASBAudioInput.h
create mode 100644 modules/core/aasb/include/AASB/Engine/Audio/AASBAudioInputProvider.h
create mode 100644 modules/core/aasb/include/AASB/Engine/Audio/AASBAudioOutput.h
create mode 100644 modules/core/aasb/include/AASB/Engine/Audio/AASBAudioOutputProvider.h
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Authorization/AASBAuthorization.h (80%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Authorization/AASBAuthorizationEngineService.h (80%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/DeviceUsage/AASBDeviceUsage.h (77%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/DeviceUsage/AASBDeviceUsageEngineService.h (81%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Location/AASBLocationEngineService.h (80%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Location/AASBLocationProvider.h (79%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Network/AASBNetworkEngineService.h (80%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/Network/AASBNetworkInfoProvider.h (78%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/PropertyManager/AASBPropertyManager.h (81%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h (80%)
create mode 100644 modules/core/aasb/include/AASB/Utils/StringUtils.h
create mode 100644 modules/core/aasb/include/AASB/Utils/UUID.h
create mode 100644 modules/core/aasb/messages/AudioInput.yml
create mode 100644 modules/core/aasb/messages/AudioOutput.yml
create mode 100644 modules/core/aasb/messages/Authorization.yml
create mode 100644 modules/core/aasb/messages/DeviceUsage.yml
create mode 100644 modules/core/aasb/messages/LocationProvider.yml
create mode 100644 modules/core/aasb/messages/NetworkInfoProvider.yml
create mode 100644 modules/core/aasb/messages/PropertyManager.yml
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Audio/AASBAudioEngineService.cpp (92%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Audio/AASBAudioInput.cpp (89%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Audio/AASBAudioInputProvider.cpp (87%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Audio/AASBAudioOutput.cpp (79%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Audio/AASBAudioOutputProvider.cpp (87%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Authorization/AASBAuthorization.cpp (84%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Authorization/AASBAuthorizationEngineService.cpp (86%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/DeviceUsage/AASBDeviceUsage.cpp (90%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/DeviceUsage/AASBDeviceUsageEngineService.cpp (85%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Location/AASBLocationEngineService.cpp (85%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Location/AASBLocationProvider.cpp (93%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Network/AASBNetworkEngineService.cpp (85%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/Network/AASBNetworkInfoProvider.cpp (93%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/PropertyManager/AASBPropertyManager.cpp (95%)
rename {extensions/aasb/modules/aasb-core/engine => modules/core/aasb}/src/PropertyManager/AASBPropertyManagerEngineService.cpp (86%)
rename {platforms/android/modules/core => modules/core/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/core/android/src/main/assets/meta-aac/aace-core.json
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Audio/AudioInputBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Audio/AudioInputProviderBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Audio/AudioOutputBinder.h (84%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Audio/AudioOutputProviderBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Audio/AudioStreamBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Authorization/AuthorizationBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Core/EngineBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Core/EngineConfigurationBinder.h (100%)
create mode 100644 modules/core/android/src/main/cpp/include/AACE/JNI/Core/MessageBrokerBinder.h
create mode 100644 modules/core/android/src/main/cpp/include/AACE/JNI/Core/MessageStreamBinder.h
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Core/NativeLib.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Core/PlatformInterfaceBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/DeviceUsage/DeviceUsageBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Location/LocationProviderBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Logger/LoggerBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Metrics/MetricsUploaderBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/GlobalRef.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaArray.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaClass.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaEnum.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaField.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaMethod.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaObject.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/JavaString.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/NativeMacros.h (97%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Native/ThreadContext.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Network/NetworkInfoProviderBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/PropertyManager/PropertyManagerBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/include/AACE/JNI/Vehicle/VehicleConfigurationBinder.h (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Audio/AudioInputBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Audio/AudioInputProviderBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Audio/AudioOutputBinder.cpp (84%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Audio/AudioOutputProviderBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Audio/AudioStreamBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Authorization/AuthorizationBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/DeviceUsage/DeviceUsageBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/EngineBinder.cpp (81%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/EngineConfigurationBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Location/LocationProviderBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Logger/LoggerBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Logger/LoggerConfigurationBinder.cpp (100%)
create mode 100644 modules/core/android/src/main/cpp/src/MessageBrokerBinder.cpp
create mode 100644 modules/core/android/src/main/cpp/src/MessageStreamBinder.cpp
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Metrics/MetricsUploaderBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaArray.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaClass.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaField.cpp (91%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaMethod.cpp (91%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaObject.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/JavaString.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Native/ThreadContext.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Network/NetworkInfoProviderBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/PlatformInterfaceBinder.cpp (86%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/PropertyManager/PropertyManagerBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Storage/StorageConfigurationBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/cpp/src/Vehicle/VehicleConfigurationBinder.cpp (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioFormat.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioInput.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioInputProvider.java (85%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioOutput.java (85%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioOutputProvider.java (86%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/audio/AudioStream.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/authorization/Authorization.java (95%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/CoreProperties.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/Engine.java (86%)
create mode 100644 modules/core/android/src/main/java/com/amazon/aace/core/MessageBroker.java
create mode 100644 modules/core/android/src/main/java/com/amazon/aace/core/MessageStream.java
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/NativeRef.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/PlatformInterface.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/config/ConfigurationFile.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/config/EngineConfiguration.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/core/config/StreamConfiguration.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/deviceusage/DeviceUsage.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/location/Location.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/location/LocationProvider.java (92%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/logger/Logger.java (92%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/logger/config/LoggerConfiguration.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/network/NetworkInfoProvider.java (91%)
create mode 100644 modules/core/android/src/main/java/com/amazon/aace/network/NetworkProperties.java
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/propertymanager/PropertyManager.java (93%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/storage/config/StorageConfiguration.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/vehicle/VehicleProperties.java (100%)
rename {platforms/android/modules/core => modules/core/android}/src/main/java/com/amazon/aace/vehicle/config/VehicleConfiguration.java (100%)
delete mode 100644 modules/core/assets/PropertyManager_changed.png
delete mode 100644 modules/core/assets/PropertyManager_get.png
delete mode 100644 modules/core/assets/PropertyManager_set.png
create mode 100644 modules/core/assets/diagrams/out/AuthProvider_login.png
create mode 100644 modules/core/assets/diagrams/out/AuthProvider_logout.png
rename modules/core/assets/{ => diagrams/out}/Authorization_cancel.png (100%)
rename modules/core/assets/{ => diagrams/out}/Authorization_logout.png (100%)
rename modules/core/assets/{ => diagrams/out}/Authorization_start.png (100%)
create mode 100644 modules/core/assets/diagrams/out/authprovider-cancel-sequence.png
create mode 100644 modules/core/assets/diagrams/out/authprovider-logout-sequence.png
create mode 100644 modules/core/assets/diagrams/out/authprovider-start-sequence.png
create mode 100644 modules/core/assets/diagrams/out/ducking.png
create mode 100644 modules/core/assets/diagrams/out/ducking_3p_event.png
create mode 100644 modules/core/assets/diagrams/src/AudioInput_audio.plantuml
create mode 100644 modules/core/assets/diagrams/src/AudioInput_duck.plantuml
create mode 100644 modules/core/assets/diagrams/src/AudioOutput_duck3rd.plantuml
create mode 100644 modules/core/assets/diagrams/src/AudioOutput_reply.plantuml
rename modules/core/assets/{ => diagrams/src}/Authorization_cancel.plantuml (100%)
rename modules/core/assets/{ => diagrams/src}/Authorization_logout.plantuml (100%)
rename modules/core/assets/{ => diagrams/src}/Authorization_start.plantuml (100%)
create mode 100644 modules/core/assets/diagrams/src/authprovider-cancel-sequence.plantuml
create mode 100644 modules/core/assets/diagrams/src/authprovider-logout-sequence.plantuml
create mode 100644 modules/core/assets/diagrams/src/authprovider-start-sequence.plantuml
delete mode 100644 modules/core/cmake/FindSQLite3.cmake
create mode 100644 modules/core/cmake/aac-core-module.cmake
create mode 100644 modules/core/conanfile.py
delete mode 100644 modules/core/engine/CMakeLists.txt
create mode 100644 modules/core/engine/include/AACE/Engine/Audio/IStreamAudioStream.h
rename {extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB => modules/core/engine/include/AACE/Engine/MessageBroker}/Message.h (89%)
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/MessageBrokerEngineService.h
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/MessageBrokerImpl.h
rename {extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB => modules/core/engine/include/AACE/Engine/MessageBroker}/MessageBrokerInterface.h (88%)
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/MessageBrokerServiceInterface.h
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/MessageHandlerEngineService.h
rename {extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB => modules/core/engine/include/AACE/Engine/MessageBroker}/PublishMessage.h (89%)
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/StreamManagerImpl.h
create mode 100644 modules/core/engine/include/AACE/Engine/MessageBroker/StreamManagerInterface.h
create mode 100644 modules/core/engine/src/Audio/IStreamAudioStream.cpp
rename {extensions/aasb/modules/aasb/engine/src => modules/core/engine/src/MessageBroker}/Message.cpp (96%)
create mode 100644 modules/core/engine/src/MessageBroker/MessageBrokerEngineService.cpp
create mode 100644 modules/core/engine/src/MessageBroker/MessageBrokerImpl.cpp
create mode 100644 modules/core/engine/src/MessageBroker/MessageBrokerServiceInterface.cpp
create mode 100644 modules/core/engine/src/MessageBroker/MessageHandlerEngineService.cpp
rename {extensions/aasb/modules/aasb/engine/src => modules/core/engine/src/MessageBroker}/PublishMessage.cpp (86%)
create mode 100644 modules/core/engine/src/MessageBroker/StreamManagerImpl.cpp
delete mode 100644 modules/core/engine/test/CMakeLists.txt
delete mode 100644 modules/core/engine/test/include/AACE/Test/Audio/MockAudioInputChannelInterface.h
delete mode 100644 modules/core/engine/test/src/main.cpp
delete mode 100644 modules/core/platform/CMakeLists.txt
create mode 100644 modules/core/platform/include/AACE/Core/MessageBroker.h
create mode 100644 modules/core/platform/include/AACE/Core/MessageStream.h
create mode 100644 modules/core/testing/unit/framework/include/AACE/Test/Unit/Audio/MockAudioInputChannelInterface.h
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Audio/MockAudioManagerInterface.h (85%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Audio/MockAudioOutputChannelInterface.h (82%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Authorization/MockAuthorizationProviderListener.h (86%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Core/CoreTestHelper.h (86%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Core/MockEngineConfiguration.h (82%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/Core/MockPlatformInterface.h (81%)
rename modules/core/{engine/test/include/AACE/Test => testing/unit/framework/include/AACE/Test/Unit}/PropertyManager/MockPropertyManagerServiceInterface.h (89%)
rename modules/core/{engine/test => testing/unit/framework}/src/CoreTestHelper.cpp (88%)
rename modules/core/{engine/test/src => testing/unit/tests}/AuthorizationEngineImplTest.cpp (100%)
rename modules/core/{engine/test/src => testing/unit/tests}/EngineImplTest.cpp (95%)
rename modules/core/{engine/test/src => testing/unit/tests}/LocationProviderEngineImplTest.cpp (100%)
create mode 100644 modules/core/testing/unit/tests/ServiceDescriptionTest.cpp
rename modules/core/{engine/test/src => testing/unit/tests}/VehicleConfigurationImplTest.cpp (97%)
create mode 100644 modules/custom-domain/README.md
create mode 100644 modules/custom-domain/aasb/include/AASB/Engine/CustomDomain/AASBCustomDomain.h
create mode 100644 modules/custom-domain/aasb/include/AASB/Engine/CustomDomain/AASBCustomDomainEngineService.h
create mode 100644 modules/custom-domain/aasb/messages/CustomDomain.yml
create mode 100644 modules/custom-domain/aasb/src/AASBCustomDomain.cpp
create mode 100644 modules/custom-domain/aasb/src/AASBCustomDomainEngineService.cpp
create mode 100644 modules/custom-domain/android/src/main/AndroidManifest.xml
create mode 100644 modules/custom-domain/android/src/main/assets/meta-aac/aace-custom-domain.json
create mode 100644 modules/custom-domain/android/src/main/cpp/include/AACE/JNI/CustomDomain/CustomDomainBinder.h
create mode 100644 modules/custom-domain/android/src/main/cpp/src/CustomDomain/CustomDomainBinder.cpp
create mode 100644 modules/custom-domain/android/src/main/java/com/amazon/aace/customDomain/CustomDomain.java
create mode 100644 modules/custom-domain/assets/custom_context.png
create mode 100644 modules/custom-domain/assets/custom_directives_events.png
create mode 100644 modules/custom-domain/conanfile.py
create mode 100644 modules/custom-domain/engine/include/AACE/Engine/CustomDomain/CustomDomainCapabilityAgent.h
create mode 100644 modules/custom-domain/engine/include/AACE/Engine/CustomDomain/CustomDomainEngineImpl.h
create mode 100644 modules/custom-domain/engine/include/AACE/Engine/CustomDomain/CustomDomainEngineService.h
create mode 100644 modules/custom-domain/engine/include/AACE/Engine/CustomDomain/CustomDomainHandlerInterface.h
create mode 100644 modules/custom-domain/engine/src/CustomDomainCapabilityAgent.cpp
create mode 100644 modules/custom-domain/engine/src/CustomDomainEngineImpl.cpp
create mode 100644 modules/custom-domain/engine/src/CustomDomainEngineService.cpp
create mode 100644 modules/custom-domain/platform/include/AACE/CustomDomain/CustomDomain.h
create mode 100644 modules/custom-domain/platform/include/AACE/CustomDomain/CustomDomainEngineInterface.h
create mode 100644 modules/custom-domain/platform/src/CustomDomain.cpp
create mode 100644 modules/custom-domain/testing/unit/tests/CustomDomainCapabilityAgentTest.cpp
create mode 100644 modules/custom-domain/testing/unit/tests/CustomDomainEngineImplTest.cpp
rename {extensions => modules}/loopback-detector/LICENSE (100%)
rename {extensions => modules}/loopback-detector/NOTICE (100%)
create mode 100644 modules/loopback-detector/README.md
rename {extensions/loopback-detector/platforms/android/modules/loopback-detector => modules/loopback-detector/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/loopback-detector/android/src/main/assets/meta-aac/aace-loopback-detector.json
rename {extensions/loopback-detector/platforms/android/modules/loopback-detector => modules/loopback-detector/android}/src/main/cpp/LoopbackDetectorConfigurationBinder.cpp (100%)
create mode 100644 modules/loopback-detector/assets/loopback-detector-data-flow.png
create mode 100644 modules/loopback-detector/conanfile.py
rename {extensions/loopback-detector/modules => modules}/loopback-detector/engine/CMakeLists.txt (100%)
rename {extensions/loopback-detector/modules => modules}/loopback-detector/engine/src/LoopbackDetector.cpp (98%)
rename {extensions/loopback-detector/modules => modules}/loopback-detector/engine/src/LoopbackDetector.h (100%)
rename {extensions/loopback-detector/modules => modules}/loopback-detector/engine/src/LoopbackDetectorEngineService.cpp (100%)
rename {extensions/loopback-detector/modules => modules}/loopback-detector/engine/src/LoopbackDetectorEngineService.h (100%)
delete mode 100644 modules/messaging/CMakeLists.txt
delete mode 100644 modules/messaging/aac-module-messaging.bb
rename {extensions/aasb/modules/aasb-messaging/engine => modules/messaging/aasb}/include/AASB/Engine/Messaging/AASBMessaging.h (82%)
rename {extensions/aasb/modules/aasb-messaging/engine => modules/messaging/aasb}/include/AASB/Engine/Messaging/AASBMessagingEngineService.h (80%)
create mode 100644 modules/messaging/aasb/messages/Messaging.yml
rename {extensions/aasb/modules/aasb-messaging/engine => modules/messaging/aasb}/src/AASBMessaging.cpp (97%)
rename {extensions/aasb/modules/aasb-messaging/engine => modules/messaging/aasb}/src/AASBMessagingEngineService.cpp (85%)
rename {platforms/android/modules/messaging => modules/messaging/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/messaging/android/src/main/assets/meta-aac/aace-messaging.json
rename {platforms/android/modules/messaging => modules/messaging/android}/src/main/cpp/include/AACE/JNI/Messaging/MessagingBinder.h (100%)
rename {platforms/android/modules/messaging => modules/messaging/android}/src/main/cpp/src/Messaging/MessagingBinder.cpp (100%)
rename {platforms/android/modules/messaging => modules/messaging/android}/src/main/java/com/amazon/aace/messaging/Messaging.java (97%)
create mode 100644 modules/messaging/assets/aac-messaging-reading-messages.plantuml
create mode 100644 modules/messaging/assets/aac-messaging-reply-message.plantuml
create mode 100644 modules/messaging/assets/aac-messaging-sending-messages.plantuml
create mode 100644 modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-connection.plantuml
create mode 100644 modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-connection.png
create mode 100644 modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-permissions.plantuml
create mode 100644 modules/messaging/assets/aac-messaging-update-messaging-endpoint-state-permissions.png
create mode 100644 modules/messaging/conanfile.py
delete mode 100644 modules/messaging/engine/CMakeLists.txt
delete mode 100644 modules/messaging/engine/test/CMakeLists.txt
delete mode 100644 modules/messaging/platform/CMakeLists.txt
rename modules/messaging/{engine/test => testing/unit/tests}/MessagingEngineImplTest.cpp (94%)
delete mode 100644 modules/navigation/.gitignore
delete mode 100644 modules/navigation/CMakeLists.txt
delete mode 100644 modules/navigation/aac-module-navigation.bb
rename {extensions/aasb/modules/aasb-navigation/engine => modules/navigation/aasb}/include/AASB/Engine/Navigation/AASBNavigation.h (84%)
rename {extensions/aasb/modules/aasb-navigation/engine => modules/navigation/aasb}/include/AASB/Engine/Navigation/AASBNavigationEngineService.h (80%)
create mode 100644 modules/navigation/aasb/messages/Navigation.yml
rename {extensions/aasb/modules/aasb-navigation/engine => modules/navigation/aasb}/src/AASBNavigation.cpp (97%)
rename {extensions/aasb/modules/aasb-navigation/engine => modules/navigation/aasb}/src/AASBNavigationEngineService.cpp (85%)
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/navigation/android/src/main/assets/meta-aac/aace-navigation.json
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/cpp/include/AACE/JNI/Navigation/NavigationBinder.h (100%)
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/cpp/src/Navigation/NavigationBinder.cpp (100%)
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/cpp/src/Navigation/NavigationConfigurationBinder.cpp (100%)
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/java/com/amazon/aace/navigation/Navigation.java (98%)
rename {platforms/android/modules/navigation => modules/navigation/android}/src/main/java/com/amazon/aace/navigation/config/NavigationConfiguration.java (100%)
create mode 100644 modules/navigation/conanfile.py
delete mode 100644 modules/navigation/engine/CMakeLists.txt
delete mode 100644 modules/navigation/engine/test/CMakeLists.txt
delete mode 100644 modules/navigation/engine/test/MockAttachmentManager.h
delete mode 100644 modules/navigation/platform/CMakeLists.txt
rename modules/navigation/{engine/test => testing/unit/tests}/NavigationAssistanceCapabilityAgentTest.cpp (87%)
rename modules/navigation/{engine/test => testing/unit/tests}/NavigationCapabilityAgentTest.cpp (95%)
rename modules/navigation/{engine/test => testing/unit/tests}/NavigationEngineImplTest.cpp (93%)
delete mode 100644 modules/phone-control/.gitignore
delete mode 100644 modules/phone-control/CMakeLists.txt
delete mode 100644 modules/phone-control/aac-module-phone-control.bb
rename {extensions/aasb/modules/aasb-phone-control/engine => modules/phone-control/aasb}/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h (83%)
rename {extensions/aasb/modules/aasb-phone-control/engine => modules/phone-control/aasb}/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h (84%)
create mode 100644 modules/phone-control/aasb/messages/PhoneCallController.yml
rename {extensions/aasb/modules/aasb-phone-control/engine => modules/phone-control/aasb}/src/AASBPhoneCallController.cpp (97%)
rename {extensions/aasb/modules/aasb-phone-control/engine => modules/phone-control/aasb}/src/AASBPhoneCallControllerEngineService.cpp (86%)
rename {platforms/android/modules/phonecontrol => modules/phone-control/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/phone-control/android/src/main/assets/meta-aac/aace-phonecontrol.json
rename {platforms/android/modules/phonecontrol => modules/phone-control/android}/src/main/cpp/include/AACE/JNI/PhoneControl/PhoneCallControllerBinder.h (100%)
rename {platforms/android/modules/phonecontrol => modules/phone-control/android}/src/main/cpp/src/PhoneControl/PhoneCallControllerBinder.cpp (100%)
create mode 100644 modules/phone-control/android/src/main/java/com/amazon/aace/phonecontrol/PhoneCallController.java
create mode 100644 modules/phone-control/assets/aac-pcc-connection-state-changed.plantuml
create mode 100644 modules/phone-control/assets/aac-pcc-connection-state-changed.png
create mode 100644 modules/phone-control/assets/aac-pcc-device-configuration-updated.plantuml
create mode 100644 modules/phone-control/assets/aac-pcc-device-configuration-updated.png
create mode 100644 modules/phone-control/assets/aac-pcc-inbound-call.plantuml
create mode 100644 modules/phone-control/assets/aac-pcc-outbound-call.plantuml
create mode 100644 modules/phone-control/conanfile.py
delete mode 100644 modules/phone-control/engine/CMakeLists.txt
delete mode 100644 modules/phone-control/engine/test/CMakeLists.txt
delete mode 100644 modules/phone-control/engine/test/MockAttachmentManager.h
delete mode 100644 modules/phone-control/platform/CMakeLists.txt
rename modules/phone-control/{engine/test => testing/unit/tests}/PhoneCallControllerCapabilityAgentTest.cpp (95%)
rename modules/phone-control/{engine/test => testing/unit/tests}/PhoneCallControllerEngineImplTest.cpp (97%)
create mode 100644 modules/system-audio/README.md
rename {platforms/android/app-components/alexa-auto-carcontrol/aacscarcontrol => modules/system-audio/aal}/.gitignore (100%)
create mode 100644 modules/system-audio/aal/CMakeLists.txt
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/README.md (100%)
create mode 100644 modules/system-audio/aal/conanfile.py
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/include/aal/aal.h (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/include/aal/common.h (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/.clang-format (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/.github/CONTRIBUTING.md (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/.github/ISSUE_TEMPLATE.md (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/.github/PULL_REQUEST_TEMPLATE.md (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/.gitignore (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/COPYING (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/Makefile (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/README.md (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/ringbuf-test.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/ringbuf.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/lib/c-ringbuf/ringbuf.h (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/common.c (88%)
create mode 100644 modules/system-audio/aal/src/gstreamer/core.c
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/gstreamer/core.h (100%)
create mode 100644 modules/system-audio/aal/src/gstreamer/mathstubs.c
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/gstreamer/player.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/gstreamer/recorder.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/omxal/core.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/omxal/core.h (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/omxal/player.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/omxal/player.h (100%)
create mode 100644 modules/system-audio/aal/src/qsa/core.c
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/qsa/core.h (95%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/qsa/player.c (95%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/qsa/recorder.c (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/test/CMakeLists.txt (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/test/README.md (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/test/player.cpp (100%)
rename {extensions/system-audio/modules/system-audio/lib => modules/system-audio}/aal/src/test/recorder.cpp (100%)
create mode 100644 modules/system-audio/conanfile.py
rename extensions/system-audio/modules/system-audio/assets/config.json.linux => modules/system-audio/configs/linux/config-system-audio.json (100%)
rename extensions/system-audio/modules/system-audio/assets/config.json.qnx => modules/system-audio/configs/neutrino/config-system-audio.json (100%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/include/AACE/Engine/SystemAudio/AudioInputImpl.h (100%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/include/AACE/Engine/SystemAudio/AudioOutputImpl.h (96%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/include/AACE/Engine/SystemAudio/SystemAudioEngineService.h (100%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/include/AACE/Engine/SystemAudio/Throttle.h (100%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/src/AudioInputImpl.cpp (100%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/src/AudioOutputImpl.cpp (95%)
rename {extensions/system-audio/modules => modules}/system-audio/engine/src/SystemAudioEngineService.cpp (100%)
delete mode 100644 modules/text-to-speech-provider/CMakeLists.txt
delete mode 100644 modules/text-to-speech-provider/aac-module-text-to-speech-provider.bb
rename {platforms/android/modules/text-to-speech-provider => modules/text-to-speech-provider/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/text-to-speech-provider/android/src/main/assets/meta-aac/aace-text-to-speech-provider.json
create mode 100644 modules/text-to-speech-provider/conanfile.py
delete mode 100644 modules/text-to-speech-provider/engine/CMakeLists.txt
delete mode 100644 modules/text-to-speech/.gitignore
delete mode 100644 modules/text-to-speech/CMakeLists.txt
delete mode 100644 modules/text-to-speech/aac-module-text-to-speech.bb
create mode 100644 modules/text-to-speech/aasb/include/AASB/Engine/TextToSpeech/AASBTextToSpeech.h
rename {extensions/aasb/modules/aasb-text-to-speech/engine => modules/text-to-speech/aasb}/include/AASB/Engine/TextToSpeech/AASBTextToSpeechEngineService.h (81%)
create mode 100644 modules/text-to-speech/aasb/messages/TextToSpeech.yml
rename {extensions/aasb/modules/aasb-text-to-speech/engine => modules/text-to-speech/aasb}/src/AASBTextToSpeech.cpp (90%)
rename {extensions/aasb/modules/aasb-text-to-speech/engine => modules/text-to-speech/aasb}/src/AASBTextToSpeechEngineService.cpp (86%)
rename {platforms/android/modules/text-to-speech => modules/text-to-speech/android}/src/main/AndroidManifest.xml (100%)
create mode 100644 modules/text-to-speech/android/src/main/assets/meta-aac/aace-text-to-speech.json
rename {platforms/android/modules/text-to-speech => modules/text-to-speech/android}/src/main/cpp/include/AACE/JNI/TextToSpeech/TextToSpeechBinder.h (100%)
rename {platforms/android/modules/text-to-speech => modules/text-to-speech/android}/src/main/cpp/src/TextToSpeech/TextToSpeechBinder.cpp (100%)
rename {platforms/android/modules/text-to-speech => modules/text-to-speech/android}/src/main/java/com/amazon/aace/textToSpeech/TextToSpeech.java (95%)
delete mode 100644 modules/text-to-speech/assets/CapabilitiesReceived.plantuml
delete mode 100644 modules/text-to-speech/assets/CapabilitiesReceived.png
delete mode 100644 modules/text-to-speech/assets/PrepareSpeechCompleted.plantuml
delete mode 100644 modules/text-to-speech/assets/PrepareSpeechCompleted.png
delete mode 100644 modules/text-to-speech/assets/PrepareSpeechFailed.plantuml
delete mode 100644 modules/text-to-speech/assets/PrepareSpeechFailed.png
create mode 100644 modules/text-to-speech/conanfile.py
delete mode 100644 modules/text-to-speech/engine/CMakeLists.txt
delete mode 100644 modules/text-to-speech/engine/test/CMakeLists.txt
delete mode 100644 modules/text-to-speech/platform/CMakeLists.txt
rename modules/text-to-speech/{engine/test => testing/unit/tests}/TextToSpeechEngineImplTest.cpp (96%)
delete mode 100644 platforms/android/.gitignore
delete mode 100644 platforms/android/alexa-auto-client-service/README.md
delete mode 100755 platforms/android/alexa-auto-client-service/android-service/.gitignore
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/README.md
delete mode 100755 platforms/android/alexa-auto-client-service/android-service/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/assets/file-util-res/aacs_config.json
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/ComponentRegistry.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/exo/MediaSourceFactory.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/exo/PlaylistParser.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/raw/RawAudioOutputHandler.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/mediaManager/LocalMediaSourceHandler.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/propertyManager/PropertyManagerHandler.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/receiver/SystemPropertyChangeReceiver.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/util/FileUtil.java
delete mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/util/MediaPlayerUtil.java
delete mode 100755 platforms/android/alexa-auto-client-service/android-service/settings.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/assets/AACS_CBLLogin.png
delete mode 100644 platforms/android/alexa-auto-client-service/assets/AACS_CBLLogin.puml
delete mode 100644 platforms/android/alexa-auto-client-service/assets/config.json
delete mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/PlaybackControlMessages.java
delete mode 100644 platforms/android/alexa-auto-client-service/commonutils/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/commonutils/settings.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/constants/build.gradle
delete mode 100644 platforms/android/alexa-auto-client-service/ipc/.gitignore
delete mode 100644 platforms/android/alexa-auto-client-service/ipc/README.md
delete mode 100644 platforms/android/alexa-auto-client-service/ipc/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-apis/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-apis/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/assets/APLViewport.json
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLActivity.java
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/Constants.java
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/handler/APLHandler.java
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/activity_apl.xml
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/apl_view.xml
delete mode 100644 platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/handler/APLHandlerTest.java
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-ui/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-ui/src/main/res/drawable/amazon_alexa_placeholder_logo.png
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-util/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-util/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-util/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/Constants.java
delete mode 100644 platforms/android/app-components/alexa-auto-apps-common-util/src/main/java/com/amazon/alexa/auto/apps/common/util/FileUtil.java
delete mode 100644 platforms/android/app-components/alexa-auto-carcontrol/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-carcontrol/aacscarcontrol/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-carcontrol/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-carcontrol/settings.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/Constants.java
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/ContactsControllerImpl.java
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/db/ConnectedBTDeviceRepository.java
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/dependencies/CommunicationModule.java
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/java/com/amazon/alexa/auto/comms/ui/receiver/BluetoothReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/res/layout-land/communication_setup_fragment.xml
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/res/layout/communication_setup_fragment.xml
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/res/values-land/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/res/values/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-comms-ui/src/main/res/values/strings.xml
delete mode 100644 platforms/android/app-components/alexa-auto-contacts/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-contacts/aacscontacts/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-contacts/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-contacts/settings.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-device-usage/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-lwa-auth/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-lwa-auth/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/AuthReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/CBLReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-lwa-auth/src/main/java/com/amazon/alexa/auto/lwa/LWAAuthController.java
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/aacs/handlers/AudioPlayerHandler.java
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/player/MediaSourceFactory.java
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/MediaSessionManager.java
delete mode 100644 platforms/android/app-components/alexa-auto-media-player/src/main/java/com/amazon/alexa/auto/media/session/PlaybackController.java
delete mode 100644 platforms/android/app-components/alexa-auto-navigation/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-navigation/src/main/res/values/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-settings/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-settings/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/AndroidManifest.xml
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/assets/locales.json
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/AlexaSettingsLanguagesFragment.java
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/java/com/amazon/alexa/auto/settings/config/PreferenceKeys.java
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/res/layout/settings_alexa_language_layout.xml
delete mode 100644 platforms/android/app-components/alexa-auto-settings/src/main/res/values/strings.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-setup/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/dependencies/SetupComponent.java
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/receiver/NetworkStateChangeReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/java/com/amazon/alexa/auto/setup/workflow/fragment/EnablePreviewModeFragment.java
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/auth_provider_login_finished.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/cbl_login_error.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/cbl_login_finished.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/enable_preview_mode.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/location_consent.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/login_display_cbl_code.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/login_start.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/network_fragment.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/setup_not_complete.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout-land/start_language_selection.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/auth_provider_login_finished.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_login_error.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/cbl_login_finished.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/enable_preview_mode.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/location_consent.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/login_display_cbl_code.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/login_start.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/network_fragment.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/setup_not_complete.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/layout/start_language_selection.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/values-land/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/values/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-setup/src/main/res/values/strings.xml
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/aacstelephony/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/aacstelephony/consumer-rules.pro
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/aacstelephony/src/main/java/com/amazon/aacstelephony/PhoneCallController.java
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-telephony/settings.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-templateruntime-renderer/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/layout/weather.xml
delete mode 100644 platforms/android/app-components/alexa-auto-templateruntime-renderer/src/main/res/values/dimens.xml
delete mode 100644 platforms/android/app-components/alexa-auto-tts/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-tts/aacstts/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-tts/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-tts/gradle.properties
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/README.md
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/build.gradle
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/earcon/EarconController.java
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/receiver/AACSBroadcastReceiver.java
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/main/java/com/amazon/alexa/auto/voiceinteraction/service/AutoVoiceInteractionSession.java
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/main/res/values/styles.xml
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/test/java/com/amazon/alexa/auto/voiceinteraction/receiver/AACSBroadcastReceiverTest.java
delete mode 100644 platforms/android/app-components/alexa-auto-voice-interaction/src/test/java/com/amazon/alexa/auto/voiceinteraction/service/AutoVoiceInteractionSessionTest.java
delete mode 100644 platforms/android/modules/abifilter.gradle
delete mode 100644 platforms/android/modules/addressbook/CMakeLists.txt
delete mode 100644 platforms/android/modules/addressbook/README.md
delete mode 100644 platforms/android/modules/addressbook/assets/remove_contacts.plantuml
delete mode 100644 platforms/android/modules/addressbook/assets/remove_contacts.png
delete mode 100644 platforms/android/modules/addressbook/assets/remove_navigation_fav.plantuml
delete mode 100644 platforms/android/modules/addressbook/assets/remove_navigation_fav.png
delete mode 100644 platforms/android/modules/addressbook/assets/upload_contacts.plantuml
delete mode 100644 platforms/android/modules/addressbook/assets/upload_contacts.png
delete mode 100644 platforms/android/modules/addressbook/assets/upload_navigation_fav.plantuml
delete mode 100644 platforms/android/modules/addressbook/assets/upload_navigation_fav.png
delete mode 100644 platforms/android/modules/addressbook/build.gradle
delete mode 100644 platforms/android/modules/addressbook/src/main/assets/meta-aac/aace-addressbook.json
delete mode 100644 platforms/android/modules/alexa/CMakeLists.txt
delete mode 100644 platforms/android/modules/alexa/README.md
delete mode 100644 platforms/android/modules/alexa/build.gradle
delete mode 100644 platforms/android/modules/alexa/src/main/assets/meta-aac/aace-alexa.json
delete mode 100644 platforms/android/modules/alexa/src/main/java/com/amazon/aace/alexa/PlaybackController.java
delete mode 100644 platforms/android/modules/apl-render/README.md
delete mode 100644 platforms/android/modules/apl-render/build.gradle
delete mode 100644 platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLPresenter.java
delete mode 100644 platforms/android/modules/apl-render/src/main/libs/.gitignore
delete mode 100644 platforms/android/modules/apl/CMakeLists.txt
delete mode 100644 platforms/android/modules/apl/README.md
delete mode 100644 platforms/android/modules/apl/build.gradle
delete mode 100644 platforms/android/modules/apl/src/main/assets/meta-aac/aace-apl.json
delete mode 100644 platforms/android/modules/car-control/CMakeLists.txt
delete mode 100644 platforms/android/modules/car-control/README.md
delete mode 100644 platforms/android/modules/car-control/assets/meta-aac/aace-car-control.json
delete mode 100644 platforms/android/modules/car-control/build.gradle
delete mode 100644 platforms/android/modules/car-control/src/main/assets/meta-aac/aace-car-control.json
delete mode 100644 platforms/android/modules/cbl/CMakeLists.txt
delete mode 100644 platforms/android/modules/cbl/README.md
delete mode 100644 platforms/android/modules/cbl/build.gradle
delete mode 100644 platforms/android/modules/cbl/src/main/assets/meta-aac/aace-cbl.json
delete mode 100644 platforms/android/modules/connectivity/CMakeLists.txt
delete mode 100644 platforms/android/modules/connectivity/README.md
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-CloudAskReport.png
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-CloudAskReport.puml
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-ConnectCloud.png
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-ConnectCloud.puml
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-DeviceDiscovery.png
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-DeviceDiscovery.puml
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-sendConnectivityEvent.png
delete mode 100644 platforms/android/modules/connectivity/assets/Connectivity-Sequence-sendConnectivityEvent.puml
delete mode 100644 platforms/android/modules/connectivity/build.gradle
delete mode 100644 platforms/android/modules/connectivity/src/main/assets/meta-aac/aace-connectivity.json
delete mode 100644 platforms/android/modules/core/CMakeLists.txt
delete mode 100644 platforms/android/modules/core/README.md
delete mode 100644 platforms/android/modules/core/assets/Authorization_cancel.plantuml
delete mode 100644 platforms/android/modules/core/assets/Authorization_cancel.png
delete mode 100644 platforms/android/modules/core/assets/Authorization_logout.plantuml
delete mode 100644 platforms/android/modules/core/assets/Authorization_logout.png
delete mode 100644 platforms/android/modules/core/assets/Authorization_start.plantuml
delete mode 100644 platforms/android/modules/core/assets/Authorization_start.png
delete mode 100644 platforms/android/modules/core/assets/PropertyManager_changed.png
delete mode 100644 platforms/android/modules/core/assets/PropertyManager_get.png
delete mode 100644 platforms/android/modules/core/assets/PropertyManager_set.png
delete mode 100644 platforms/android/modules/core/build.gradle
delete mode 100644 platforms/android/modules/core/src/main/assets/meta-aac/aace-core.json
delete mode 100644 platforms/android/modules/core/src/main/java/com/amazon/aace/network/NetworkProperties.java
delete mode 100644 platforms/android/modules/gradle.properties
delete mode 100644 platforms/android/modules/maccandroid/.classpath
delete mode 100644 platforms/android/modules/maccandroid/build.gradle
delete mode 100644 platforms/android/modules/messaging/CMakeLists.txt
delete mode 100644 platforms/android/modules/messaging/README.md
delete mode 100644 platforms/android/modules/messaging/assets/aac-messaging-reading-messages.png
delete mode 100644 platforms/android/modules/messaging/assets/aac-messaging-reply-message.png
delete mode 100644 platforms/android/modules/messaging/assets/aac-messaging-sending-messages.png
delete mode 100644 platforms/android/modules/messaging/build.gradle
delete mode 100644 platforms/android/modules/messaging/src/main/assets/meta-aac/aace-messaging.json
delete mode 100644 platforms/android/modules/navigation/CMakeLists.txt
delete mode 100644 platforms/android/modules/navigation/README.md
delete mode 100644 platforms/android/modules/navigation/assets/add_waypoint.png
delete mode 100644 platforms/android/modules/navigation/assets/announce_maneuver.png
delete mode 100644 platforms/android/modules/navigation/assets/announce_road_regulation.png
delete mode 100644 platforms/android/modules/navigation/assets/cancel_navigation.png
delete mode 100644 platforms/android/modules/navigation/assets/map_control.png
delete mode 100644 platforms/android/modules/navigation/assets/navigate_previous_waypoint.png
delete mode 100644 platforms/android/modules/navigation/assets/remove_waypoint.png
delete mode 100644 platforms/android/modules/navigation/assets/show_alternate_routes.png
delete mode 100644 platforms/android/modules/navigation/assets/show_previous_waypoint.png
delete mode 100644 platforms/android/modules/navigation/assets/start_navigation.png
delete mode 100644 platforms/android/modules/navigation/build.gradle
delete mode 100644 platforms/android/modules/navigation/src/main/assets/meta-aac/aace-navigation.json
delete mode 100644 platforms/android/modules/phonecontrol/CMakeLists.txt
delete mode 100644 platforms/android/modules/phonecontrol/README.md
delete mode 100644 platforms/android/modules/phonecontrol/build.gradle
delete mode 100644 platforms/android/modules/phonecontrol/src/main/assets/meta-aac/aace-phonecontrol.json
delete mode 100644 platforms/android/modules/phonecontrol/src/main/java/com/amazon/aace/phonecontrol/PhoneCallController.java
delete mode 100644 platforms/android/modules/settings.gradle
delete mode 100644 platforms/android/modules/text-to-speech-provider/README.md
delete mode 100644 platforms/android/modules/text-to-speech-provider/build.gradle
delete mode 100644 platforms/android/modules/text-to-speech-provider/src/main/assets/meta-aac/aace-text-to-speech-provider.json
delete mode 100644 platforms/android/modules/text-to-speech/CMakeLists.txt
delete mode 100644 platforms/android/modules/text-to-speech/README.md
delete mode 100644 platforms/android/modules/text-to-speech/assets/CapabilitiesReceived.plantuml
delete mode 100644 platforms/android/modules/text-to-speech/assets/CapabilitiesReceived.png
delete mode 100644 platforms/android/modules/text-to-speech/assets/GetCapabilities.plantuml
delete mode 100644 platforms/android/modules/text-to-speech/assets/GetCapabilities.png
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeech.plantuml
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeech.png
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeechCompleted.plantuml
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeechCompleted.png
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeechFailed.plantuml
delete mode 100644 platforms/android/modules/text-to-speech/assets/PrepareSpeechFailed.png
delete mode 100644 platforms/android/modules/text-to-speech/build.gradle
delete mode 100644 platforms/android/modules/text-to-speech/src/main/assets/meta-aac/aace-text-to-speech.json
delete mode 100644 samples/android-aacs-sample-app/alexa-auto-app/README.md
delete mode 100644 samples/android-aacs-sample-app/alexa-auto-app/build.gradle
delete mode 100755 samples/android-aacs-sample-app/alexa-auto-app/gradle.properties
delete mode 100644 samples/android-aacs-sample-app/alexa-auto-app/src/main/AndroidManifest.xml
delete mode 100644 samples/android-aacs-sample-app/alexa-auto-app/src/main/assets/config/aacs_config.json
delete mode 100644 samples/android-aacs-sample-app/build.gradle
delete mode 100644 samples/android-aacs-sample-app/settings.gradle
delete mode 100644 samples/android/.gitignore
delete mode 100644 samples/android/README.md
delete mode 100644 samples/android/app/.gitignore
delete mode 100644 samples/android/app/build.gradle
delete mode 100644 samples/android/app/src/androidTest/java/com/amazon/sampleapp/ExampleInstrumentedTest.java
delete mode 100644 samples/android/app/src/main/AndroidManifest.xml
delete mode 100644 samples/android/app/src/main/aidl/com/amazon/alexalve/ILVCClient.aidl
delete mode 100644 samples/android/app/src/main/aidl/com/amazon/alexalve/ILVCService.aidl
delete mode 100644 samples/android/app/src/main/assets/CarControlAssets.json
delete mode 100644 samples/android/app/src/main/assets/Contacts.json
delete mode 100644 samples/android/app/src/main/assets/ConversationsReport.json
delete mode 100644 samples/android/app/src/main/assets/NavigationFavorites.json
delete mode 100644 samples/android/app/src/main/assets/NavigationState.json
delete mode 100644 samples/android/app/src/main/assets/app_config.json
delete mode 100644 samples/android/app/src/main/assets/models/.gitkeep
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/FileUtils.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/LVCInteractionService.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/LimitedSizeArrayList.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/MainActivity.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/NetworkStatsManagerRunner.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/SampleApplication.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/AddressBook/AddressBookHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Alerts/AlertsHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/AlexaClient/AlexaClientHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/AlexaSpeaker/AlexaSpeakerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/AudioFocusController.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/AudioInputHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/AudioInputProviderHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/AudioOutputHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/AudioOutputProviderHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/MediaSourceFactory.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/PlaylistParser.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/RawAudioOutputHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/Releasable.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Audio/UnifiedAudioOutput.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/AudioPlayer/AudioPlayerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Authorization/AuthorizationHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Authorization/CBLAuthorizationHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/CarControl/BoolController.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/CarControl/CarControlDataProvider.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/CarControl/CarControlHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/CarControl/ModeController.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/CarControl/RangeController.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/DeviceSetup/DeviceSetupHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/DeviceUsage/DeviceUsageHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/DoNotDisturb/DoNotDisturbHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/EqualizerController/EQUtils.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/EqualizerController/EqualizerConfiguration.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/EqualizerController/EqualizerControllerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/ExternalMediaPlayer/MACCPlayer.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/AMLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/BluetoothLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/CDLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/DABLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/DefaultMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/FMLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/LineInLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/LocalMediaSourceHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/SatelliteLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/SiriusXMLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocalMediaSource/USBLocalMediaSource.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/LocationProvider/LocationProviderHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Logger/LoggerFragment.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Logger/LoggerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Messaging/MessagingHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Navigation/NavigationHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/NetworkInfoProvider/NetworkConnectionObserver.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/NetworkInfoProvider/NetworkInfoProviderHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/Notifications/NotificationsHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/PhoneCallController/PhoneCallControllerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/PlaybackController/PlaybackControllerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/PropertyManager/PropertyManagerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/SpeechRecognizer/SpeechRecognizerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/SpeechSynthesizer/SpeechSynthesizerHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/TemplateRuntime/TemplateRuntimeHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/impl/TextToSpeech/TextToSpeechHandler.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ConfigureViewHolder.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/DownloadImageTask.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/LogEntry.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/LogRecyclerViewAdapter.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderBodyTemplate1.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderBodyTemplate2.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderCBLCard.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderCBLExpiredCard.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderListTemplate1.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderLocalSearchDetailTemplate1.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderLocalSearchListTemplate1.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderLocalSearchListTemplate2.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderPreviousWaypointsTemplate.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderRenderPlayerInfo.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderStartNavigationTemplate.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderTextLog.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderTrafficDetailsTemplate.java
delete mode 100644 samples/android/app/src/main/java/com/amazon/sampleapp/logView/ViewHolderWeatherTemplate.java
delete mode 100644 samples/android/app/src/main/libs/.gitignore
delete mode 100755 samples/android/app/src/main/res/drawable-hdpi/ic_action_stop.png
delete mode 100644 samples/android/app/src/main/res/drawable-hdpi/ic_action_tap_to_talk.png
delete mode 100755 samples/android/app/src/main/res/drawable-mdpi/ic_action_stop.png
delete mode 100644 samples/android/app/src/main/res/drawable-mdpi/ic_action_tap_to_talk.png
delete mode 100644 samples/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
delete mode 100755 samples/android/app/src/main/res/drawable-xhdpi/ic_action_stop.png
delete mode 100644 samples/android/app/src/main/res/drawable-xhdpi/ic_action_tap_to_talk.png
delete mode 100755 samples/android/app/src/main/res/drawable-xxhdpi/ic_action_stop.png
delete mode 100644 samples/android/app/src/main/res/drawable-xxhdpi/ic_action_tap_to_talk.png
delete mode 100644 samples/android/app/src/main/res/drawable/btn_drawer_default.xml
delete mode 100644 samples/android/app/src/main/res/drawable/btn_drawer_pressed.xml
delete mode 100644 samples/android/app/src/main/res/drawable/btn_drawer_selector.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_next.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_pause.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_play.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_prev.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_skip_backward.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_selector_skip_forward.xml
delete mode 100644 samples/android/app/src/main/res/drawable/control_toggle_play_pause.xml
delete mode 100755 samples/android/app/src/main/res/drawable/ic_chevron_left.png
delete mode 100755 samples/android/app/src/main/res/drawable/ic_chevron_right.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_back_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_back_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_back_enabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_forward_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_forward_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_30sec_forward_enabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_loop_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_loop_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_loop_on.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_next_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_next_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_next_focus.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_pause_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_pause_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_pause_focus.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_play_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_play_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_play_focus.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_prev_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_prev_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_prev_focus.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_repeat_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_repeat_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_repeat_on.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_shuffle_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_shuffle_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_shuffle_on.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_down_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_down_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_down_on.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_up_default.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_up_disabled.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_control_thumb_up_on.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_down_arrow.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_launcher_background.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_menu.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_toggle_loop.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_toggle_repeat.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_toggle_shuffle.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_toggle_thumb_down.xml
delete mode 100644 samples/android/app/src/main/res/drawable/ic_toggle_thumb_up.xml
delete mode 100755 samples/android/app/src/main/res/drawable/ic_undo.png
delete mode 100644 samples/android/app/src/main/res/drawable/ic_up_arrow.png
delete mode 100644 samples/android/app/src/main/res/drawable/linear_layout_horizontal_divider.xml
delete mode 100644 samples/android/app/src/main/res/layout/activity_main.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_body_template1.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_body_template2.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_list_template1.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_list_template1_item_content.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_list_template1_item_index.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_local_search_detail_template1.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_local_search_list_template1.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_local_search_list_template1_item.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_local_search_list_template2.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_local_search_list_template2_item.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_lwa_cbl.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_lwa_cbl_expired.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_previous_waypoints_template.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_render_player_info.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_start_navigation_template.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_traffic_details_template.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_weather_template.xml
delete mode 100644 samples/android/app/src/main/res/layout/card_weather_template_weather_forecast.xml
delete mode 100644 samples/android/app/src/main/res/layout/drawer_switch.xml
delete mode 100644 samples/android/app/src/main/res/layout/drawer_view.xml
delete mode 100644 samples/android/app/src/main/res/layout/eq_band_control.xml
delete mode 100644 samples/android/app/src/main/res/layout/eq_section.xml
delete mode 100644 samples/android/app/src/main/res/layout/log_card_container.xml
delete mode 100644 samples/android/app/src/main/res/layout/log_item.xml
delete mode 100644 samples/android/app/src/main/res/layout/log_view.xml
delete mode 100644 samples/android/app/src/main/res/layout/menu_item_talk.xml
delete mode 100644 samples/android/app/src/main/res/layout/playback_controller.xml
delete mode 100644 samples/android/app/src/main/res/menu/menu_main.xml
delete mode 100644 samples/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
delete mode 100644 samples/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
delete mode 100644 samples/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
delete mode 100644 samples/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
delete mode 100644 samples/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
delete mode 100644 samples/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 samples/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
delete mode 100644 samples/android/app/src/main/res/raw/med_state_bluetooth_connected.mp3
delete mode 100644 samples/android/app/src/main/res/raw/med_state_bluetooth_disconnected.mp3
delete mode 100644 samples/android/app/src/main/res/raw/med_ui_endpointing.wav
delete mode 100644 samples/android/app/src/main/res/raw/med_ui_endpointing_touch.wav
delete mode 100644 samples/android/app/src/main/res/raw/med_ui_wakesound.wav
delete mode 100644 samples/android/app/src/main/res/raw/med_ui_wakesound_touch.wav
delete mode 100644 samples/android/app/src/main/res/values/colors.xml
delete mode 100644 samples/android/app/src/main/res/values/strings.xml
delete mode 100644 samples/android/app/src/main/res/values/styles.xml
delete mode 100644 samples/android/app/src/main/res/xml/network_security_config.xml
delete mode 100644 samples/android/app/src/test/java/com/amazon/sampleapp/ExampleUnitTest.java
delete mode 100644 samples/android/assets/android_api_key_fields.png
delete mode 100644 samples/android/assets/android_sample_add_lwa_lib.png
delete mode 100644 samples/android/assets/capabilities.png
delete mode 100644 samples/android/assets/finished_dialog.png
delete mode 100644 samples/android/build.gradle
delete mode 100644 samples/android/gradle.properties
delete mode 100644 samples/android/gradlew.bat
delete mode 100644 samples/android/modules/sample-apl/.gitignore
delete mode 100644 samples/android/modules/sample-apl/build.gradle
delete mode 100644 samples/android/modules/sample-apl/gradle.properties
delete mode 100644 samples/android/modules/sample-apl/proguard-rules.pro
delete mode 100644 samples/android/modules/sample-apl/settings.gradle
delete mode 100644 samples/android/modules/sample-apl/src/main/AndroidManifest.xml
delete mode 100644 samples/android/modules/sample-apl/src/main/assets/config/APLViewport.json
delete mode 100644 samples/android/modules/sample-apl/src/main/assets/sample-app/sample-apl.json
delete mode 100644 samples/android/modules/sample-apl/src/main/java/com/amazon/sampleapp/apl/APLFragment.java
delete mode 100644 samples/android/modules/sample-apl/src/main/java/com/amazon/sampleapp/apl/APLHandler.java
delete mode 100644 samples/android/modules/sample-apl/src/main/java/com/amazon/sampleapp/apl/APLModuleFactory.java
delete mode 100644 samples/android/modules/sample-apl/src/main/libs/.gitignore
delete mode 100644 samples/android/modules/sample-apl/src/main/res/drawable/customborder.xml
delete mode 100644 samples/android/modules/sample-apl/src/main/res/layout/apl_view.xml
delete mode 100644 samples/android/modules/sample-connectivity/.gitignore
delete mode 100644 samples/android/modules/sample-connectivity/build.gradle
delete mode 100644 samples/android/modules/sample-connectivity/gradle.properties
delete mode 100644 samples/android/modules/sample-connectivity/settings.gradle
delete mode 100644 samples/android/modules/sample-connectivity/src/main/AndroidManifest.xml
delete mode 100644 samples/android/modules/sample-connectivity/src/main/assets/sample-app/sample-connectivity.json
delete mode 100644 samples/android/modules/sample-connectivity/src/main/java/com/amazon/sampleapp/connectivity/AlexaConnectivityHandler.java
delete mode 100644 samples/android/modules/sample-connectivity/src/main/java/com/amazon/sampleapp/connectivity/ConnectivityModuleFactory.java
delete mode 100644 samples/android/modules/sample-connectivity/src/main/libs/.gitignore
delete mode 100644 samples/android/modules/sample-connectivity/src/main/res/layout/connectivity_view.xml
delete mode 100644 samples/android/modules/sample-connectivity/src/main/res/values/colors.xml
delete mode 100644 samples/android/modules/sample-connectivity/src/main/res/values/strings.xml
delete mode 100644 samples/android/modules/sample-core/.gitignore
delete mode 100644 samples/android/modules/sample-core/build.gradle
delete mode 100644 samples/android/modules/sample-core/proguard-rules.pro
delete mode 100644 samples/android/modules/sample-core/src/main/AndroidManifest.xml
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/AuthStateObserver.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/AuthorizationHandlerFactoryInterface.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/AuthorizationHandlerInterface.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/AuthorizationHandlerObserverInterface.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/EngineStatusListener.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/LoggerControllerInterface.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/ModuleFactoryInterface.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/PropertyListener.java
delete mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/SampleAppContext.java
delete mode 100644 samples/android/modules/sample-core/src/main/res/values/strings.xml
delete mode 100644 samples/android/settings.gradle
delete mode 100755 samples/cpp/.gitignore
mode change 100755 => 100644 samples/cpp/CMakeLists.txt
mode change 100755 => 100644 samples/cpp/README.md
delete mode 100644 samples/cpp/SampleApp/CMakeLists.txt
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/AddressBook/AddressBookHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/AlertsHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/AlexaClientHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/AlexaSpeakerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/AudioPlayerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/DeviceSetupHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/DoNotDisturbHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/EqualizerControllerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/GlobalPresetHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/LocalMediaSourceHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/NotificationsHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/PlaybackControllerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/SpeechRecognizerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Alexa/TemplateRuntimeHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Audio/AudioInputProviderHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Audio/AudioOutputProviderHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Authorization/AuthorizationHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/CarControl/CarControlHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Communication/CommunicationHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Connectivity/AlexaConnectivityHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/LocalNavigation/LocalSearchProviderHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Location/LocationProviderHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Logger/LoggerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Messaging/MessagingHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Navigation/NavigationHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/Network/NetworkInfoProviderHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/PhoneControl/PhoneControlHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/PropertyManager/PropertyManagerHandler.h
delete mode 100644 samples/cpp/SampleApp/include/SampleApp/TextToSpeech/TextToSpeechHandler.h
delete mode 100644 samples/cpp/SampleApp/include/gsl/contracts.h
delete mode 100644 samples/cpp/SampleApp/include/nlohmann/.clang-format
delete mode 100644 samples/cpp/SampleApp/include/nlohmann/json.hpp
delete mode 100644 samples/cpp/SampleApp/src/AddressBook/AddressBookHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/AlertsHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/AlexaClientHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/AlexaSpeakerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/AudioPlayerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/DeviceSetupHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/DoNotDisturbHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/EqualizerControllerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/GlobalPresetHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/LocalMediaSourceHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/NotificationsHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/SpeechRecognizerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Alexa/TemplateRuntimeHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Audio/AudioInputProviderHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Audio/AudioOutputProviderHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Authorization/AuthorizationHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/CarControl/CarControlHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Communication/CommunicationHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Connectivity/AlexaConnectivityHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/LocalNavigation/LocalSearchProviderHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Location/LocationProviderHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Logger/LoggerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Navigation/NavigationHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/Network/NetworkInfoProviderHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/PhoneControl/PhoneControlHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/PropertyManager/PropertyManagerHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/TextToSpeech/TextToSpeechHandler.cpp
delete mode 100644 samples/cpp/SampleApp/src/main.cpp
delete mode 100644 samples/cpp/aac-sample-cpp.bb
delete mode 100755 samples/cpp/assets/certs/09789157.0
delete mode 100644 samples/cpp/assets/certs/3513523f.0
delete mode 100755 samples/cpp/assets/certs/6d41d539.0
delete mode 100644 samples/cpp/assets/certs/85cf5865.0
delete mode 100755 samples/cpp/assets/certs/8cb5ee0f.0
delete mode 100755 samples/cpp/assets/certs/b204d74a.0
delete mode 100755 samples/cpp/assets/certs/ce5e74ef.0
delete mode 100755 samples/cpp/assets/certs/de6d66f3.0
delete mode 100755 samples/cpp/assets/certs/f387163d.0
delete mode 100644 samples/cpp/assets/config.json.in
create mode 100644 samples/cpp/assets/config/config.json
rename samples/cpp/assets/{ => menu}/MENU.md (95%)
rename samples/cpp/assets/{ => menu}/menu.json (98%)
delete mode 100755 samples/cpp/cmake/FindSQLite3.cmake
create mode 100644 samples/cpp/cmake/aac-sampleapp.cmake
create mode 100644 samples/cpp/conanfile.py
rename samples/cpp/{SampleApp => }/include/SampleApp/Activity.h (100%)
create mode 100644 samples/cpp/include/SampleApp/AddressBook/AddressBookHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/AlertsHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/AlexaClientHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/AlexaSpeakerHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/AudioPlayerHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/DeviceSetupHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/DoNotDisturbHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/EqualizerControllerHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/LocalMediaSourceHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/MediaPlaybackRequestorHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/NotificationsHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/PlaybackControllerHandler.h
create mode 100644 samples/cpp/include/SampleApp/Alexa/SpeechRecognizerHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/Alexa/SpeechSynthesizerHandler.h (89%)
create mode 100644 samples/cpp/include/SampleApp/Alexa/TemplateRuntimeHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/Application.h (82%)
rename samples/cpp/{SampleApp => }/include/SampleApp/ApplicationContext.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Args.h (100%)
create mode 100644 samples/cpp/include/SampleApp/Audio/AudioInputProviderHandler.h
create mode 100644 samples/cpp/include/SampleApp/Audio/AudioOutputProviderHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/Authorization/AuthProviderAuthorizationHandler.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Authorization/AuthProviderAuthorizationListenerInterface.h (95%)
create mode 100644 samples/cpp/include/SampleApp/Authorization/AuthorizationHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/CarControl/BoolController.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/CarControl/CarControlDataProvider.h (100%)
create mode 100644 samples/cpp/include/SampleApp/CarControl/CarControlHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/CarControl/ModeController.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/CarControl/RangeController.h (100%)
create mode 100644 samples/cpp/include/SampleApp/Communication/AlexaCommsHandler.h
create mode 100644 samples/cpp/include/SampleApp/Connectivity/AlexaConnectivityHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/DCM/DCMHandler.h (78%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Event.h (99%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Executor.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Extension.h (85%)
create mode 100644 samples/cpp/include/SampleApp/LocalNavigation/LocalSearchProviderHandler.h
create mode 100644 samples/cpp/include/SampleApp/Location/LocationProviderHandler.h
create mode 100644 samples/cpp/include/SampleApp/Logger/LoggerHandler.h
create mode 100644 samples/cpp/include/SampleApp/Messaging/MessagingHandler.h
create mode 100644 samples/cpp/include/SampleApp/Navigation/NavigationHandler.h
create mode 100644 samples/cpp/include/SampleApp/Network/NetworkInfoProviderHandler.h
create mode 100644 samples/cpp/include/SampleApp/PhoneControl/PhoneControlHandler.h
create mode 100644 samples/cpp/include/SampleApp/PropertyManager/PropertyManagerHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/Status.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/Subject.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/TTY.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/TaskQueue.h (100%)
rename samples/cpp/{SampleApp => }/include/SampleApp/TaskThread.h (100%)
create mode 100644 samples/cpp/include/SampleApp/TextToSpeech/TextToSpeechHandler.h
rename samples/cpp/{SampleApp => }/include/SampleApp/Views.h (100%)
rename samples/cpp/{SampleApp => }/src/Activity.cpp (100%)
create mode 100644 samples/cpp/src/AddressBook/AddressBookHandler.cpp
create mode 100644 samples/cpp/src/Alexa/AlertsHandler.cpp
create mode 100644 samples/cpp/src/Alexa/AlexaClientHandler.cpp
create mode 100644 samples/cpp/src/Alexa/AlexaSpeakerHandler.cpp
create mode 100644 samples/cpp/src/Alexa/AudioPlayerHandler.cpp
create mode 100644 samples/cpp/src/Alexa/DeviceSetupHandler.cpp
create mode 100644 samples/cpp/src/Alexa/DoNotDisturbHandler.cpp
create mode 100644 samples/cpp/src/Alexa/EqualizerControllerHandler.cpp
create mode 100644 samples/cpp/src/Alexa/LocalMediaSourceHandler.cpp
create mode 100644 samples/cpp/src/Alexa/MediaPlaybackRequestorHandler.cpp
create mode 100644 samples/cpp/src/Alexa/NotificationsHandler.cpp
rename samples/cpp/{SampleApp => }/src/Alexa/PlaybackControllerHandler.cpp (75%)
create mode 100644 samples/cpp/src/Alexa/SpeechRecognizerHandler.cpp
rename samples/cpp/{SampleApp => }/src/Alexa/SpeechSynthesizerHandler.cpp (96%)
create mode 100644 samples/cpp/src/Alexa/TemplateRuntimeHandler.cpp
rename samples/cpp/{SampleApp => }/src/Application.cpp (85%)
rename samples/cpp/{SampleApp => }/src/ApplicationContext.cpp (98%)
create mode 100644 samples/cpp/src/Audio/AudioInputProviderHandler.cpp
create mode 100644 samples/cpp/src/Audio/AudioOutputProviderHandler.cpp
rename samples/cpp/{SampleApp => }/src/Authorization/AuthProviderAuthorizationHandler.cpp (99%)
create mode 100644 samples/cpp/src/Authorization/AuthorizationHandler.cpp
rename samples/cpp/{SampleApp => }/src/CarControl/CarControlDataProvider.cpp (100%)
create mode 100644 samples/cpp/src/CarControl/CarControlHandler.cpp
create mode 100644 samples/cpp/src/Communication/AlexaCommsHandler.cpp
create mode 100644 samples/cpp/src/Connectivity/AlexaConnectivityHandler.cpp
rename samples/cpp/{SampleApp => }/src/DCM/DCMHandler.cpp (75%)
rename samples/cpp/{SampleApp => }/src/Executor.cpp (100%)
rename samples/cpp/{SampleApp => }/src/Extension.cpp (75%)
create mode 100644 samples/cpp/src/LocalNavigation/LocalSearchProviderHandler.cpp
create mode 100644 samples/cpp/src/Location/LocationProviderHandler.cpp
create mode 100644 samples/cpp/src/Logger/LoggerHandler.cpp
rename samples/cpp/{SampleApp => }/src/Messaging/MessagingHandler.cpp (85%)
create mode 100644 samples/cpp/src/Navigation/NavigationHandler.cpp
create mode 100644 samples/cpp/src/Network/NetworkInfoProviderHandler.cpp
create mode 100644 samples/cpp/src/PhoneControl/PhoneControlHandler.cpp
create mode 100644 samples/cpp/src/PropertyManager/PropertyManagerHandler.cpp
rename samples/cpp/{SampleApp => }/src/TaskQueue.cpp (100%)
rename samples/cpp/{SampleApp => }/src/TaskThread.cpp (100%)
create mode 100644 samples/cpp/src/TextToSpeech/TextToSpeechHandler.cpp
rename samples/cpp/{SampleApp => }/src/Views.cpp (99%)
create mode 100644 samples/cpp/src/main.cpp
create mode 100644 tools/aac-tool-a2ml/conanfile.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/a2ml/generator.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/a2ml/parser.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/a2ml/templates/interface.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/generator.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/templates/enum.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/templates/footer.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/templates/header.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/templates/message.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/aasb/templates/struct.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/markdown/generator.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/markdown/templates/interface.tmpl
create mode 100644 tools/aac-tool-a2ml/src/A2ML/model.py
create mode 100644 tools/aac-tool-a2ml/src/A2ML/processor.py
create mode 100755 tools/aac-tool-a2ml/src/a2ml.py
diff --git a/.gitignore b/.gitignore
index 1c0e6289f..b58132f9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@
/build
# CLion build folder
/cmake-build-*
-/extras
+/extensions/*/**
compile_commands.json
tools/builder
+__pycache__
diff --git a/BUILDING.md b/BUILDING.md
new file mode 100644
index 000000000..50e0e4167
--- /dev/null
+++ b/BUILDING.md
@@ -0,0 +1,730 @@
+# Build Alexa Auto SDK
+
+## Supported platforms and architectures
+
+Auto SDK can be built for the following supported target platforms and hardware architectures:
+
+* Android 5.1 Lollipop API Level 22 or higher.
+ * ARM 64-bit
+ * x86 64-bit
+* QNX 7.0
+ * ARM 64-bit
+ * x86 64-bit
+* Generic Linux
+ * x86 64-bit
+* Poky Linux
+ * ARMv7a (+NEON)
+ * AArch64
+* macOS
+ * x86 64-bit
+
+## General build requirements
+
+You can build the Alexa Auto SDK natively on a Linux or macOS host, or you can use Docker. For specific information about Docker, see [Build in a Docker container](#build-in-a-docker-container).
+
+The following list describes the supported host configurations:
+
+* Operating system:
+ * macOS Sierra
+ * Ubuntu 18.04 LTS (Bionic) or Ubuntu 20.04 LTS (Focal)
+* Processor: 2.5 GHz
+* Memory: 16 Gb
+* Storage: 1 Gb+ available to use
+
+## Build dependencies
+
+To build Auto SDK, you must install the following dependencies on your host machine:
+
+### General
+
+- [Python 3.7](https://www.python.org/downloads)
+- [Conan 1.33](https://conan.io/downloads.html)
+- [CMake 3.12](https://cmake.org/install)
+
+### Linux
+
+- GCC
+- GStreamer (see [Install GStreamer](#install-gstreamer))
+
+### macOS
+
+- Xcode
+
+## Understand the build system
+
+Building software for multiple platforms can be complex because specific toolchains might vary depending on the build system and target platform. In general, there are two flavors of builds: native and cross-compiled. In a native build, the build system uses its own toolchain and libraries to build the software, so the compiled software can run on the platform that built it. In cross-compilation, the build system typically uses an installed toolchain to compile the software for a different target platform. It's possible that more than one toolchain is installed on a system, so extra steps are typically needed to cross-compile to those targets. Auto SDK uses [Conan](https://conan.io), along with other tools and scripts described in this section, to manage the complexities required to implement a complete build system.
+
+### Conan
+
+The Auto SDK build system uses Conan as its underlying package manager and build configuration tool. For every Conan package, there is a recipe that defines the dependencies of the package and specifies how to download and build the package source code. After building a package, Conan copies the binaries and other artifacts into a cache directory so other recipes that depend on that package can use the prebuilt binaries without rebuilding them. When a Conan recipe defines a dependency, Conan finds and builds the dependency as required, taking care of complexities such as transitive requirements, package version conflicts, and managing multiple versions of a package built with different configurations.
+
+Before using a package, Conan must export or download the package into the local cache. When a package recipe exists in the same local repository as the source code it builds, as is the case when you download Auto SDK, you must run `conan create` or `conan export` before other recipes can build the package. Community servers such as [Conan Center](https://conan.io/center) host some popular third party libraries, however, so Conan automatically downloads them to the local cache as needed. Auto SDK requires a combination of Conan packages including local recipes for Auto SDK modules and tools, local recipes for third party packages, and third party packages hosted on the Conan Center server.
+
+Once Conan copies a package into the local cache, a recipe can build or consume the package based on the specified build configuration. Conan will build a new package version if the package version is required and missing from the cache. For example, if you build Auto SDK for Linux, Conan will build all of the required packages for the specified Linux target. If you then build for an Android target, Conan will rebuild all of the required packages for the Android target and cache both the Linux and Android versions. In addition to target platform, any option or setting that you specify when building a recipe affects the package version.
+
+#### Auto SDK modules
+
+Auto SDK includes a base Conan recipe class that all Auto SDK modules extend. This is defined in `conan/recipes/aac-sdk-tools`, and must be exported before other modules since it is required by each module's recipe definition. The base recipe defines common build options, and relies on specific conventions in the module's directory structure to find source files and headers, and to generate other artifacts that are needed at build time. A simple Conan recipe is required for each module to override abstract values in the base class (such as the module name), and to define any module specific dependencies or options that are required. A module can also define it's own CMake files, unique configuration, or even custom build steps as needed.
+
+For each module, the base recipe defines common options that are used to specify which components are included in the library. The default values provided in the base recipe should be used in most cases when you are building release libraries for production. For some cases, however, you may want to enabled features such as `with_sensitive_logs` or `with_unit_tests`, to add additional information when debugging issues with the libraries. To find out which options are defined for a specific module, you can use the `conan inspect` command to display information about any Conan recipe. This command will display all of options and default values for a recipe, including any options that are inherited from the base module recipe. See the [Specify build settings and options](#specify-build-settings-and-options) section in this guide, for more information.
+
+Applications integrate with Auto SDK using the MessageBroker API, by publishing and subscribing to specific message topics and actions (see [Using the MessageBroker API](./modules/core/README.md)). Most modules provide interfaces that require these messages to be defined, in which case they will include one or more message definition files in the `aasb/messages` directory of the module. The model created by the message definitions are used when building Auto SDK to generate message headers that are required to build the module, and are also used to create documentation for each message interface.
+
+#### Third party dependencies
+
+Auto SDK has dependencies on several third party packages (libraries and build tools for example), which may themselves have dependencies on other packages. In general, managing these types of build requirements can be very complex for a large project. Conan helps by providing community hosted recipes for many common packages, as well as by allowing developers to create there own package recipes. It is important to understand that some of the packages used by Auto SDK are pulled from the Conan Center remote server, while others are defined locally in the `conan/recipes` directory of Auto SDK. Local recipes are typically required when the package does not already exist on Conan Center, or there are specific patches or changes to the recipe that are needed for Auto SDK.
+
+### Builder Tool
+
+The Builder Tool is a script that can be used to build Auto SDK libraries for supported platforms. It improves the build process by wrapping underlying Conan commands and options with a simple command line interface. Although it is possible to use Conan by itself to build Auto SDK - see the [Build with Conan directly](#build-with-conan-directly) section of this guide, it is recommended to use the Builder Tool for common build tasks.
+
+### Alexa Auto Client Service
+
+Alexa Auto Client Service (AACS) is an Android service library that simplifies the process of integrating Auto SDK on Android-based devices. AACS has a dependency on Auto SDK native Android libraries, but can be built independently using standard Android development tools. For more information about building AACS, see the [Building AACS with AACS Sample App](./aacs/android/sample-app/README.md#building-the-aacs-sample-app-using-aacs-aar) section of the [Alexa Auto Client Service](./aacs/android/README.md) guide.
+
+## Build with Builder Tool
+
+The Builder Tool script, `build.py` is located in the `builder` directory of the SDK. It wraps underlying Conan commands, and simplifies building libraries for Auto SDK modules on supported platforms. Individual modules, components, and dependencies in the SDK are described as packages in the builder. Each package has a corresponding Conan recipe that is used to build and deploy the package to the cache located in the builder's home directory. An archive containing all of the specified build artifacts is created from the cache, and written to the `deploy` directory of the builder, after the build has completed. This section descibes the most common commands used to build Auto SDK. For a complete reference to the Builder Tool command line interface, see [Builder Tool command reference](./builder/README.md).
+
+Auto SDK currently supports native builds for Ubuntu Linux (x86_64) and MacOS, and building for each platform follows the same steps. After cloning the Auto SDK git repository on your system, the following examples should be run with `aac-sdk` as the working directory.
+
+The following command will build all of the modules that are included in the Auto SDK repository, along with any dependencies that are required for the target platform:
+
+```shell
+$ ./builder/build.py
+```
+
+When you run the build command, the builder tool will export and configure any new build artifacts, such as package recipes or configuration files, that are discovered in the search path. The first time you run (or after cleaning the build cache), you'll see several log messages indicating that the build recipes are being exported to the local cache:
+
+```shell
+[BUILDER] INFO: Python version: 3.7.3
+[BUILDER] INFO: Cleaning cached builder data
+[BUILDER] INFO: Builder home: ../aac-sdk/builder/.builder
+[BUILDER] INFO: Conan home: ../aac-sdk/builder/.builder/.conan
+[BUILDER] INFO: Gradle home: ../aac-sdk/builder/.builder/.gradle
+[BUILDER] INFO: Configuring Conan...
+[BUILDER] INFO: Installing Conan configuration: ../aac-sdk/conan/config
+[BUILDER] INFO: Exporting recipe: aac-sdk-tools
+[BUILDER] INFO: Exporting recipe: aac-module-core
+[BUILDER] INFO: Exporting recipe: aac-module-alexa
+[BUILDER] INFO: Exporting recipe: aac-module-cbl
+[BUILDER] INFO: Exporting recipe: android-sdk-tools
+[BUILDER] INFO: Exporting recipe: avs-device-sdk
+...
+```
+
+The builder keeps track of which recipes have already been added to the cache, so that the next time you run the build command only new recipes will be exported. It is possible, however, to tell the builder to force re-exporting a recipe (using the `-f` or `--force` option), and build it if necessary. The following command will force all Auto SDK module recipes to be re-exported:
+
+```shell
+$ ./builder/build.py -f "aac-module-*"
+```
+
+To explicitly force one or more recipes to be exported, you can specify the name of the module (or explicit package name) that you want. The following example will force the builder to re-export and build only the `alexa` and `cbl` modules.
+
+```shell
+$ ./builder/build.py -f alexa cbl
+```
+
+Each time the builder is run, it will also attempt to re-configure Conan settings by initializing the Conan configuration and installing any config files found in the search path. This happens every time because it is possible, using Docker for example, to re-use the Conan home path when building with a different build system configuration. This step ensures that the Conan configuration will match the build system currently being used. In the case that you want to skip the configuration step for some reason (maybe you have overridden configuration settings in the Conan home manually), you can tell the builder to skip the configuration step using the `--skip-config` option:
+
+```shell
+$ ./builder/build.py --skip-config
+```
+
+### Specify the build target
+
+Auto SDK can be cross-compiled for supported target systems by specifying the platform and architecture with the build command. Android and QNX targets can be built on either Linux or macOS, and Poky must be built using Linux. For information about specific build target requirements, see the [Platform-specific build information](#platform-specific-build-information) section of this guide. To set the target platform using the Builder Tool, specify the `--platform,-p ` option when doing a build:
+
+```shell
+$ ./builder/build.py -p android
+```
+
+You can also set the target architecture by specifying the `--arch,-a ` option:
+
+```shell
+$ ./builder/build.py -p android -a x86_64
+```
+
+The following table defines the supported platforms and architectures.
+
+|platform |arch |
+|---------|---------------------------|
+|android |armv8, x86_64 |
+|qnx |armv8, x86_64 |
+|poky |armv8, armv7hf, x86_64, x86|
+
+### Specify which modules to build
+
+If you are using a subset of modules in Auto SDK, you can specify which modules to build on the command line using the `-m` or `--modules` option followed by a list of modules names. Dependent modules and libraries will be included transitively when specifying which modules to build. The following example will build the `core`, `alexa`, and `cbl` modules, and package them into the output archive:
+
+```shell
+$ ./builder/build.py -m core alexa cbl
+```
+
+You can verify which modules were specified in the build by looking at the `[requires]` section or `pkg_modules` option value in the `aac-buildinfo.txt` file:
+
+```
+[requires]
+ aac-module-alexa/dev
+ aac-module-cbl/dev
+ aac-module-core/dev
+
+[options]
+ ...
+ pkg_modules=aac-module-core/dev,aac-module-alexa/dev,aac-module-cbl/dev
+```
+
+You could also build the same modules by specifying the following on the command line:
+
+```shell
+$ ./builder/build.py -m cbl
+```
+
+This works because the `cbl` module depends on the `alexa` module, which depends on the `core` module - so even though they are not specified on the command line, `core` and `alexa` are transitively included. The `aac-buildinfo.txt` file will only show the `cbl` module under the `[requires]` section, however, the full list of included dependencies can be found under the `[full_requires]` section in the build info:
+
+```
+[full_requires]
+ aac-module-alexa/dev:1de4d8ddd6d19b16b05d95052195f9556361e7b5
+ aac-module-cbl/dev:8b2bd324ad68ca44682ed4ed11f0845ef8df1a5c
+ aac-module-core/dev:fe4587e72f3350cdb9dab53b293dfee0d5575a0a
+ ...
+```
+
+### Clean build artifacts
+
+Conan caches binaries and artifacts for each package after it is built, so they can be used as dependencies by other packages without having to be re-built each time. If you make changes to the source code in the SDK, however, you must either explicitly force the builder to re-export and build the package (using the `--force,-f ` option of the builder), or remove the package entirely from the cache. To remove packages from the cache using the Builder Tool, you can use the `clean` command:
+
+```shell
+$ ./builder/build.py clean
+```
+
+You must specify the package name or regex-style pattern to clean. For example, to remove all of the packages from the cache, you can use the following command:
+
+```shell
+$ ./builder/build.py clean "*"
+```
+
+To remove a specific module, you can either specify the package name or just the module's name:
+
+```shell
+$ ./builder/build.py clean alexa
+```
+
+Since the convention used by Auto SDK is to specify the module's package name as `aac-module-`, you can also use the full package name as part of the pattern. One way to remove all Auto SDK modules from the cache would be to use the following command:
+
+```shell
+$ ./builder/build.py clean "aac-module-*"
+```
+
+If a package has been removed from the cache, the Builder Tool will automatically detect that it needs to be re-exported and built the next time you do a build, and it is not necessary to specify the package using the `--force` option.
+
+### Build debug libraries
+
+Building debug libraries for Auto SDK can be specified by using the `--debug` or `-g` option when doing a build:
+
+```shell
+$ ./builder/build.py -g
+```
+
+When this option is used, debug libraries for all of the Auto SDK modules and dependencies will be built if required, and exported to the build archive. If you want more specific control over which debug libraries to use, you can specify the `build_type` option as a Conan setting instead, using the `--conan-setting,-s =` build option. For example, to use debug libraries only for Auto SDK modules, you can use the following build command:
+
+```shell
+$ ./builder/build.py -s "aac-module-*":build_type=Debug
+```
+
+This is a less common use case, however, that requires you to be familiar with some of the underlying Conan build architecture. To learn more about some of the Conan specific options for building Auto SDK, see the [Build with Conan directly](#build-with-conan-directly) section of this guide.
+
+
+### Locate the build output
+
+When you run the builder tool, all of the shared libraries and dependencies will be saved in an archive file in the `builder/deploy` directory by default. The name of the archive file is displayed in the console when the build is completed:
+
+```shell
+[BUILDER] INFO: Created output archive: ../aac-dev-macos_x86_64-release-210706140415.tgz
+```
+
+The default name of the archive indicates the following information that is used to build the SDK:
+
+```
+aac--_--.tgz
+```
+
+Sometimes it is helpful to tag a build with an identifier, for example, if you want to indicate a build was made for a specific purpose. If you want to add an additional identifier to the archive name, you can use `--name` option when running the build tool:
+
+```shell
+$ ./builder/build.py --name test
+...
+[BUILDER] INFO: Created output archive: ../aac-dev-test-macos_x86_64-release-210706142403.tgz
+```
+
+It is also possible to completely override the output file name and path by specifying the `-o` or `--output` option on the command line:
+
+```shell
+$ ./builder/build.py --output /mypath/custom-output.tgz
+...
+[BUILDER] INFO: Created output archive: /mypath/custom-output.tgz
+```
+
+If you don't want the builder to generate an output archive at all, you can specify the `--no-output` option on the command line. This is helpful if you just want to re-build one or more module, for example, to run unit tests or inspect the package libraries:
+
+```shell
+$ ./builder/build.py --no-output
+```
+
+#### Archive contents
+
+The output archive created by the Builder Tool includes all of the build artifacts from the modules and dependencies specified by the build command. You can extract the archive with the following command (the exact filename will be slightly different for your build):
+
+```shell
+$ tar -xvzf builder/deploy/aac-dev-linux_x86_64-release.tgz
+```
+
+After you can extract the contents of the archive, there should be a directory with contents similar to the following file structure:
+
+```
+aac-dev-linux_x86_64-release/
+ ├─ docs/
+ ├─ include/
+ ├─ lib/
+ | ├─ libAACECore.so
+ | └─ ...
+ ├─ share/
+ └─ aac-buildinfo.txt
+```
+
+You can get additional information about the archive contents from a description file in the archive named `aac-buildinfo.txt`. The build description file can be used to identify which modules, settings, and options were used to generate the libraries by the build. The following is an example of the information found in the build description file:
+
+```
+[settings]
+ arch=x86_64
+ build_type=Release
+ compiler=apple-clang
+ compiler.libcxx=libc++
+ compiler.version=11.0
+ os=Macos
+
+[requires]
+ aac-module-aasb/dev
+ aac-module-address-book/dev
+ aac-module-alexa/dev
+ aac-module-car-control/dev
+ aac-module-cbl/dev
+ aac-module-connectivity/dev
+ aac-module-core/dev
+ aac-module-messaging/dev
+ aac-module-navigation/dev
+ aac-module-phone-control/dev
+ aac-module-text-to-speech/dev
+
+[options]
+ aac_version=dev
+ with_sensitive_logs=False
+ pkg_modules=aac-module-aasb/dev,aac-module-address-book/dev,aac-module-alexa/dev,...
+ with_aasb=False
+
+[full_settings]
+ arch=x86_64
+ build_type=Release
+ compiler=apple-clang
+ compiler.libcxx=libc++
+ compiler.version=11.0
+ os=Macos
+
+[full_requires]
+ aac-module-aasb/dev:4990d7e4c95bbcae311c6d13cb0e71a09ecd2f43
+ aac-module-address-book/dev:8b2bd324ad68ca44682ed4ed11f0845ef8df1a5c
+ aac-module-alexa/dev:1de4d8ddd6d19b16b05d95052195f9556361e7b5
+ ...
+```
+
+## Build with Conan directly
+
+Conan can be used directly to build Auto SDK components and other package dependencies, or to use Auto SDK libraries in other Conan recipes. It's helpful to have a good general understanding of how Conan works first, and also to understand the basic Auto SDK build system. The examples in this section should be run with `aac-sdk` as the working directory.
+
+### Export Conan recipes
+
+The following script will find all of the Conan recipes in Auto SDK and export them to the local cache. Package binaries won't actually be built until they are required by another recipe during a build operation, or explicitly built by running the `conan create` command. This is a convenience script and is not required if you want to export or create packages individually.
+
+```shell
+$ ./conan/setup.py
+```
+
+If you want to export a single package individually, you can run the `conan export` command. For example, to export the alexa module to the local cache:
+
+```shell
+$ conan export modules/alexa
+```
+
+It is important to understand that exporting a module using the `conan export` command does not automatically find and export any of the dependent packages specified in the recipe. Attempting to build the alexa module would fail, unless all of the requirements can be resolved in the local cache. Running the `conan/setup.py` script is usually the safest option to ensure all required packages are copied to the cache, however, exporting a package individually can save time after you make changes, if you have previously exported all of the packages.
+
+### Build modules
+
+In most cases it shouldn't be necessary to manually build Auto SDK modules, since Conan can build missing dependencies when required by another recipe. It is possible, however, to create/build a package independently using Conan if needed. The following example shows how to create the Alexa module package from the command line:
+
+```shell
+$ conan create modules/alexa --build missing
+```
+
+The `conan create` command tells conan to create a new binary package from a recipe file and install it in the local cache. In the example above, `modules/alexa` refers to the parent directory in Auto SDK (`aac-sdk/modules/alexa`), where the `conanfile.py` recipe is located for the Alexa module.
+
+By specifying the `--build missing` option, Conan will automatically build dependencies where a binary package is missing for the specified build configuration. If the dependency has already been created it will not be built again.
+
+Using the `--build` flag without any additional options will force all of the dependencies to be rebuilt, even if the binary for the specified configuration already exists.
+
+### Specify build settings and options
+
+When you build a Conan package, you can specify settings and options that result in different binaries when the source code is built. Conan `settings` are project-wide configurations, such as `os`, `compiler`, `build_type`, and `arch`. These settings should be applied to each package when selecting the correct binary. Most of the time, settings will be applied based on the selected (or default) profile. To view or modify a profile, you can use the `conan profile` command. To show the default profile values, you can enter the following command:
+
+```shell
+$ conan profile show default
+
+Configuration for profile default:
+
+[settings]
+os=Macos
+os_build=Macos
+arch=x86_64
+arch_build=x86_64
+compiler=apple-clang
+compiler.version=11.0
+compiler.libcxx=libc++
+build_type=Release
+[options]
+[build_requires]
+[env]
+```
+
+You usually don't need to change settings specified in the profile, but if needed, you can override any setting value when running a Conan command. For example, to build a debug version of the alexa module, you can add `-s build_type=Debug` to the `conan create` command:
+
+```shell
+$ conan create modules/alexa -b missing -s build_type=Debug
+```
+
+Individual packages can also define `options` which are specific to it's own build requirements. One common option that most packages define is `shared`, which is used to build either the static or dynamic library. Options can also be used to specify conditional features which should be included in the build, for example, `libcurl` defines an option called `with_nghttp2` to specify that the build should include support for `http2`.
+
+#### Inspect package recipes
+
+To see which options a recipe has defined, you can use the `conan inspect` command:
+
+```shell
+$ conan inspect modules/alexa/conanfile.py
+
+name: aac-module-alexa
+version: dev
+url: https://github.com/alexa/alexa-auto-sdk
+homepage: None
+license: Apache-2.0
+author: None
+description: Auto SDK module: alexa
+topics: None
+generators: cmake
+exports: None
+exports_sources: *
+short_paths: False
+apply_env: True
+build_policy: None
+revision_mode: hash
+settings: ('os', 'compiler', 'build_type', 'arch')
+options:
+ message_version: ANY
+ shared: [True, False]
+ with_aasb: [True, False]
+ with_address_sanitizer: [True, False]
+ with_android_libs: [True, False]
+ with_coverage_tests: [True, False]
+ with_docs: [True, False]
+ with_engine: [True, False]
+ with_jni: [True, False]
+ with_latency_logs: [True, False]
+ with_messages: [True, False]
+ with_platform: [True, False]
+ with_sensitive_logs: [True, False]
+ with_unit_tests: [True, False]
+default_options:
+ message_version: 4.0
+ shared: True
+ with_aasb: True
+ with_address_sanitizer: False
+ with_android_libs: True
+ with_coverage_tests: False
+ with_docs: True
+ with_engine: True
+ with_jni: True
+ with_latency_logs: False
+ with_messages: True
+ with_platform: True
+ with_sensitive_logs: False
+ with_unit_tests: False
+deprecated: None
+```
+
+This command shows different attributes of the package, including its `options` and the default values for each option specified in `default_options`. To override a default option when building a package, you can add `-o [option]=[value]`. If you want to override an option for a specific package, then you can specify the package name as well, `-o [pkg]:[option]=[value]`. For example, to build and run unit tests for the alexa module, you can add `-o with_unit_tests=True` to the `conan create` command:
+
+```shell
+$ conan create modules/alexa -b missing -o with_unit_tests=True
+```
+
+### Remove packages from the cache
+
+Packages can be removed from the local cache if needed by using the `conan remove` command. For example, the following command can be used to remove the alexa module from the cache:
+
+```shell
+$ conan remove aac-module-alexa -f
+```
+
+The `-f` option is used to remove the package without confirmation. To remove all Auto SDK modules from the cache, you can specify the following pattern `aac-module-*` in place of a package name, or specify `*` to remove all packages:
+
+```shell
+$ conan remove "aac-module-*" -f
+$ conan remove "*"
+```
+
+> **Note:** when specifying a wildcard in the package name, you must surround the pattern with quotes.
+
+### Use Auto SDK in other recipes
+
+If you have your own project that uses Conan, to build an application or library for example, you can include Auto SDK packages in the requirements section of your Conan recipe. The following example shows how you can include Auto SDK modules that are built on the same development machine, in a `conanfile.txt` recipe:
+
+```
+[requires]
+aac-module-core/dev
+aac-module-alexa/dev
+aac-module-cbl/dev
+aac-module-system-audio/dev
+...
+```
+
+When you build your package, as long as the Auto SDK packages have been exported to the local cache, Conan will include the specified modules when building your project. It is important to note the convention used by Auto SDK, where all module packages are named `aac-module-`, and the default package version when building locally will be `dev` unless overridden at build time.
+
+You can add Auto SDK modules as a requirement to `conanfile.py` recipes as well, by specifying them using the `requires` attribute in the recipe:
+
+```python
+class ConanRecipe(ConanFile):
+ requires =
+ ["aac-module-core/dev","aac-module-alexa","aac-module-cbl/dev","aac-module-system-audio/dev"]
+ ...
+```
+
+## Platform-specific build information
+
+### Android
+
+Android can be cross-compiled on either MacOS or Linux, using the NDK toolchain build requirement specified in the `aac-android` profile. To build Android compatible binaries with the Builder Tool, simply use the `--platform` or `-p` option to specify the `android` platform.
+
+```shell
+$ ./builder/build.py -p android
+```
+
+By default the android configuration used to build the SDK is defined in the `aac-android` Conan profile:
+
+```
+[settings]
+os=Android
+os.api_level=26
+arch=armv8
+build_type=Release
+compiler=clang
+compiler.libcxx=libc++
+compiler.version=8
+
+[build_requires]
+android-sdk-tools/4.0@aac-sdk/stable
+```
+
+You can override default target architecture to build either the `armv8`, or `x86_64` version of the binaries by specifying the `--arch` or `-a` option on the command line:
+
+```shell
+$ ./builder/build.py -p android --arch=x86_64
+```
+
+> The first time you build Auto SDK for Android, the Android SDK must be downloaded and installed. This is handled by the `android-sdk-tools` recipe in Auto SDK when you build, however, several license agreements must be manually accepted before any of the Android tools can be used. These agreements will need to be accepted anytime you change the builder home directory, or clean the builder cache as well. You can optionally accept all of the license agreements by specifying `-y` or `--accept-licenses` when running the builder from the command line.
+
+If you are using Conan directly to build Auto SDK libraries, you must specify the `--profile:host,-pr:b` and `--profile:build,-pr:b` options as part of the build command. In this case for Android, you would specify `aac-android` as the host (target) profile in your build command, in addition to explicitly specifying `default` as the build profile:
+
+
+```shell
+$ conan create modules/alexa -pr:h aac-android -pr:b default -b missing
+```
+
+You can override any setting for the target platform on the command line, for example, to build the `x86_64` version of the Android libraries you can specify `-s:h arch=x86_64` as an option:
+
+```shell
+$ conan create modules/alexa -pr:h aac-android -pr:b default -b missing -s:h arch=x86_64
+```
+
+### Ubuntu
+
+Building Auto SDK for Linux on Ubuntu requires installing some additional dependencies, such as GStreamer if you are using the `system-audio` module.
+
+#### Install GStreamer
+
+The `system-audio` module uses GStreamer to implement the core audio interfaces, and must be installed prior to building. The following command will install the dependencies required to build with GStreamer:
+
+```shell
+$ apt install -y \
+ pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
+ libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base \
+ gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
+ gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \
+ gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl \
+ gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
+```
+
+#### Update the default Conan profile
+
+You might run into an issue on Ubuntu where Conan does not detect the default `libstdc++11` setting properly, so it is recommended to check this when setting up your host environment. You can run the following command to update the default Conan profile to use the `libstdc++11` compiler option:
+
+```shell
+$ conan profile new default --detect
+$ conan profile update settings.compiler.libcxx=libstdc++11 default
+```
+
+### Poky
+
+Poky can be cross compiled on Linux using the host Poky SDK toolchain. To build Poky compatible binaries with the Builder Tool, simple use the `--platform` or `-p` option to specify the `poky` platform.
+
+```shell
+$ ./builder/build.py -p poky
+```
+
+By default the poky configuration used to build the Auto SDK is defined in the aac-poky Conan profile:
+
+```
+[settings]
+compiler.version=8.2
+arch=armv7hf
+build_type=Release
+os=Linux
+compiler.libcxx=libstdc++11
+
+[build_requires]
+poky-sdk/2.6.1
+```
+
+You can override default target architecture to build either the `armv7hf`, or `armv8` version of the binaries by specifying the `--arch` or `-a` option on the command line:
+
+```shell
+$ ./builder/build.py -p poky --arch=armv8
+```
+
+> The first time you build Auto SDK for Poky, the Poky SDK must be downloaded and installed. This is handled by the `poky-sdk` recipe in Auto SDK when you build, however, several license agreements must be manually accepted before the Poky SDK can be used. These agreements will need to be accepted anytime you change the builder home directory, or clean the builder cache as well. You can optionally accept all of the license agreements by specifying `-y` or `--accept-licenses` when running the builder from the command line.
+
+If you are using Conan directly to build Auto SDK libraries, you must specify the `--profile:host,-pr:h` and `--profile:build,-pr:b` options as part of the build command. In this case for Poky, you would specify `aac-poky` as the host (target) profile in your build command, in addition to explicitly specifying default as the build profile:
+
+```shell
+$ conan create modules/alexa -pr:h aac-poky -pr:b default -b missing
+```
+
+You can override any setting for the target platform on the command line, for example, to build the `armv8` version of the Poky libraries you can specify `-s:h arch=armv8` as an option:
+
+```shell
+$ conan create modules/alexa -pr:h aac-poky -pr:h default -b missing -s:h arch=armv8
+```
+
+### QNX
+
+QNX can be cross compiled on Linux or MacOS using the host QNX SDP tools. To build QNX, you must install the [QNX 7.0 SDP](http://blackberry.qnx.com/en/sdp7/sdp70_download) on your host as a prerequisite. To build QNX compatible binaries with the Builder Tool, simply use the `--platform` or `-p` option to specify the `qnx` platform:
+
+```shell
+$ ./builder/build.py -p qnx
+```
+
+By default the QNX configuration used to build the Alexa Auto SDK is defined in the `aac-qnx` Conan profile:
+
+```
+[settings]
+os=Neutrino
+os.version=7.0
+arch=armv8
+compiler=qcc
+compiler.version=5.4
+compiler.libcxx=cxx
+compiler.cppstd=None
+
+[build_requires]
+qnx-cross-compiling/7.0.0
+[options]
+[env]
+```
+
+You can override default target architecture to build either the `armv8`, or `x86_64` version of the binaries by specifying the `--arch` or `-a` option on the command line:
+
+```shell
+$ ./builder/build.py -p qnx --arch=x86_64
+```
+
+The Conan recipe assumes that the QNX SDP is installed in your home director: `~/qnx700`, but you can override this by setting the `qnx7sdp_path` option using the `--conan-option` or `-o` argument on the command line:
+
+```shell
+$ ./builder/build.py -p qnx -o qnx7-sdp:qnx7sdp_path=/path/to/qnx7sdp
+```
+
+### macOS
+
+macOS can be used as a build host for cross-compiled Android and QNX targets, as well and target for native development and testing.
+
+#### GStreamer build issue
+
+There is a known issue where building GStreamer can fail due to a conflict with `openEXR` on macOS. This may be an issue if you are seeing the following type of errors in your build output:
+
+```shell
+In file included from ../source_subfolder/ext/openexr/gstopenexrdec.cpp:30:
+In file included from /usr/local/include/OpenEXR/ImfRgbaFile.h:23:
+In file included from /usr/local/include/OpenEXR/ImfHeader.h:22:
+In file included from /usr/local/include/Imath/ImathVec.h:17:
+/usr/local/include/Imath/ImathMath.h:152:36: error: expected ';' at end of declaration
+equalWithAbsError (T x1, T x2, T e) IMATH_NOEXCEPT
+ ^
+```
+
+Uninstalling `openEXR` has been reported to solve the problem:
+
+```shell
+$ brew uninstall --ignore-dependencies openEXR
+```
+
+### Windows
+
+> Windows is not currently supported as a build host or target.
+
+## Build in a Docker container
+
+You can use Docker for native Linux builds, or any cross-compiler target that is supported with Linux, as long as the Docker container has the required build dependencies installed. For convenience, you can use the `aac-ubuntu-bionic` or `aac-ubuntu-focal` containers provided in the `conan/docker` directory of the SDK. The following commands should be run with `aac-sdk` as the working directory.
+
+Create the `aac-ubuntu-bionic` docker image:
+
+```shell
+$ docker build -t aac/ubuntu-bionic conan/docker/aac-ubuntu-bionic
+```
+
+Build Auto SDK using the Builder Tool:
+
+```shell
+$ docker run -it -v$(pwd):/home/conan/aac-sdk --rm \
+ aac/ubuntu-bionic /bin/bash -c "aac-sdk/builder/build.py"
+```
+
+The option `-v$(pwd):/home/conan/aac-sdk` specifies that we want to mount the current directory on the host machine (which should be the Auto SDK root), to `/home/conan/aac-sdk` in the Docker container file system. After starting the container, you will be able to build Auto SDK using Conan with the same commands used on your host machine.
+
+When the build is complete, the output archive file will be saved to the mounted `aac-sdk/builder/deploy` directory of your host machine. If you inspect `aac-buildinfo.txt` in the archive, you should see that the libraries were built for `os=Linux, arch=x86_64`:
+
+```
+[settings]
+ arch=x86_64
+ build_type=Release
+ compiler=gcc
+ compiler.libcxx=libstdc++11
+ compiler.version=7
+ os=Linux
+```
+
+### Optimize build performance
+
+When you build Auto SDK using a Docker container it can take much longer to build than it would natively on your host computer. This is because the Builder Tool home directory is specified as `aac-sdk/builder` by default, which is a directory on the host file system. File operations in general are much slower when running on a mounted volume, so this will impact the build performance. One option is to specify a different home directory on the container's volume when running the build command instead. This will greatly improve the build time, however, you should be aware that when you remove the container the cached build artifacts may be lost. The Builder Tool will still write the output archive to `aac-sdk/builder/deploy` on the mounted volume by default, even if the home directory is changed.
+
+The following example shows how you can set the home directory using the `--home` option, when doing a build using Docker:
+
+```shell
+$ docker run -it -v$(pwd):/home/conan/aac-sdk --rm \
+ aac/ubuntu-bionic /bin/bash -c "aac-sdk/builder/build.py --home /home/conan"
+```
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4a9d7a00c..adfaaf23e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,19 +1,180 @@
# Change Log
___
+
+## v4.0.0 released on 2021-12-15
+
+### Enhancements
+
+* Deprecated the C++ and Java platform interfaces in favor of an asynchronous message-based API. Auto SDK client applications use the new `MessageBroker` to publish and subscribe to Alexa Auto Services Bridge (AASB) messages. The C++ sample app is refactored to use the new API to provide a reference implementation for Linux platforms. The Alexa Auto Client Service (AACS) sample app provides the reference implementation for Android platforms. See the [Auto SDK Migration Guide](./MIGRATION.md) for help migrating your application to use the new API.
+
+* Enhanced the Auto SDK build system with the Conan package manager. The new build system introduces modular builds, better dependency management, and simpler build artifacts. The Auto SDK build system includes the Auto SDK Builder Tool script, which wraps the Conan build commands with a simple interface similar to the previous version of Auto SDK Builder. See the [Build Alexa Auto SDK documentation](./BUILDING.md) for details about the build system and the [Migration Guide](./MIGRATION.md) for help migrating your build to the new version of Builder Tool.
+
+* Extended the features of Alexa Presentation Language (APL) support for automotive. The `APL` module provides messages to report vehicle properties such as the display theme, driving state, and ambient light conditions. The property settings affect how APL documents render on screen; for example, some APL content is automatically hidden when the vehicle starts moving, and the display contrast updates with the day or night mode setting. Auto SDK 4.0 supports APL 1.9. For more information about the Auto SDK `APL` interface, see the [APL module documentation.](./modules/apl/README.md)
+
+* Added the `CustomDomain` interface, which establishes a bidirectional communication channel between your Auto SDK client application and your custom cloud skill. `CustomDomain` includes messages for exchanging directives, events, and context between the vehicle and your skill, achieving a fully customizable experience. For more information about the Auto SDK `CustomDomain` interface, See the [Custom Domain module documentation.](./modules/custom-domain/README.md)
+
+* Added the `MediaPlaybackRequestor` interface, which enables Alexa to play the user’s favorite media content as soon as they start their vehicle. `MediaPlaybackRequestor` simplifies content selection for the user by removing the need for the user to use buttons or voice commands to resume the Alexa media content that was playing when they stopped the vehicle. For more information about the Auto SDK `MediaPlaybackRequestor` interface, See the [Alexa module documentation.](./modules/alexa/README.md)
+
+* Extended the `AudioOutput` interface and added configuration to allow ducking Alexa media. Your application can use this feature for enhanced control of Alexa content audio focus according to your platform requirements. For more information about audio ducking, see the [Core module documentation.](./modules/core/README.md)
+
+* Updated the Auto SDK to use AVS Device SDK Version 1.25.0. For information about this version of AVS Device SDK, see the [AVS Device SDK release notes.](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/release-notes.html#version-1250)
+
+* Added LVC support for Alexa Custom Assistant specialized handoffs. You can configure the default fallback and self-introduction prompts for your custom assistant while offline. For more information, see the `Alexa Custom Assistant` extension documentation.
+
+* Integrated the Auto SDK Conan build system enhancements to AACS and the AACS sample app. You can use a single Gradle command to build AACS and the AACS sample app. For build instructions, see the [AACS documentation.](./aacs/android/README.md)
+
+* Added the following enhancements to the AACS sample app:
+
+ * **Additional languages—** The AACS sample app supports the following languages: *US English* (`en-US`), *Australian English* (`en-AU`), *Canadian English* (`en-CA`), *Indian English* (`en-IN`), *British English* (`en-GB`), *German* (d`e-DE`), *Spanish* (`es-ES`), *Mexican Spanish* (`es-MX`), *US Spanish* (`es-US`), *French* (`fr-FR`), *Canadian French* (`fr-CA`), *Hindi* (`hi-IN`), *Italian* (`it-IT`), *Japanese* (`ja-JP`), and *Brazilian Portuguese* (`pr-BR`).
+
+ The sample app language setting matches the device’s system language setting and syncs the with Alexa as long as the setting is in the supported language list. If Alexa does not support the system language, the sample app GUI defaults to en-US and presents a list of languages for the user to choose from. Once the user selects the language override, the system language does not sync with the sample app again until the user logs out or disables Alexa.
+
+ * **Network error prompts—** You can configure the sample app to provide feedback to the user when Alexa cannot respond due internet connection issues. The feedback is a voice prompt or an error screen depending on the user action.
+
+ * **Alexa app assets—** The sample app can show Alexa logos (assets) on the setup screen and display cards instead of showing placeholder assets.
+
+ * **Comms UI improvements—** Updated the contacts uploading logic in the `Comms UI` AACS app component to ensure the sample app only uploads the contacts for the primary phone.
+
+* Updated the AACS Telephony library to get the outgoing phone account using the Android standard API `getDefaultOutgoingPhoneAccount`. AACS Telephony no longer sends an account query intent when receiving the `PhoneCallController.Dial` message from the Auto SDK Engine.
+
+* Added a new intent `com.amazon.aacstelephony.bluetooth.connectionCheckCompleted`, which AACS Telephony service broadcasts when it finishes the initial bluetooth connection check.
+
+* Updated the `alexa-auto-lwa-auth` app component to use the `Authorization` Auto SDK interface for CBL authorization.
+
+### Other changes
+
+* Moved several source code directories within the `aac-sdk` root directory to support the enhanced build system.
+
+ * Removed `aac-sdk/platforms/android/`. The deprecated Java platform interfaces and JNI are in their respective modules. For example, the Alexa module Java interfaces and JNI are moved from `aac-sdk/platforms/android/modules/alexa/` to `aac-sdk/modules/alexa/android/`
+
+ * Removed `aac-sdk/extensions/aasb/` because using AASB messages with MessageBroker is the primary Auto SDK API. AASB code for each module is in the respective module directory. For example, the AASB code for the Alexa module is in `aac-sdk/modules/alexa/aasb/`. Note that the AASB message headers to include in your application are not in this directory since they are generated as part of the Auto SDK build output.
+
+ * Moved `aac-sdk/extensions/system-audio/` to `aac-sdk/modules/system-audio/`
+
+ * Moved `aac-sdk/extensions/bluetooth/` to `aac-sdk/modules/bluetooth/`
+
+ * Moved `aac-sdk/extensions/loopback-detector/` to `aac-sdk/modules/loopback-detector/`
+
+ * Moved `aac-sdk/platforms/android/alexa-auto-client-service/` to `aac-sdk/aacs/android/`
+
+ * Moved `aac-sdk/platforms/android/alexa-auto-client-service/app-components/` to `aac-sdk/aacs/android/app-components/`
+
+ * Moved `aac-sdk/samples/android-aacs-sample-app/` to `aac-sdk/aacs/android/sample-app/`
+
+ * Moved `aac-sdk/platforms/android/alexa-auto-client-service` `/commonutils/` , `/ipc/`, and `/constants/` to `aac-sdk/aacs/android/common/`
+
+ * Moved AACS media player files to a directory `audioOutput` within `aac-sdk/platforms/android/alexa-auto-client-service/service/`
+
+ * Moved the Media App Command and Control Android library from `aac-sdk/platforms/android/maccandroid/` to `aac-sdk/aacs/android/service/modules/maccandroid/`
+
+* In the LVC extension, the `LocalSearchProvider` AASB messages now have topic `LocalNavigation`. For example, the existing message `LocalSearchProvider.SearchRequest` in 3.3 is `LocalNavigation.SearchRequest` in 4.0. The next major release version of Auto SDK will change the topic back to `LocalSearchProvider`.
+
+* Deprecated the option to build AACS as an APK. Starting from Auto SDK 4.0, you can only build AACS as an AAR.
+
+* Removed the Android sample app based on the Java platform interfaces. The AACS sample app demonstrates using Auto SDK on Android.
+
+### Resolved issues
+
+* Fixed an issue preventing the generic `DEFAULT` type `LocalMediaSource` from working in offline mode with LVC.
+
+* Fixed a race condition in `SpeechRecognizer` in which enabling wake word detection immediately after calling `startCapture()` resulted in a missing call to `stopAudioInput()` when wake word detection was later disabled.
+
+* Fixed a deadlock that could occur in an application that uses the deprecated `AuthProvider` interface and starts, stops, and restarts the Engine in quick succession.
+
+* Fixed an issue in which Spotify playback commands were delayed on QNX.
+
+* Fixed an issue in which the Engine added malformed `PhoneCallController` context to `PhoneCallController` events sent to Alexa.
+
+* Fixed an issue in which AACS did not acquire audio focus prior to playing Alexa speech.
+
+### Known issues
+
+**General**
+
+* If you do not specify the `deviceSettings.locales` field of the Alexa module configuration, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"].
+ The Engine does not automatically declare support for default locale combinations if you assign an empty value to the `locales` field.
+
+* The Engine does not persist the `aace.alexa.wakewordEnabled` Engine property setting across device reboots. Your application has to persist the setting and set the property again at each Engine start. AACS implements persisting this property and hence does not have this issue.
+
+* If your Linux platform does not use AVX2 instructions, the Amazonlite wake word library initialization causes an illegal instruction error.
+
+* When using LVC and stopping the Engine, the `AlexaClient` connection status remains `CONNECTED` because the connection to LVC is not disabled. Your application should not accept user utterances while the Engine is stopped despite the connection status showing `CONNECTED`.
+
+* The [Alexa Automotive UX guidelines](https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.alexa.templateRuntimeCapabilityAgent` Engine configuration. However, the configuration does not provide enough granularity to specify timeouts for different types of display cards. Consequently, there is no way for your application to configure automatically dismissing local search templates (e.g., `LocalSearchListTemplate2`) with a different timeout than other templates (e.g., `WeatherTemplate`). The configuration also does not provide a way for you to specify infinite timeout for `NowPlaying` cards. You must implement your application’s dismissal logic for display cards and media info accordingly.
+
+* When the user requests to view their list of timers on an APL-enabled application, they cannot use an utterance such as “Alexa, scroll up” to scroll through the list shown on the APL card.
+
+* There is a rare race condition in which publishing the `AlexaClient.StopForegroundActivity` message does not cancel the active Alexa interaction. The race condition can happen when the application publishes the message at the beginning of the `THINKING` state `AlexaClient.DialogStateChanged` transition.
+
+* On the Poky Linux 32-bit platform, the C++ sample app shuts down with an error on launch.
+
+* In offline mode with LVC, you might not see the `AlexaClient.DialogStateChanged` `THINKING` state transition if the user invokes Alexa with hold-to-talk and your application provides the audio input data in one large chunk.
+
+* In offline mode with LVC, Alexa gets stuck in the `THINKING` state and does not respond after changing the locale setting. The state recovers after a few minutes.
+
+* The `CBL` module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the Engine attempts the refresh, it might take up to a minute to refresh the token after the internet connection is restored.
+
+* Some `Core` module messages published by the Engine do not have a corresponding message for the application to report a handling failure. For example, if the user invokes Alexa by tap-to-talk, and the application cannot handle the `AudioInput.StartAudioInput` message, the Engine assumes the application handled the message properly and will provide audio data. As a result, the Engine state and application state might become out of sync. The affected messages are the following:
+ * `AudioInput`:
+ * `StartAudioInput`
+ * `AudioOutput`:
+ * `SetPosition`
+ * `VolumeChanged`
+ * `MutedStateChanged`
+
+**Car control**
+
+* If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in the set from Alexa. For example, after you configure set A with endpoints 1, 2, and 3, if you change your car control configuration during development to set B with endpoints 2, 3, and 4, Alexa retains endpoint 1 from set A, which might interfere with resolving the correct endpoint ID for your utterances. However, any endpoint configurations with matching IDs override previous configurations. For example, the configuration of endpoint 2 in set B replaces endpoint 2 in set A. During development, limit configuration changes to create only supersets of previous endpoint configurations. Work with your Solutions Architect or Partner Manager to produce the correct configuration on the first try.
+
+**Communications**
+
+* Alexa does not understand DTMF utterances that include letters. For example, "press A" and "dial 3*#B" do not result in the correct DTMF directives.
+
+* The user might experience unexpected results by trying to dial or place calls in the following ways:
+ * Using utterances that include “double”, “triple”, “hundred”, or “thousand.” For example, calling a number such as 1-800-xxx-xxxx by saying “Alexa call one eight *double oh*...”
+ * Pressing special characters such has “#” or “*” by saying "Alexa press * #."
+
+* The user cannot accept or reject incoming Alexa-to-Alexa calls by voice while playing a skill with extended multi-turn dialogs, such as Jeopardy or Skyrim.
+
+**Entertainment**
+
+* If the user requests Alexa to read notifications while music is playing, they might hear the music play for a split second between the end of one notification and the start of the next.
+
+* When an external media player authorization is in progress during Engine shutdown, a rare race condition might cause the Engine to crash.
+
+* If your application cancels an Alexa interaction by sending the `AlexaClient.StopForegroundActivity` message to the Engine during music playback, the Engine might erroneously request your application to dismiss the` NowPlaying` media info by publishing the `TemplateRuntime.ClearPlayerInfo` message. Your application should not dismiss the media info in this scenario.
+
+* When using the `System Audio` module, Audible and Amazon music might not play correctly on i.MX8 boards.
+
+**Local search and navigation**
+
+* In offline mode with LVC, after the user requests a list of POIs with an utterance such as “Alexa, find a nearby Starbucks”, Alexa does not recognize followup requests such as "Alexa, select the first one" and does not display or read detailed information about the requested selection.
+
+**AACS**
+
+* If you do not use the default audio output implementation (i.e., your application handles `AudioOutput` AASB messages), your application will not receive the `AudioOutput.Stop` message if Alexa media is playing when AACS shuts down. As a workaround, your application can listen to `AASB.StopService` or adopt `AACSPinger` to listen to the `STOPPED` state of AACS and stop the media accordingly.
+
+**AACS Sample App**
+
+* The AACS Sample App does not show the language selection screen when the app is built with Preview Mode.
+
+* The AACS Sample App only shows the language selection screen if there is a language mismatch with the system language setting at the first app launch.
+
+
## v3.3.0 released on 2021-09-30
### Enhancements
-* Added the `DeviceUsage` platform interface to provide the Alexa application network usage data to the Auto SDK Engine. The Auto SDK Engine emits this data as a metric to Amazon if Auto SDK is built with the `Device Client Metrics` extension. For more information, see the Core module README for [C++](./modules/core/README.md#providing-network-usage-data-to-auto-sdk) or [Android](./platforms/android/modules/core/README.md#providing-network-usage-data-to-auto-sdk).
+* Added the `DeviceUsage` platform interface to provide the Alexa application network usage data to the Auto SDK Engine. The Auto SDK Engine emits this data as a metric to Amazon if Auto SDK is built with the `Device Client Metrics` extension. For more information, see the Core module README for [C++](./modules/core/README.md#providing-network-usage-data-to-auto-sdk) or [Android](./aacs/android/app-components/alexa-auto-device-usage/README.md).
* Extended the features of the `Local Navigation` module for the `Local Voice Control (LVC)` extension. The `LocalSearchProvider` platform interface now enables you to provide customers with offline navigation to street addresses, cities, and neighborhoods in addition to the existing support for local search and navigation to points of interest. See the Local Navigation module README for information about integrating the features.
>**Note:** There are updates to the `LocalSearchProvider` APIs. See the [Migration Guide](./MIGRATION.md) for details.
-* Added a new generic `DEFAULT` media source to the list of sources supported by the `LocalMediaSource` platform interface. The DEFAULT source can be used for voice playback control of any arbitrary media sources on the infotainment system outside of deep-linked MACC applications using the `ExternalMediaAdapter` interface and existing sources supported by name through the `LocalMediaSource` interface. For details about integrating a default media source, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md).
+* Added a new generic `DEFAULT` media source to the list of sources supported by the `LocalMediaSource` platform interface. The DEFAULT source can be used for voice playback control of any arbitrary media sources on the infotainment system outside of deep-linked MACC applications using the `ExternalMediaAdapter` interface and existing sources supported by name through the `LocalMediaSource` interface. For details about integrating a default media source, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](https://github.com/alexa/alexa-auto-sdk/blob/3.3/platforms/android/modules/alexa/README.md).
* Added offline LVC support for tuning to station names on terrestrial radio and SiriusXM. E.g., “Play CNN on Sirius XM” and “Play KISS FM”. This feature is already available in online mode.
* Enhancements for AACS:
- * Added an app component called `alexa-auto-carcontrol` that deeply integrates Auto SDK car control features into the Android Automotive OS. For more information about AACS deep integration to Car Control, please refer to this [README](./platforms/android/app-components/alexa-auto-carcontrol/README.md).
+ * Added an app component called `alexa-auto-carcontrol` that deeply integrates Auto SDK car control features into the Android Automotive OS. For more information about AACS deep integration to Car Control, please refer to this [README](https://github.com/alexa/alexa-auto-sdk/blob/3.3/platforms/android/app-components/alexa-auto-carcontrol/README.md).
* Added an enhancement in which AACS can automatically sync Alexa’s timezone and locale properties with the device system settings when you set the `syncSystemPropertyChange` field to true in your AACS configuration file. If you set the field to false or omit it, you still have flexibility to change the properties in your own implementation.
@@ -174,7 +335,7 @@ Fixed an issue in which wake words cannot be detected correctly when using the `
## v3.2.0 released on 2021-05-19
### Enhancements
-* Added the `DeviceSetup` platform interface that handles events and directives related to device setup during or after an out-of-the-box experience (OOBE). After the user login, Alexa is informed that device setup is complete and starts the on-boarding experience, for example, by starting a short first-time conversation. For more information, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md).
+* Added the `DeviceSetup` platform interface that handles events and directives related to device setup during or after an out-of-the-box experience (OOBE). After the user login, Alexa is informed that device setup is complete and starts the on-boarding experience, for example, by starting a short first-time conversation. For more information, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](https://github.com/alexa/alexa-auto-sdk/blob/3.3/platforms/android/modules/alexa/README.md).
* Added support in the Connectivity module to provide the network identifier from the vehicle to Alexa, which enables automakers to offer full connectivity plans to customers. For connectivity status, the module supports sending the version of the terms and conditions through a field called `termsVersion`. Also, the `termsStatus` field accepts `DEFERRED`, which means Alexa can remind users to respond to the terms and conditions at a later time.
@@ -197,7 +358,7 @@ Fixed an issue in which wake words cannot be detected correctly when using the `
* Enhancements for AACS:
- * Added AACS instrumentation, which enables you to better understand the interactions between your application and AACS. Through instrumentation, you log Alexa Auto Service Bridge (AASB) messages to a file, which you can review for debugging purposes. For information about AACS instrumentation, see the [README](./platforms/android/alexa-auto-client-service/android-service/service/src/debug/java/com/amazon/alexaautoclientservice/README.md).
+ * Added AACS instrumentation, which enables you to better understand the interactions between your application and AACS. Through instrumentation, you log Alexa Auto Service Bridge (AASB) messages to a file, which you can review for debugging purposes. For information about AACS instrumentation, see the [README](./aacs/android/README.md).
* Added an app component called `alexa-auto-telephony`, which enables you to pre-integrate Alexa Phone Call Controller functionalities with Android Telephony.
@@ -205,7 +366,7 @@ Fixed an issue in which wake words cannot be detected correctly when using the `
* Added the AACS AAR, which you can include in your application.
- * The timeout for AASB synchronous messages is now configurable. For information about configuring the timeout, see the [README](./platforms/android/alexa-auto-client-service/android-service/README.md#auto-sdk-modules).
+ * The timeout for AASB synchronous messages is now configurable. For information about configuring the timeout, see the [README](./aacs/android/service/README.md#auto-sdk-modules).
* Enhancements for AACS Sample App:
@@ -231,7 +392,7 @@ Fixed an issue in which wake words cannot be detected correctly when using the `
* Improved the Auto SDK Voice Chrome extension to allow the height and width of the linear voice chrome to be controlled by the parent layout. Previously, the dimensions were fixed.
### Resolved Issues
-* Disabled APL by default in AACS to make sure utterances like "tell me a joke" work correctly without handling APL. If your platform wants to implement APL, see the AACS [Configuration README](./platforms/android/alexa-auto-client-service/android-service/README.md#aacs-module-enablement) to enable it.
+* Disabled APL by default in AACS to make sure utterances like "tell me a joke" work correctly without handling APL. If your platform wants to implement APL, see the AACS [Configuration README](./aacs/android/service/README.md#aacs-module-enablement) to enable it.
* An SMS message can be sent to an Alexa contact correctly. A user request to send an SMS message to an Alexa contact no longer results in an Alexa-to-Alexa message.
@@ -322,7 +483,7 @@ Therefore, if the current device locale is different from the default locale, yo
>**Note:** Offline search with the Local Navigation module is only supported in the en-US locale.
-* Added the Alexa Auto Client Service (AACS) Sample App that demonstrates how an application uses AACS. The Auto SDK includes the app components used by the AACS Sample App, which you can also use when developing an application that communicates with AACS. For information about the AACS Sample App, see the [README](./samples/android-aacs-sample-app/alexa-auto-app/README.md).
+* Added the Alexa Auto Client Service (AACS) Sample App that demonstrates how an application uses AACS. The Auto SDK includes the app components used by the AACS Sample App, which you can also use when developing an application that communicates with AACS. For information about the AACS Sample App, see the [README](./aacs/android/sample-app/README.md).
* Added support for Digital Audio Broadcasting (DAB) radio. For more information about the DAB local media source, see the [Alexa module README](./modules/alexa/README.md).
* Enhancements for AACS:
@@ -331,13 +492,13 @@ Therefore, if the current device locale is different from the default locale, yo
* Added support for the Android `ContentProvider` class, which is a standard Android mechanism for performing CRUD (Create, Read, Update, Delete) operations on stored data. By extending this class, you can use a content provider, instead of AACS messages, to manage Auto SDK properties and retrieve state information.
- For information about how AACS uses `FileProvider` and `ContentProvider`, see the [README](./platforms/android/alexa-auto-client-service/README.md).
+ For information about how AACS uses `FileProvider` and `ContentProvider`, see the [README](./aacs/android/service/README.md).
- * Added support for a `ping` broadcast to check the AACS connection state. For more information about how to use `ping`, see the [README](./platforms/android/alexa-auto-client-service/README.md).
+ * Added support for a `ping` broadcast to check the AACS connection state. For more information about how to use `ping`, see the [README](./aacs/android/service/README.md).
- * Added support for caching AASB message intent targets based on AASB Action. This enables you to define an intent filter with a subset of the possible actions for an AASB topic. For more information on specifying intent targets, see the [README](./platforms/android/alexa-auto-client-service/README.md#specifying-the-intent-targets-for-handling-messages).
+ * Added support for caching AASB message intent targets based on AASB Action. This enables you to define an intent filter with a subset of the possible actions for an AASB topic. For more information on specifying intent targets, see the [README](./aacs/android/README.md#specifying-the-intent-targets-for-handling-messages).
- * Added support for Text-to-Speech Service, which allows Android applications to interact with Android TTS APIs to convert text to speech. For information about the Text-to-Speech Service, see the [README](./platforms/android/alexa-auto-client-service/tts/README.md).
+ * Added support for Text-to-Speech Service, which allows Android applications to interact with Android TTS APIs to convert text to speech. For information about the Text-to-Speech Service, see the [README](./aacs/android/app-components/alexa-auto-tts/README.md).
### Resolved Issues
@@ -407,7 +568,7 @@ Therefore, if the current device locale is different from the default locale, yo
* `setPosition(int64_t position)`
* `volumeChanged(float volume)`
* `mutedStateChanged(MutedState state)`
- * AACS enables APL by default, but it does not have a default implementation for APL. AACS expects the client application to handle the messages or directives from the Engine. If APL is not handled on the client side, utterances that trigger APL capabilities, such as "tell me a joke," fail. To disable APL, add the lines below to the AACS configuration file. See "Configuring the AASB Interface Handlers" in the [AASB README](./extensions/aasb/README.md) for more details.
+ * AACS enables APL by default, but it does not have a default implementation for APL. AACS expects the client application to handle the messages or directives from the Engine. If APL is not handled on the client side, utterances that trigger APL capabilities, such as "tell me a joke," fail. To disable APL, add the lines below to the AACS configuration [file](./aacs/android/sample-app/alexa-auto-app/src/main/assets/config/aacs_config.json).
~~~
"aasb.apl": {
@@ -423,7 +584,7 @@ Starting with v3.1.0, the Local Voice Control (LVC) extension is no longer suppo
## v3.0.0 released on 2020-10-09
### Enhancements
-* Added Alexa Auto Client Service (AACS), which enables OEMs of Android-based devices to simplify the process of integrating the Auto SDK. For more information about AACS, see the AACS [README](./platforms/android/alexa-auto-client-service/README.md).
+* Added Alexa Auto Client Service (AACS), which enables OEMs of Android-based devices to simplify the process of integrating the Auto SDK. For more information about AACS, see the AACS [README](https://github.com/alexa/alexa-auto-sdk/blob/3.0/platforms/android/alexa-auto-client-service/README.md).
* Added support for removing local media sources at runtime, such as a USB drive or a Bluetooth device. Previously, if a user removed a USB drive and then requested to play music from the USB drive, the Auto SDK would attempt to play and not return an appropriate error message. This feature is enabled with an existing field in the `LocalMediaSource` platform interface state. For information about the platform interface state, see the `alexa` module [README](./modules/alexa/README.md).
@@ -573,7 +734,7 @@ Starting with Auto SDK v3.0, we no longer support the Automotive Grade Linux (AG
* Added a Car Control module to support online-only car control use cases without the optional Local Voice Control (LVC) extension. The Car Control module provides the car control functionality introduced in Auto SDK 2.0.0 but does not require the LVC extension.
* Made various enhancements to the External Media Player (EMP) Adapter to improve EMP behavior and facilitate implementation of Alexa audio focus.
* Introduced the Property Manager, a new platform interface that allows you to set and retrieve Engine property values and be notified of property value changes.
-* Added support for setting the timezone of a vehicle. The [AlexaProperties.h](./modules/alexa/platform/include/AACE/Alexa/AlexaProperties.h) and [AlexaProperties.java](./platforms/android/modules/alexa/src/main/java/com/amazon/aace/alexa/AlexaProperties.java) files now include a `TIMEZONE` property setting that is registered with the Property Manager during initialization and which you can manage using the Property Manager platform interface.
+* Added support for setting the timezone of a vehicle. The [AlexaProperties.h](./modules/alexa/platform/include/AACE/Alexa/AlexaProperties.h) and [AlexaProperties.java](./modules/alexa/android/src/main/java/com/amazon/aace/alexa/AlexaProperties.java) files now include a `TIMEZONE` property setting that is registered with the Property Manager during initialization and which you can manage using the Property Manager platform interface.
* Added support for specifying a custom volume range for voice interactions in implementations that use the optional Local Voice Control (LVC) extension.
* Separated the LVC language models into independent APKs rather than providing them directly in the LVC APK as was done in previous releases. One language model APK is provided for each supported locale (currently en-US, en-CA, and fr-CA).
@@ -584,7 +745,7 @@ Starting with Auto SDK v3.0, we no longer support the Automotive Grade Linux (AG
* Fixed an issue where the Engine might hang during shutdown if it was shut down while TTS was being played or read.
* Fixed an issue where Auto SDK initialization failed at startup when applications using the optional LVC extension didn't register a NetworkInfoProvider platform interface.
* Fixed an issue where building the Auto SDK with sensitive logging enabled was not working as expected.
-* Added alerts error enums (`DELETED` and `SCHEDULED_FOR_LATER`) to the [`Alerts.h`](./modules/alexa/platform/include/AACE/Alexa/Alerts.h) and [`Alerts.java`](./platforms/android/modules/alexa/src/main/java/com/amazon/aace/alexa/Alerts.java) files.
+* Added alerts error enums (`DELETED` and `SCHEDULED_FOR_LATER`) to the [`Alerts.h`](./modules/alexa/platform/include/AACE/Alexa/Alerts.h) and [`Alerts.java`](./modules/alexa/android/src/main/java/com/amazon/aace/alexa/Alerts.java) files.
* With the exception of road regulation and maneuver events, the Alexa cloud no longer returns an `INVALID_REQUEST_EXCEPTION` or `INTERNAL_SERVICE_EXCEPTION` in response to navigation events sent by the Auto SDK.
* Alexa now prompts or notifies the clients and rejects the ping packet when the user deregisters from the companion app.
@@ -680,7 +841,7 @@ Starting with Auto SDK v3.0, we no longer support the Automotive Grade Linux (AG
>**Note:** In order to make use of this functionality, you must register the Navigation platform interface for Geolocation support.
* **Enhanced the builder scripts** to simplify the build process by removing unnecessary options and including the default components for different targets. For details see the [Builder README](builder/README.md).
-* **Refactored the Java Native Interface (JNI) code** used for Android platform interfaces for more modular deployment. In place of a single AAR including all Auto SDK native libraries, the Alexa Auto SDK now generates multiple AARs (one per module). Please see the [builder README](./builder/README.md) and the [Android Sample App README](./samples/android/README.md) for details.
+* **Refactored the Java Native Interface (JNI) code** used for Android platform interfaces for more modular deployment. In place of a single AAR including all Auto SDK native libraries, the Alexa Auto SDK now generates multiple AARs (one per module). Please see the [builder README](./builder/README.md) and the [Android Sample App README](https://github.com/alexa/alexa-auto-sdk/blob/2.0/samples/android/README.md) for details.
### Resolved Issues
* Fixed an issue where music streaming from online music service providers continued to play when the user switched to a local media source.
@@ -773,7 +934,7 @@ All known issues from v1.6.0.
### Enhancements
* Added a C++ sample application to demonstrate use cases that the Alexa Auto SDK supports. Read more about the C++ Sample App [here](./samples/cpp/README.md).
-* Released the code for the AGL Alexa Voice Agent, a binding for Automotive Grade Linux powered by Alexa Auto SDK v1.5. The software is shipped as a standard AGL binding that exposes an API for speech recognition using the Alexa Voice Service. Please refer to the [AGL Alexa Voice Agent documentation](./platforms/agl/alexa-voiceagent-service/README.md) for instructions to build, install, and test the binding on an R-Car M3 board.
+* Released the code for the AGL Alexa Voice Agent, a binding for Automotive Grade Linux powered by Alexa Auto SDK v1.5. The software is shipped as a standard AGL binding that exposes an API for speech recognition using the Alexa Voice Service. Please refer to the [AGL Alexa Voice Agent documentation](https://github.com/alexa/alexa-auto-sdk/blob/1.5/platforms/agl/alexa-voiceagent-service/README.md) for instructions to build, install, and test the binding on an R-Car M3 board.
* Added support for runtime selection of the AmazonLite wake word locale. The AmazonLite locale will automatically switch when the AVS locale is switched.
* Added support for optionally logging and uploading Alexa Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and UPL between the request and Alexa’s response. Please contact your SA or Partner Manager for details or to request this package for Android.
* Added support for an optional platform interface `EqualizerController`. The Equalizer Controller enables Alexa voice control of device audio equalizer settings by making gain adjustments to three frequency bands (“BASS”, “MIDRANGE”, and/or “TREBLE”).
@@ -847,9 +1008,9 @@ All known issues from v1.3.0.
### Enhancements
* Android 8 and ARM v8a platform support.
-* Making calls to contacts from a locally-paired mobile phone as long as the Alexa Auto SDK has a valid auth token. Read more about [Contact Uploader API](./modules/contact-uploader/README.md).
+* Making calls to contacts from a locally-paired mobile phone as long as the Alexa Auto SDK has a valid auth token. Read more about [Contact Uploader API](https://github.com/alexa/alexa-auto-sdk/blob/1.3/modules/contact-uploader/README.md).
* Redial, answer, terminate, and decline calls using voice. End users can also send dual-tone multi-frequency (DTMF) via voice to interact with Interactive Voice Responders (IVRs). Read more here [Phone Call Controller](./modules/phone-control/README.md).
-* Switching to local media sources, generic controls and deep linking into 3rd party media applications compatible with the Amazon Media App Command and Control (MACC) specification using the External Media Player Interface 1.1. This allows customers to switch between a CD player, AM/FM player, and auxiliary input that is MACC-compliant. Read more here [Handling External Media Adapter with MACCAndroidClient](./platforms/android/modules/alexa/README.md).
+* Switching to local media sources, generic controls and deep linking into 3rd party media applications compatible with the Amazon Media App Command and Control (MACC) specification using the External Media Player Interface 1.1. This allows customers to switch between a CD player, AM/FM player, and auxiliary input that is MACC-compliant. Read more here [Handling External Media Adapter with MACCAndroidClient](./modules/alexa/README.md).
* Enhancement for 3rd party wake word engine to enable cloud based verification.
* Provides a way to override Template Runtime display card timeout values for RenderTemplate and RenderPlayerInfo by updating the [templateRuntimeCapabilityAgent Engine configuration](https://alexa.github.io/alexa-auto-sdk/modules/core/#configuring-the-engine) values.
@@ -973,7 +1134,7 @@ There are no known issues in this release.
* The Engine doesn't immediately reconnect to AVS when the **`NetworkInfoProvider`** updates network status.
* Some shared memory objects are not freed when the Engine object is disposed.
-Sample App issues are documented in the [Sample App README](./samples/android/README.md).
+Sample App issues are documented in the [Sample App README](https://github.com/alexa/alexa-auto-sdk/blob/1.0/samples/android/README.md).
## v1.0.0 Beta released on 2018-04-29:
diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index 4ce7e3a91..000000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
-
-# Detect the version number
-execute_process(
- COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/builder/scripts/gen-version.sh" -b
- OUTPUT_VARIABLE SDK_BASE_VERSION
-)
-
-project(AAC VERSION ${SDK_BASE_VERSION})
-
-message(STATUS "Alexa Auto SDK - ${SDK_VERSION}")
-
-option(AAC_ENABLE_TESTS "Enable building test packages for AAC modules" ON)
-if(AAC_ENABLE_TESTS)
- enable_testing()
-endif()
-
-if(AAC_ENABLE_COVERAGE)
- message(STATUS "Enabling coverage for all modules.")
- set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
- set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
-endif()
-
-if(MODULES)
- set(CORE_MODULES ${MODULES})
- string(REPLACE "," " " CORE_MODULES ${CORE_MODULES})
- separate_arguments(CORE_MODULES)
- foreach(MODULE ${CORE_MODULES})
- add_subdirectory(modules/${MODULE})
- endforeach()
-else()
- add_subdirectory(modules/address-book)
- add_subdirectory(modules/alexa)
- add_subdirectory(modules/apl)
- add_subdirectory(modules/car-control)
- add_subdirectory(modules/cbl)
- add_subdirectory(modules/connectivity)
- add_subdirectory(modules/core)
- add_subdirectory(modules/messaging)
- add_subdirectory(modules/navigation)
- add_subdirectory(modules/phone-control)
- add_subdirectory(modules/text-to-speech)
- add_subdirectory(modules/text-to-speech-provider)
-endif()
-
-if(EXTRA_MODULES)
- string(REPLACE "," " " EXTRA_MODULES ${EXTRA_MODULES})
- separate_arguments(EXTRA_MODULES)
- foreach(EXTRA_MODULE ${EXTRA_MODULES})
- add_subdirectory(${EXTRA_MODULE})
- endforeach()
-endif()
diff --git a/GETSTARTED.md b/GETSTARTED.md
index eea6c2cda..39e32fee6 100644
--- a/GETSTARTED.md
+++ b/GETSTARTED.md
@@ -24,13 +24,13 @@ Follow these steps to get started with the Auto SDK:
4. Install the built package on your device as described in the builder [README](./builder/README.md).
-5. Create and configure an instance of the Engine. For details, see the [C++](./modules/core/README.md#creating-the-engine) or [Android](./platforms/android/modules/core/README.md#creating-the-engine) Core module documentation.
+5. Create and configure an instance of the Engine. For details, see the [Core module](./modules/core/README.md#creating-the-engine) documentation.
6. Extend the Auto SDK interfaces by creating a custom handler for each interface that you want to implement and registering the handler with the Engine.
7. Start the Engine using the `start()` command.
-8. Use the Sample App ([C++](./samples/cpp/README.md) or [Android](./samples/android/README.md)) to see how the Auto SDK works and to test end-to-end functionality.
+8. Use the Sample App ([C++](./samples/cpp/README.md) or [Android](./aacs/android/sample-app/README.md)) to see how the Auto SDK works and to test end-to-end functionality.
## Downloading Optional Extensions
diff --git a/LICENSE b/LICENSE
index d64569567..dec003497 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,202 +1,5 @@
+The contents of this repository are distributed under several different license agreements. Please refer to LICENSE file in the corresponding folder before using.
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
+If the license is not specified in the folder, the Apache 2.0 License applies. The Apache 2.0 license can be found at “./LICENSE_APACHE_V2”.
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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
-
- http://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.
+The resources under ./aacs/android/restrictedAssets are licensed under the Amazon Program Materials License Agreement (the “PMLA”). Please refer to ./aacs/android/restrictedAssets/LICENSE_PMLA file for more information.
\ No newline at end of file
diff --git a/LICENSE_APACHE_V2 b/LICENSE_APACHE_V2
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/LICENSE_APACHE_V2
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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
+
+ http://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/LINUX_INTEGRATION.md b/LINUX_INTEGRATION.md
new file mode 100644
index 000000000..151b39a09
--- /dev/null
+++ b/LINUX_INTEGRATION.md
@@ -0,0 +1,95 @@
+# Auto SDK Integration Guide for Linux-based platforms
+
+The [Message Broker](./modules/core/README.md) API in Auto SDK provides a way for your application to interact with the Engine for a particular functionality, such as audio input, media streaming or location services. The Engine publishes messages when it needs to query data or delegate handling, such as rendering visual elements or placing a phone call to your custom implementation. Your application must publish messages to the Engine to provide a proactive notification of a state change or error. This loosely coupled MessageBroker API to subscribe to and publish messages allows you to have a lot more flexibility with how you design the application.
+
+The following architecture diagram illustrates a common design used for integrating the Auto SDK in Linux platforms.
+
+
+
+
+
+
+To integrate your application with Auto SDK using the MessageBroker interface, follow these steps:
+
+## Creating the Engine
+
+To create an instance of the Engine, call the static function `aace::core::Engine::create()`:
+```
+auto engine = aace::core::Engine::create();
+```
+
+## Configuring the Engine
+
+Before you can start the Engine, you must configure it using the required `aace::core::config::EngineConfiguration` object(s) for the services you will be using:
+
+1. Generate the `EngineConfiguration` object(s). You can do this using a JSON configuration file, programmatically (using factory functions), or using a combination of both approaches.
+
+ >**Note:** You can generate a single `EngineConfiguration` object that includes all configuration data for the services you will be using, or you can break the configuration data into logical sections and generate multiple `EngineConfiguration` objects. For example, you might generate one `EngineConfiguration` object for each module. Please refer to the respective module README for details.
+
+2. Call the Engine's `configure()` function, passing in the `EngineConfiguration` object(s):
+
+ * For a single `EngineConfiguration` object, use:
+ ```
+ engine->configure( config );
+ ```
+
+ * For multiple `EngineConfiguration` objects, use:
+ ```
+ engine->configure( { xConfig, yConfig, zConfig, ... } );
+ ```
+
+ replacing `xConfig, yConfig, zConfig` with logical names to identify the `EngineConfiguration` objects you generated; for example: `coreConfig, alexaConfig, navigationConfig`
+
+ >**Note**: You can call the Engine's `configure()` function only once, and you must call it before you subscribe to any messages or start the Engine.
+
+## Subscribing to messages from Engine
+
+1. Get a reference to the message broker from the Engine.
+
+ ```
+ auto messageBroker = engine->getMessageBroker();
+ ```
+2. Use the following MessageBroker `subscribe()` function, passing in a message handler (a function that will handle the messages published by the Engine), the topic and action for which you want to receive messages from the Engine.
+
+ ```
+ void subscribe(MessageHandler handler, const std::string& topic = "", const std::string& action = "");
+ ```
+ >**Note**: If no topic or action is specified, then the application will receive messages for all topics and all actions.
+
+## Publishing messages to Engine
+
+Messages are published to the Engine to provide a proactive notification of a state change or an error. Use the MessageBroker `publish()` function to send a specific message to the Engine.
+
+```
+void publish(const std::string& message)
+```
+
+## Handling synchronous-style messages
+
+Most messages are either fire-and-forget, or they have a separate message that the application or Engine sends as an asynchronous response. However, some messages exchanged between the Engine and the application require a special reply message type. Typically these messages retrieve data that the requester requires "synchronously", such as application states retrieved for Alexa events. The Engine may either require a reply in response to a published message, or may send a reply to the application in response to a published message.
+
+### Replying to messages from the Engine
+
+Some messages that are sent to the application require a special `reply` message type to be sent back. In most cases the engine will block other messages from being sent until the reply is received (or until a timeout occurs), so it is important to send the reply message right away. To reply to a message:
+
+1. Set the `replyToId` in the reply message to the ID of the original message.
+
+2. Use the MessageBroker `publish()` function to send the reply.
+
+### Receiving reply messages from the Engine
+
+For some messages published by the application, the Engine may send a reply back to the application. In such cases, your application must subscribe to and handle the reply from the Engine. The `replyToId` in the reply message will contain the message ID for which the reply is sent.
+
+## Handling audio and stream based interface
+
+Stream based interfaces, such as AudioInput and AudioOutput, require the application to read from or write to a stream. For such messages, a stream ID is included in the message payload.
+
+1. Use the MessageBroker `openStream()` function to fetch the MessageStream corresponding to the stream ID.
+
+2. Specify the operation mode when opening the stream using the `MessageStream::Mode` enumeration. Streams can either be read-only, write-only, or support both input and output operations.
+
+ ```
+ std::shared_ptr openStream(const std::string& streamId, MessageStream::Mode mode)
+ ```
+
+ >**Note**: If a stream can not be opened for the specified operation, the openStream() call will fail and return a null object
diff --git a/MIGRATION.md b/MIGRATION.md
index 6723c0cd6..db7929371 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -7,6 +7,8 @@ This guide outlines the changes you need to make to migrate from Auto SDK v2.0 t
## Table of Contents
+- [Migrating from Auto SDK v3.3.0 to v4.0.0](#migrating-from-auto-sdk-v330-to-v400)
+ - [Platform Interface Deprecation](#platform-interface-deprecation)
- [Migrating from Auto SDK v3.2.1 to v3.3.0](#migrating-from-auto-sdk-v321-to-v330)
- [Local Media Source and Global Preset Enhancements](#local-media-source-and-global-preset-enhancements)
- [Migrating the Local Navigation Module APIs](#migrating-the-local-navigation-module-apis)
@@ -34,6 +36,12 @@ This guide outlines the changes you need to make to migrate from Auto SDK v2.0 t
- [Car Control Source File Relocation](#car-control-source-file-relocation)
- [Code-Based-Linking (CBL) Handler in the Sample Apps](#code-based-linking-cbl-handler-in-the-sample-apps)
+## Migrating from Auto SDK v3.3.0 to v4.0.0
+This section provides the information you need to migrate from Auto SDK v3.3.0 to Auto SDK v4.0.0
+
+### Platform Interface Deprecation
+The C++ and Java platform interfaces are deprecated in favor of Alexa Auto Services Bridge (AASB). Auto SDK 4.0 replaces the platform interfaces with a new `MessageBroker` API for subscribing to and publishing AASB messages. Details to migrate your application to the `MessageBroker` API are [here.](./MIGRATION_TO_AASB_MESSAGEBROKER.md)
+
## Migrating from Auto SDK v3.2.1 to v3.3.0
This section provides the information you need to migrate from Auto SDK v3.2.1 to Auto SDK v3.3.0
@@ -171,7 +179,7 @@ The Engine notifies the application of any errors during the authorization proce
* The `renderTemplate(const std::string& payload)` method has been removed. Use renderTemplate(const std::string& payload, FocusState focusState) instead.
* The `renderPlayerInfo(const std::string& payload)` method has been removed. Use `renderPlayerInfo(const std::string& payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)` instead.
* In the Alexa module, `AlexaProperties::SUPPORTED_LOCALES` has been removed. For Alexa to recognize the locale setting, specify one of these values: de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, pt-BR.
-* `Engine::setProperty()` and `Engine::getProperty()` have been removed. Use `PropertyManager::setProperty()` and `PropertyManager::getProperty()` instead. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](./platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)).
+* `Engine::setProperty()` and `Engine::getProperty()` have been removed. Use `PropertyManager::setProperty()` and `PropertyManager::getProperty()` instead. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](https://github.com/alexa/alexa-auto-sdk/blob/3.0/platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)).
* The `SpeechRecognizer::enableWakeWordDetection()`, `SpeechRecognizer::disableWakeWordDetection()`, and `SpeechRecognizer::isWakewordDetectionEnabled()` methods have been removed.
* The Contact Uploader module has been removed. Use the [Address Book module](#using-the-address-book-module) instead.
@@ -210,7 +218,7 @@ This section outlines the changes you will need to make to migrate from Auto SDK
### Car Control Enhancements and Breaking Changes
-Read the updated Car Control module README (for [C++ platforms](./modules/car-control/README.md) or [Android](./platforms/android/modules/car-control/README.md)) to get a complete understanding of all supported features and the current format of the "aace.carControl" configuration schema. Read the updated API documentation for the `CarControlConfiguration` builder class (for [C++ platforms](./modules/car-control/platform/include/AACE/CarControl/CarControlConfiguration.h) or [Android](./platforms/android/modules/car-control/src/main/java/com/amazon/aace/carControl/CarControlConfiguration.java)) if you construct your configuration programmatically. The changes to the "aace.carControl" configuration for v2.3 are backward-compatible, meaning your previous configuration (regardless of whether it was file-based or built programmatically with the `CarControlConfiguration` class) will still compile and produce a valid configuration to input to Auto SDK. However, several updates are recommended to ensure expected behavior, even if you do not want new features.
+Read the updated Car Control module README (for [C++ platforms](./modules/car-control/README.md) or [Android](https://github.com/alexa/alexa-auto-sdk/blob/2.3/platforms/android/modules/car-control/README.md)) to get a complete understanding of all supported features and the current format of the "aace.carControl" configuration schema. Read the updated API documentation for the `CarControlConfiguration` builder class (for [C++ platforms](./modules/car-control/platform/include/AACE/CarControl/CarControlConfiguration.h) or [Android](./modules/car-control/android/src/main/java/com/amazon/aace/carControl/CarControlConfiguration.java)) if you construct your configuration programmatically. The changes to the "aace.carControl" configuration for v2.3 are backward-compatible, meaning your previous configuration (regardless of whether it was file-based or built programmatically with the `CarControlConfiguration` class) will still compile and produce a valid configuration to input to Auto SDK. However, several updates are recommended to ensure expected behavior, even if you do not want new features.
#### 1. Zones configuration schema update
@@ -402,7 +410,7 @@ This section outlines the changes you will need to make to migrate from Auto SDK
### Implementing the Property Manager Interface
Auto SDK v2.2 introduces the Property Manager, a component that maintains runtime properties by storing property values and listeners and delegating the `setProperty()` and `getProperty()` calls from your application to the respective Engine services. The Engine invokes the PropertyManager platform interface method `propertyChanged()` to notify your application about property value changes originating internally. The property values may be set by Auto SDK modules that define constants (for example `FIRMWARE_VERSION` and `LOCALE`), or they may be initiated from the Alexa Voice Service (AVS), such as when the user changes the `TIMEZONE` setting in the Alexa Companion App.
-`PropertyManager::setProperty()` and `PropertyManager::getProperty()` replace deprecated `Engine::setProperty()` and `Engine::getProperty()`. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](./platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)).
+`PropertyManager::setProperty()` and `PropertyManager::getProperty()` replace deprecated `Engine::setProperty()` and `Engine::getProperty()`. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](https://github.com/alexa/alexa-auto-sdk/blob/2.2/platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)).
### Car Control Changes
This section documents the changes you will need to make to migrate your Car Control implementation to Auto SDK v2.2.
@@ -445,11 +453,11 @@ The following build changes have been introduced in Auto SDK v2.1:
See the [Builder README](./builder/README.md#running-builder) for details about supported platforms and targets.
-* For QNX targets, you must cross-compile with the QNX multimedia software for the system audio extension (which is built by default for QNX targets). This requires a QNX Multimedia Suite license. See the [System Audio extension README](./extensions/system-audio/README.md) for details.
+* For QNX targets, you must cross-compile with the QNX multimedia software for the system audio extension (which is built by default for QNX targets). This requires a QNX Multimedia Suite license. See the [System Audio extension README](https://github.com/alexa/alexa-auto-sdk/blob/2.1/extensions/experimental/system-audio/README.md) for details.
### Engine Configuration File Updates
-The AVS Device SDK portion of the Auto SDK Engine configuration (the `aace.alexa.avsDeviceSDK` node) has been updated. See the [`config.json.in`](./samples/cpp/assets/config.json.in) file for details.
+The AVS Device SDK portion of the Auto SDK Engine configuration (the `aace.alexa.avsDeviceSDK` node) has been updated. See the [`config.json.in`](https://github.com/alexa/alexa-auto-sdk/blob/2.1/samples/cpp/assets/config.json.in) file for details.
* The `"deviceInfo"` node includes two new elements: `"manufacturerName"` and `"description"`.
* A path to the capabilities database is now required. Use the `"capabilitiesDelegate"` element to specify this path.
@@ -462,7 +470,7 @@ The AVS Device SDK portion of the Auto SDK Engine configuration (the `aace.alexa
Auto SDK v2.1 introduces additional navigation features that you can integrate in your application to enrich the user's experience: add/cancel a waypoint, show/navigate to a previous destination, turn and lane guidance, and map display control. Implementing these enhancements required deprecating the `setDestination()` interface in favor of the `startNavigation()` interface and adding several additional interfaces.
-To migrate from Auto SDK v2.0 to Auto SDK v2.1, you must update your platform implementation to use the `startNavigation()` method instead of the `setDestination()` method, modify the payload for the `getNavigationState()` method, and implement the new navigation methods. This guide takes you through these steps. Please see the Navigation module README for [C++](./modules/navigation/README.md) or [Android](./platforms/android/modules/navigation/README.md) for additional information and resources.
+To migrate from Auto SDK v2.0 to Auto SDK v2.1, you must update your platform implementation to use the `startNavigation()` method instead of the `setDestination()` method, modify the payload for the `getNavigationState()` method, and implement the new navigation methods. This guide takes you through these steps. Please see the Navigation module README for [C++](./modules/navigation/README.md) or [Android](https://github.com/alexa/alexa-auto-sdk/blob/2.1/platforms/android/modules/navigation/README.md) for additional information and resources.
#### What's New
@@ -751,7 +759,7 @@ void NavigationHandler::showPreviousWaypoints() {
The Auto SDK now implements version 1.2 of the TemplateRuntime interface to handle display card templates. If you support TemplateRuntime in your implementation, you must update your implementation to support the new card types.
-The TemplateRuntime interface remains the same, but the `LocalSearchListTemplate1` template has been deprecated in favor of the new `LocalSearchListTemplate2` template. In addition, two new templates (`TrafficDetailsTemplate` and `LocalSearchDetailTemplate1`), are now supported. The `TrafficDetailsTemplate` includes commute information to favorite destinations such as home or work. The `LocalSearchDetailTemplate1` template includes information about specific locations or information in response to users asking for details about locations presented in the `LocalSearchListTemplate2` template. For details about the TemplateRuntime interface, see the [Alexa Voice Service (AVS) documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/templateruntime.html). For details about implementing TemplateRuntime in your Auto SDK implementation see the Alexa module README for [C++](./modules/alexa/README.md#handling-display-card-templates) or [Android](./platforms/android/modules/alexa/README.md#handling-display-card-templates).
+The TemplateRuntime interface remains the same, but the `LocalSearchListTemplate1` template has been deprecated in favor of the new `LocalSearchListTemplate2` template. In addition, two new templates (`TrafficDetailsTemplate` and `LocalSearchDetailTemplate1`), are now supported. The `TrafficDetailsTemplate` includes commute information to favorite destinations such as home or work. The `LocalSearchDetailTemplate1` template includes information about specific locations or information in response to users asking for details about locations presented in the `LocalSearchListTemplate2` template. For details about the TemplateRuntime interface, see the [Alexa Voice Service (AVS) documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/templateruntime.html). For details about implementing TemplateRuntime in your Auto SDK implementation see the Alexa module README for [C++](./modules/alexa/README.md#handling-display-card-templates) or [Android](https://github.com/alexa/alexa-auto-sdk/tree/2.3/platforms/android/modules/alexa#handling-display-card-templates-).
### Car Control Source File Relocation
@@ -761,7 +769,7 @@ The Car Control module platform interface files and documentation are now locate
>**Note:** In addition, if you use custom assets for car control in an implementation with the optional Local Voice Control (LVC) extension, you must specify the path to the custom assets in both the Auto SDK car control configuration and the LVC configuration, not just the LVC configuration. For details, see [Path to Custom Car Control Assets for LVC Implementations](#path-to-custom-car-control-assets-for-lvc-implementations).
### Code-Based-Linking (CBL) Handler in the Sample Apps
-Both of the Auto SDK Sample Apps now include the Code-Based Linking (CBL) handler implementation (in favor of the `AuthProvider` handler implementation ) to handle obtaining access tokens from Login with Amazon (LWA). Changing from the `AuthProvider` handler to the CBL handler is *not a required change*, but we recommend that you use the Auto SDK CBL interface for ease of implementation. For details about the CBL handler, please see the CBL module README [for C++](./modules/cbl/README.md) or [for Android](./platforms/android/modules/cbl/README.md).
+Both of the Auto SDK Sample Apps now include the Code-Based Linking (CBL) handler implementation (in favor of the `AuthProvider` handler implementation ) to handle obtaining access tokens from Login with Amazon (LWA). Changing from the `AuthProvider` handler to the CBL handler is *not a required change*, but we recommend that you use the Auto SDK CBL interface for ease of implementation. For details about the CBL handler, please see the CBL module README [for C++](./modules/cbl/README.md) or [for Android](https://github.com/alexa/alexa-auto-sdk/blob/2.3/platforms/android/modules/cbl/README.md).
If you want to continue using the `AuthProvider` interface, we recommend that you implement the new `onAuthFailure()` method that exposes 403 "unauthorized request" exceptions from Alexa Voice Service (AVS). This method may be invoked, for example, when your product makes a request to AVS using an access token obtained for a device which has been deregistered from the Alexa companion app. In the Sample Apps, you can override the interface and unset your login credentials as if the user had done so with your GUI interface:
diff --git a/MIGRATION_TO_AASB_MESSAGEBROKER.md b/MIGRATION_TO_AASB_MESSAGEBROKER.md
new file mode 100644
index 000000000..9d6b6a24a
--- /dev/null
+++ b/MIGRATION_TO_AASB_MESSAGEBROKER.md
@@ -0,0 +1,316 @@
+# Migration Guide to Use MessageBroker API
+
+
+## Table of Contents
+
+- [Overview](#overview)
+- [Application architecture](#application-architecture)
+- [Migrating existing platform interface handlers](#migrating-existing-platform-interface-handlers)
+- [Handling audio and stream based interfaces](#handling-audio-and-stream-based-interfaces)
+- [Handling synchronous-style messages](#handling-synchronous-style-messages)
+- [Migrating existing AASB platform interface handler implementation](#migrating-existing-aasb-platform-interface-handler-implementation)
+- [Hybrid or incremental migration](#hybrid-or-incremental-migration)
+
+
+## Overview
+Auto SDK 4.0 introduces a new MessageBroker API for applications to subscribe to and publish AASB messages. This API replaces the existing platform interfaces that developers use to integrate platform-specific functionality such as audio, location, and Alexa capabilities. MessageBroker also replaces the [deprecated AASB interface](https://github.com/alexa/alexa-auto-sdk/blob/v3.3.0/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASB.h) used in previous Auto SDK versions.
+
+Developers integrating with Auto SDK for the first time should only use the MessageBroker API. Developers who upgrade to Auto SDK 4.0 (and plan to continue to upgrade beyond 4.0), should migrate their existing applications as soon as possible. The next major release of Auto SDK will remove the platform interface API without maintaining backward compatibility with older versions of the SDK.
+
+## Application architecture
+In most cases, the interface changes in Auto SDK do not require modifying the architecture of the existing Auto SDK client application. The following diagram shows an application with a typical architecture based on Auto SDK 3.3 next to the same application using the Auto SDK 4.0 MessageBroker API:
+
+
+
+
+
+In the example above, the key difference is that rather than creating handlers that extend platform interfaces, the new implementation uses a loosely coupled MessageBroker API to subscribe to and publish messages. It is straightforward to adapt the existing application handlers to MessageBroker by using a simple adapter pattern that does not require completely redesigning the application.
+
+## Migrating existing platform interface handlers
+
+The following diagram highlights the core differences between using the old platform interfaces and the new MessageBroker API. The left side shows the steps for creating the Engine and handlers and invoking interface methods in Auto SDK 3.3. The right side shows the equivalent steps using the MessageBroker API required for Auto SDK 4.0.
+
+
+
+
+
+Even though the MessageBroker API provides flexibility for how to design an application, it may be easier to adapt an existing implementation rather than redesigning it.
+
+The following example demonstrates how to modify a DoNotDisturb platform interface handler to use MessageBroker.
+
+**Example implementation of a DoNotDisturb handler in Auto SDK 3.3:**
+
+In Auto SDK 3.3, the DoNotDisturb platform interface has the following methods:
+
+```c++
+ /**
+ * Handle setting of DND directive.
+ *
+ * @param [in] doNotDisturb setting state
+ */
+ virtual void setDoNotDisturb(const bool doNotDisturb) = 0;
+
+ /**
+ * Notifies the Engine of a platform request to set the DND State
+ *
+ * @param [in] doNotDisturb setting state
+ * @return true if successful, false if change was rejected
+ */
+ bool doNotDisturbChanged(const bool doNotDisturb);
+
+```
+
+The implementation overrides the `setDoNotDisturb()` platform interface method to provide application-specific behavior (in this case, logging a message to the console) and calls the Engine interface method `doNotDisturbChanged` to request a change to the DoNotDisturb setting.
+
+```c++
+#include
+
+class DoNotDisturbHandler : public DoNotDisturb {
+ public:
+ DoNotDisturbHandler() = default;
+ void setDoNotDisturb(bool doNotDisturb) override;
+ void notifyDoNotDisturbSettingChange(bool doNotDisturb);
+};
+
+
+void DoNotDisturbHandler::setDoNotDisturb(bool doNotDisturb) {
+ std::cout << "setDoNotDisturb: " << doNotDisturb << std::endl;
+}
+
+void DoNotDisturbHandler::notifyDoNotDisturbSettingChange(bool doNotDisturb) {
+ // Notify the Engine of a request to change the DND setting by calling
+ // the Engine interface method implemented in the DoNotDisturb base class
+ doNotDisturbChanged(bool doNotDisturb);
+}
+
+```
+
+**Example implementation of a DoNotDisturb handler in Auto SDK 4.0:**
+
+In Auto SDK 4.0 the [SetDoNotDisturbMessage](https://alexa.github.io/alexa-auto-sdk/docs/sdk-docs/modules/alexa/aasb-docs/DoNotDisturb/index.html#setdonotdisturb) and the [DoNotDisturbChangedMessage](https://alexa.github.io/alexa-auto-sdk/docs/sdk-docs/modules/alexa/aasb-docs/DoNotDisturb/index.html#donotdisturbchanged) replace `setDoNotDisturb` the `doNotDisturbChanged` methods, respectively.
+
+The following example shows the same core logic in the handler, but it uses the MessageBroker API instead of extending a platform interface.
+
+```c++
+#include
+#include
+#include
+
+class DoNotDisturbHandler {
+ public:
+ DoNotDisturbHandler(std::shared_ptr messageBroker);
+ void setDoNotDisturb(bool doNotDisturb);
+ void doNotDisturbChanged(bool doNotDisturb);
+ private:
+ std::shared_ptr m_messageBroker;
+};
+
+
+DoNotDisturbHandler::DoNotDisturbHandler(
+ std::shared_ptr messageBroker) :
+ m_messageBroker(messageBroker) {
+
+ // subscribe to the "SetDoNotDisturb" message
+ m_messageBroker->subscribe(
+ [=](const std::string& msg) {
+ SetDoNotDisturbMessage _msg = json::parse(msg);
+ setDoNotDisturb(_msg.payload.doNotDisturb);
+ },
+ SetDoNotDisturbMessage::topic(),
+ SetDoNotDisturbMessage::action());
+}
+
+void DoNotDisturbHandler::setDoNotDisturb(bool doNotDisturb) {
+ std::cout << "setDoNotDisturb: " << doNotDisturb << std::endl;
+}
+
+void DoNotDisturbHandler::notifyDoNotDisturbSettingChange(bool doNotDisturb) {
+ // Notify the Engine of a request to change the DND setting by publishing
+ // a "DoNotDisturbChanged" message
+ DoNotDisturbChangedMessage _msg;
+ _msg.payload.doNotDisturb = doNotDisturb;
+ m_messageBroker->publish(_msg.toString()); // publish is fire and forget
+}
+
+```
+A reference to the MessageBroker is required. This can be accessed from the Engine object and provided when creating the DoNotDisturbHandler instance in the main application code:
+
+```c++
+auto handler = std::make_shared(engine->getMessageBroker());
+```
+
+## Handling audio and stream based interfaces
+
+Auto SDK 4.0 replaces audio stream platform interfaces `AudioInput` and `AudioOutput` with the MessageBroker's `MessageStream` API and corresponding AASB messages with "AudioInput" and "AudioOutput" topics. When the application receives a message that requires it to read from or write to a stream, the message payload includes a stream ID. The application uses the stream ID to “open” the stream for I/O. Developers with existing handlers for media players or microphone, for example, should migrate their handlers to use the new MessageBroker and MessageStream API.
+
+>**Note** In previous versions of Auto SDK, the Engine "opened" audio channels through the `AudioInputProvider` and `AudioOutputProvider` platform interfaces prior to requesting audio input or output through the `AudioInput` and `AudioOutput` platform interface instances representing each channel. In Auto SDK 4.0, there is no AASB message equivalent of `AudioInputProvider` or `AudioOutputProvider`. When the Engine needs audio input from a particular channel, it sends the `AudioInput.StartAudioInput` message with the channel type specified in the payload. Similarly, when the Engine needs to play audio for a particular channel, it sends the `AudioOutput.Prepare` message with the channel type specified in the payload.
+
+The following example demonstrates how the application would open an input stream after receiving the `StartAudioInput` message, and write data to the stream until a `StopAudioInput` message is received:
+
+```c++
+#include
+#include
+
+// subscribe to the StartAudioInput message
+messageBroker->subscribe([=](const std::string& msg) {
+ // parse the json message
+ StartAudioInputMessage _msg = json::parse(msg);
+ // open the stream for writing
+ auto streamId = _msg.payload.streamId;
+ auto stream = messageBroker->openStream(
+ streamId,
+ MessageStream::Mode::WRITE);
+ startAudioInput(streamId, stream)
+ }),
+ StartAudioInputMessage::topic(),
+ StartAudioInputMessage::action());
+
+// subscribe to the StopAudioInput message
+messageBroker->subscribe([=](const std::string& msg) {
+ // parse the json message
+ StopAudioInputMessage _msg = json::parse(msg);
+ auto streamId = _msg.payload.streamId;
+ stopAudioInput(streamId);
+ }),
+ StopAudioInputMessage::topic(),
+ StopAudioInputMessage::action());
+
+
+void startAudioInput(const std::string& streamId, std::shared_ptr stream) {
+ // On another thread, write data to the stream until
+ // you receive a StopAudioInput message with the same streamId
+ // ...
+ // Return quickly to avoid blocking the MessageBroker's outgoing thread!
+}
+
+void stopAudioInput(const std::string& streamId) {
+ // Stop writing audio data to the stream
+ // ...
+ // Return quickly to avoid blocking the MessageBroker's outgoing thread!
+}
+
+```
+
+A MessageStream can be read-only, write-only, or support both read and write operations. It is required to specify the operation mode when opening the stream using the `MessageStream::Mode` enumeration. If the MessageBroker cannot open a stream for the specified operation, the `openStream()` call will fail and return a null object.
+
+
+## Handling synchronous-style messages
+
+Most AASB messages are either fire-and-forget, or they have a separate message that the application or Engine sends as an asynchronous response. However, some messages exchanged between the Engine and the application require a special `reply` message type. Typically these messages retrieve data that the requester requires "synchronously", such as application states retrieved for Alexa events. The Engine may either require a reply in response to a published message, or may send a reply to the application in response to a published message.
+
+### Replying to messages from the Engine
+
+In most cases in which a message requires a reply, the Engine will block sending other messages until it receives the reply (or until a timeout occurs), so it is important to send the reply message right away.
+
+The following example demonstrates how to subscribe to the GetLocation message from the LocationProvider interface and send a reply back to the Engine:
+
+```c++
+#include
+
+// subscribe to GetLocation message
+m_messageBroker->subscribe([=](const std::string& msg) {
+ GetLocationMessageReply _reply;
+ // set the reply message "replyToId" to the id of the
+ // original message:
+ _reply.header.messageDescription.replyToId = _msg.header.id;
+ // populate the reply message payload data
+ _reply.payload.location.latitude = m_latitude;
+ _reply.payload.location.longitude = m_longitude;
+ // publish ther reply
+ m_messageBroker->publish(_reply.toString());
+
+ },
+ GetLocationMessage::topic(),
+ GetLocationMessage::action());
+
+```
+
+### Receiving reply messages from the Engine
+For some messages published by the application, the Engine may send a `reply` back to the application. In such cases, your application must subscribe to and handle the reply from the Engine. The "replyToId" in the reply message will contain the message ID for which the reply is sent.
+
+The following example demonstrates how subscribe to `GetPropertyReply` message from the Engine.
+
+```c++
+m_messageBroker->subscribe(
+ [=](const std::string& message) { handleGetPropertyReplyMessage(message); },
+ GetPropertyMessage::topic(),
+ GetPropertyMessage::action());
+
+
+// Publish GetPropertyMessage
+void publishGetProperty(const std::string& name) {
+ GetPropertyMessage msg;
+ msg.payload.name = name;
+ m_messageBroker->publish(msg.toString());
+ // Engine sends the GetProperty message reply with the requested property
+ // The "replyToId" in the reply message will contain the ID of this published message
+}
+
+void handleGetPropertyReplyMessage(const std::string& message) {
+ GetPropertyMessageReply msg = json::parse(message);
+
+ // Get the property value from the reply and handle in the implementation
+ const std::string& propertyValue = msg.payload.value
+}
+
+```
+
+## Migrating existing AASB platform interface handler implementation
+
+Auto SDK 3.3 supports AASB as an optional extension and platform interface. Developers using the AASB platform interface need to migrate the AASB platform interface handler to use the new MessageBroker API instead. This can be accomplished by following a similar pattern as described in the sections above; however, use MessageBroker to subscribe to *ALL* messages in order to provide the same functionality as the existing AASB platform interface.
+
+```c++
+class AASBHandler {
+public:
+ AASBHandler(std::shared_ptr messageBroker);
+ void messageReceived(const std::string& message);
+ // engine interface implementation
+ void publish(const std::string& message);
+ std::shared_ptr openStream(
+ const std::string& streamId, MessageStream::Mode mode);
+private:
+ std::shared_ptr m_messageBroker;
+};
+
+AASBHandler::AASBHandler(
+ std::shared_ptr messageBroker) :
+ m_messageBroker(messageBroker) {
+
+ // subscribe to ALL messages and bind to the messageReceived() function
+ // since it has the same method signature as the message handler
+ m_messageBroker->subscribe(
+ std::bind(&AASBHandler::messageReceived, this, std::placeholders::_1)
+ );
+}
+
+void AASBHandler::messageReceived(const std::string& message){
+ // application logic for handling AASB messages
+ std::cout << message << std::endl;
+}
+
+void AASBHandler::publish(const std::string& message){
+ // invoke the MessageBroker publish method
+ m_messageBroker->publish(message);
+}
+
+std::shared_ptr AASBHandler::openStream(
+ const std::string& streamId,
+ MessageStream::Mode mode){
+ // invoke the MessageBroker openStream method
+ return m_messageBroker->openStream(mode);
+}
+
+```
+
+## Hybrid or incremental migration
+
+Although Amazon recommends migrating the entire application to MessageBroker when upgrading to Auto SDK 4.0, it is possible to use a hybrid implementation of platform interface handlers and MessageBroker until Auto SDK removes the platform interface API. New interfaces added in Auto SDK 4.0 are enabled to use the MessageBroker API by default.
+
+The following diagram illustrates the architecture for a hybrid application:
+
+
+
+
+
+
+
diff --git a/NOTICE b/NOTICE
index bc2665ef9..462366d6f 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,27 +1,33 @@
Alexa Auto SDK
-Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*************************
ALEXA AUTO SDK COMPONENTS
*************************
The following Alexa Auto SDK components are licensed under the Apache License, Version 2.0 (the "License"):
+aacs/android/app-components
+aacs/android/assets
+aacs/android/common
+aacs/android/sample-app
+aacs/android/service
builder
-extensions/system-audio
-extensions/loopback-detector
+modules/aasb
modules/address-book
modules/alexa
modules/apl
+modules/bluetooth
modules/car-control
modules/cbl
-modules/contact-uploader
modules/core
+modules/custom-domain
+modules/loopback-detector
modules/messaging
modules/navigation
modules/phone-control
-platforms/android
-samples/android
-samples/android-aacs-sample-app
+modules/system-audio
+modules/text-to-speech
+modules/text-to-speech-provider
samples/cpp
You may not use this file except in compliance with the License. A copy of
diff --git a/README.md b/README.md
index 5d51c1b49..e2d830750 100644
--- a/README.md
+++ b/README.md
@@ -1,125 +1,65 @@
# Overview of the Alexa Auto SDK
-The Alexa Auto SDK contains essential client-side software required to integrate Alexa into the automobile. The Auto SDK provides libraries that connect to Alexa and expose C++ and Java interfaces for your vehicle software to implement the platform-specific behavior for audio input, media streaming, calling through a connected phone, turn-by-turn navigation, controlling vehicle features such as heaters and lights, and more. You can use the included sample applications, one for C++ and one for Android, to learn about the Auto SDK interfaces and to test interactions before integration.
+The Alexa Auto SDK contains essential client-side software required to integrate Alexa into the automobile. The Auto SDK provides libraries that connect to Alexa and expose interfaces for your vehicle software to implement the platform-specific behavior for audio input, media streaming, calling through a connected phone, turn-by-turn navigation, controlling vehicle features such as heaters and lights, and more. You can use the included sample application to learn about the Auto SDK interfaces and to test interactions before integration.
+
+The contents of this repository are distributed under several different license agreements. Please refer to the [LICENSE](./LICENSE) file for the license terms applicable to the materials that you are using.
## Table of Contents
- [Auto SDK Architecture](#auto-sdk-architecture)
-- [Auto SDK Modules and Extensions](#auto-sdk-modules-and-extensions)
-- [Alexa Auto Client Service (AACS)](#alexa-auto-client-service-aacs)
+- [Getting Started](#getting-started)
+- [Auto SDK Integration](#auto-sdk-integration)
- [Security Best Practices](#security-best-practices)
- [See Also](#see-also)
## Auto SDK Architecture
-The following architecture diagram illustrates a common design used for integrating the Auto SDK into the vehicle software.
-
-
-
-
-The following sections describe the relationships among components in the architecture.
-
-### Auto SDK Engine
-The Engine is a system of components that provide the runtime implementation of the Auto SDK. The main program of your application or background service creates an instance of the Engine and configures the instance, registers platform interface handlers, and manages its lifecycle. When started by the main program, the Engine maintains a connection to Alexa, manages runtime execution states, and provides the underlying implementation of the functionality of the platform interfaces.
-
-### Platform Interfaces
-Platform interfaces are abstract interfaces provided by the Auto SDK for you to implement the platform-specific functionality of the Auto SDK integration. “Platform-specific functionality” refers to components of the integration that interact with the hardware, operating system, underlying software frameworks, or external libraries. Each platform interface defines an API for the application to interact with the Engine for a particular component, such as audio input or location services. The Engine invokes a registered platform interface “handler” when it needs to query data or delegate handling, such as rendering visual elements or placing a phone call, to your custom implementation. The handler invokes the Engine to provide a callback to a request from the Engine or provide a proactive notification of a state change.
-
-### Handlers
-Bridging the Engine and other processes running in the head unit, a handler implements the functionality required by the platform interface it extends. The implementation of a handler may include using an event bus, platform-specific inter-process communication (IPC) mechanisms, direct implementations with system libraries, or deep integrations with existing applications.
-
-## Auto SDK Modules and Extensions
-The Auto SDK is organized into logically related groups of functionality called “modules,” which enable you to select only the features you want to include in your integration. Each module includes “Platform” and “Engine” libraries. The Platform library includes the platform interfaces and configuration options required for a feature, and the Engine library augments the base functionality of the Engine with the underlying implementation of the feature.
-
->**Note:** The libraries of each module are written in C++, but building the Auto SDK for an Android target enables an Android version of the modules that provide Java wrappers on the C++ interfaces for easier use.
-
-The following sections describe the modules included in the Auto SDK. Modules not downloadable with the Auto SDK from GitHub are available as extensions, which you can obtain with help from your Amazon Solutions Architect (SA) or Partner Manager.
-
-### Core Module
-
-The Core module (for [C++](./modules/core/README.md) or [Android](./platforms/android/modules/core/README.md)) provides the infrastructure for audio input and output, authorization, logging, location reporting, metrics, property management, network monitoring services, local storage, and vehicle information services. The infrastructure is necessary for any module that provides platform interfaces (for example, the Alexa module).
+The Auto SDK is modular, with a system of components that provide the runtime implementation of the Auto SDK. Each module exposes interfaces to handle specific functionality such as audio input and output, authorization, media streaming, navigation and controlling vehicle features. Most of the modules are included in the Auto SDK. Modules not downloadable with the Auto SDK from GitHub are available as extensions, which you can obtain with help from your Amazon Solutions Architect (SA) or Partner Manager. See [here](./SDK_MODULES.md) for more information on Auto SDK modules and extensions.
-### Alexa Module
+## Getting Started
-The Alexa module (for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md)) supports Alexa features such as speech input and output, authorization, volume control, media playback, equalizer control, template and state rendering, local media sources, alerts, notifications, and do not disturb.
+### Prerequisites
+Complete the following steps before you get started with the Auto SDK:
-### Navigation Module
+1. Register for an [Amazon Developer Account](https://developer.amazon.com/home.html) and [create an Alexa device and security profile](./NEED_HELP.md#registering-a-product-and-creating-a-security-profile) to use the Auto SDK.
+2. Make sure that you meet the requirements for building the Auto SDK and understand the dependencies, as described in the SDK builder [README](./builder/README.md).
-The Navigation module (for [C++](./modules/navigation/README.md) or [Android](./platforms/android/modules/navigation/README.md)) provides support for Alexa to interface with the onboard navigation system.
+### Build Auto SDK
+Follow these steps to get started with the Auto SDK:
-### Phone Call Controller Module
+1. Clone the `alexa-auto-sdk` repository into your project.
+2. If you want to use the optional Auto SDK modules, download the modules from the locations listed below.
+ * [AmazonLite Wake Word extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Amazonlite%20Extension)
-The Phone Call Controller module (for [C++](./modules/phone-control/README.md) or [Android](./platforms/android/modules/phonecontrol/README.md)) provides support for Alexa to interface with the onboard telephony system.
+ * [Alexa Communications extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Alexa%20Comms%20Extension)
-### Address Book Module
+ * [Local Voice Control extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Local%20Voice%20Control%20Extension)
-The Address Book module (for [C++](./modules/address-book/README.md) or [Android](./platforms/android/modules/addressbook/README.md)) augments the communications and navigation capabilities of Alexa with user data such as phone contacts and navigation favorites ("home", "work", etc.).
+ * [Device Client Metrics (DCM) extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Metric%20Upload%20Service%20Extension)
-### Code-Based Linking (CBL) Module
+ * [Voice Chrome for Android extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Voice%20Chrome%20Extension)
-The CBL module (for [C++](./modules/cbl/README.md) or [Android](./platforms/android/modules/cbl/README.md)) implements the CBL mechanism of acquiring Login with Amazon (LWA) access tokens. For information about the CBL mechanism, see the [Code-Based Linking documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/authorize-cbl.html).
+ >The version of the optional extension archive must match the version of the Auto SDK that you are using. For example, if you are using Auto SDK 3.0 and want to install the Local Voice Control extension, you must download version 3.0 of the Local Voice Control extension archive.
-### Alexa Presentation Language (APL) Module
-The APL module (for [C++](./modules/apl/README.md) or [Android](./platforms/android/modules/apl/README.md)) enables devices to support a visual Alexa experience.
+ >**Note:** The Alexa Presentation Language (APL) module is provided publicly, but requires [additional packages](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Alexa%20Auto%20SDK%20Alexa%20Presentation%20Language%20module) to be downloaded to successfully build.
+
+3. Build the Auto SDK as described in the builder [README](./builder/README.md).
+
+The following section provides the details of integrating with Android and Linux based platforms:
->**Note:** The [APL Render module](./platforms/android/modules/apl-render/README.md) is provided to enable APL rendering capabilities in an Android application.
+## Auto SDK Integration
-### Messaging Module
-The Messaging module (for [C++](./modules/messaging/README.md) or [Android](./platforms/android/modules/messaging/README.md)) provides support for Short Message Service (SMS) capabilities of Alexa such as sending and reading text messages.
+### Integrating Auto SDK in Android-based platforms
-### Car Control Module
-The Car Control module (for [C++](./modules/car-control/README.md) or [Android](./platforms/android/modules/car-control/README.md)) enables your application to build a custom vehicle-control experience that allows the user to voice-control vehicle features using Alexa.
+The Alexa Auto Client Service (AACS) simplifies the process of integrating the Auto SDK in Android-based devices. AACS is an Alexa Auto SDK feature packaged in a stand alone Android application package (APK) or in an Android archive library (AAR). After you install, configure, and initialize AACS, it communicates with the applications, providing an interface between the applications and various Alexa functions, such as navigation and car control. You can also include AACS as an Android archive (AAR) in the application if you do not want to run AACS as a separate app.
-### Connectivity Module
-The Connectivity module (for [C++](./modules/connectivity/README.md) or [Android](./platforms/android/modules/connectivity/README.md)) creates a lower data consumption mode for Alexa, allowing automakers to offer tiered functionality based on the status of their connectivity plans.
+[Learn more >>](./aacs/android/README.md)
-### Text To Speech (TTS) Module
-The TTS module (for [C++](./modules/text-to-speech/README.md) or [Android](./platforms/android/modules/text-to-speech/README.md)) enables a platform implementation to request synthesis of Alexa speech on demand from a text or Speech Synthesis Markup Language (SSML) string.
+### Integrating Auto SDK in Linux-based platforms
-### Text To Speech (TTS) Provider Module
-The TTS provider module (for [C++](./modules/text-to-speech-provider/README.md) or [Android](./platforms/android/modules/text-to-speech-provider/README.md)) synthesizes Alexa speech on demand. This module requires Auto SDK to be built with the Local Voice Control extension.
-
-### AmazonLite Wake Word Extension
-Wake Word enables hands-free, voice-initiated interactions with Alexa. The Wake Word extension enables AmazonLite Wake Word support in the Auto SDK.
+The Alexa Auto Service Bridge (AASB) simplifies the process of integrating the Auto SDK in Linux-based devices. AASB framework provides a Message Broker API that transmits JSON messages between the OEM application and the Auto SDK. This API can be used publish and subscribe to AASB messages to implement the platform-specific functionality of the Auto SDK integration.
-### Alexa Communications Extension
-The Alexa Communications extension enables integration with Alexa-to-Alexa calling, Alexa-to-PSTN calling, and messaging capabilities.
-
-### Alexa Custom Assistant Extension
-The Alexa Custom Assistant extension provides the functionality for toggling the settings of Alexa and the automaker's voice assistant, and notifies the IVI system at runtime about updates to the acting assistant for a specific interaction.
-
-### Bluetooth Extension
-The Bluetooth extension allows the Auto SDK to connect to devices through the Bluetooth Classic or Bluetooth Low Energy (BLE) protocol. Using these protocols, the Auto SDK can offer Bluetooth-based features to users of Android or iOS smartphones.
-
-### Device Client Metrics (DCM) Extension
-The Device Client Metrics (DCM) extension enables logging and uploading Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and user perceived latency (UPL) between the request and Alexa’s response.
-
-### Geolocation Extension
-The Geolocation extension adds geolocation consent support to the Auto SDK, enabling the user to grant consent to location sharing with Alexa from your application.
-
-### Local Voice Control (LVC) Extension
-The LVC extension provides car control, communication, navigation, local search, and entertainment functionality, without an internet connection. It includes components that run an Alexa endpoint inside the vehicle's head unit.
-#### Local Voice Control Module
-The Local Voice Control module adds core functionality to Auto SDK to enable offline features. The module infrastructure bridges the Auto SDK Engine to the offline Alexa endpoint running in the head unit and is necessary for all other modules in the LVC extension.
-#### Local Skill Service Module
-The Local Skill Service module provides a multipurpose service to the Auto SDK Engine that enables components running alongside the offline Alexa endpoint to communicate with the Auto SDK Engine. The module infrastructure is necessary for other modules in the LVC extension.
-#### Local Navigation Module
-The Local Navigation module enables you to provide customers with offline Alexa local search and navigation to points of interest (i.e., categories, chains, and entities) and addresses.
-#### Address Book Local Service Module
-The Address Book Local Service module works with the Address Book module and the Local Skill Service module to augment the offline communications and navigation capabilities of Alexa with user data such as phone contacts and navigation favorites.
-#### Car Control Local Service Module
-The Car Control Local Service module works with the Car Control module and the Local Skill Service module to enable users to control vehicle features offline with Alexa.
-
-### Mobile Authorization Extension
-The Mobile Authorization extension enables applications running on the vehicle's head unit to simplify the login experience. To log in to Alexa, the user uses the Alexa mobile app on a paired smartphone instead of opening a web browser and entering a code.
-
-### Voice Chrome for Android Extension
-The Voice Chrome extension adds Voice Chrome support to the Auto SDK for Android x86 64-bit and Android ARM 32/64-bit platforms. Voice Chrome provides a consistent set of visual cues representing Alexa attention state across a range of Alexa-enabled devices. The Voice Chrome extension includes a prebuilt Android AAR library for easy integration with your applications, as well as a patch to the Android Sample App that adds the Voice Chrome functionality.
-
-## Alexa Auto Client Service (AACS)
-AACS simplifies the process of integrating the Auto SDK in Android-based devices. After you install, configure, and initialize AACS, it communicates with the applications, providing an interface between the applications and various Alexa functions, such as navigation and car control. You can also include AACS as an Android archive (AAR) in the application if you don't want to run AACS as a separate app. For more information about AACS, see the AACS [README](./platforms/android/alexa-auto-client-service/README.md).
-
-AACS requires the Alexa Auto Service Bridge (AASB) extension, which provides a message-based interface to the Auto SDK Engine. For more information about AASB, see the [AASB README](./extensions/aasb/README.md).
+[Learn more >>](./LINUX_INTEGRATION.md)
## Security Best Practices
@@ -135,11 +75,7 @@ All Alexa products are required to follow the [Security Best Practices for Alexa
The following documents or websites provide more information about the Auto SDK.
* [In-vehicle Alexa experience design guidelines](https://developer.amazon.com/en-US/docs/alexa/alexa-auto/about-this-guide.html) include principles, voice, visual, user interface (UI) patterns, and multimodal best practices.
-* [Getting Started Guide](./GETSTARTED.md) provides steps for getting started with the Auto SDK and for downloading extensions.
* [Change Log](./CHANGELOG.md) provides a summary of feature enhancements, updates, and resolved and known issues.
-* [Android Sample App](./samples/android/README.md) and [C++ Sample App](./samples/cpp/README.md) READMEs provide release notes about the sample apps.
-* For Auto SDK API documentation, see the interface reference documentation:
- * [Alexa Auto SDK for Android](https://alexa.github.io/alexa-auto-sdk/docs/android/)
- * [Alexa Auto SDK for C++](https://alexa.github.io/alexa-auto-sdk/docs/cpp/)
+* AASB message definition provides the reference documentation for AASB messages. You can find AASB message definition for each module [here.](https://alexa.github.io/alexa-auto-sdk/docs/sdk-docs/index.html) by navigating to "Modules" tab and select a module on the left menu. For example, you can find AASB message definition for Address Book module [here.](https://alexa.github.io/alexa-auto-sdk/docs/sdk-docs/modules/address-book/aasb-docs/AddressBook/index.html)
+* [AACS Sample App](./aacs/android/README.md) and [C++ Sample App](./samples/cpp/README.md) READMEs provide information about the sample apps. This helps you test interactions before integration.
* [Migration Guide](./MIGRATION.md) describes how to migrate from one Auto SDK version to another.
-
diff --git a/SDK_MODULES.md b/SDK_MODULES.md
new file mode 100644
index 000000000..fbf356669
--- /dev/null
+++ b/SDK_MODULES.md
@@ -0,0 +1,86 @@
+# Auto SDK Modules and Extensions
+The Auto SDK is organized into logically related groups of functionality called “modules,” which enable you to select only the features you want to include in your integration. Each module includes "AASB", “Platform” and “Engine” libraries. The AASB library includes the AASB messages supported for the module, the Platform library includes the configuration options required for a feature, and the Engine library augments the base functionality of the Engine with the underlying implementation of the feature.
+
+## Core Module
+
+The Core module (see [README](./modules/core/README.md)) provides the infrastructure for audio input and output, authorization, logging, location reporting, metrics, property management, network monitoring services, local storage, and vehicle information services. The infrastructure is necessary for any module that uses the messaging interfaces (for example, the Alexa module).
+
+## Alexa Module
+
+The Alexa module (see [README](./modules/alexa/README.md)) supports Alexa features such as speech input and output, authorization, volume control, media playback, equalizer control, template and state rendering, local media sources, alerts, notifications, and do not disturb.
+
+## Navigation Module
+
+The Navigation module (see [README](./modules/navigation/README.md)) provides support for Alexa to interface with the onboard navigation system.
+
+## Phone Call Controller Module
+
+The Phone Call Controller module (see [README](./modules/phone-control/README.md)) provides support for Alexa to interface with the onboard telephony system.
+
+## Address Book Module
+
+The Address Book module (see [README](./modules/address-book/README.md)) augments the communications and navigation capabilities of Alexa with user data such as phone contacts and navigation favorites ("home", "work", etc.).
+
+## Code-Based Linking (CBL) Module
+
+The CBL module (see [README](./modules/cbl/README.md)) implements the CBL mechanism of acquiring Login with Amazon (LWA) access tokens. For information about the CBL mechanism, see the [Code-Based Linking documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/authorize-cbl.html).
+
+## Alexa Presentation Language (APL) Module
+The APL module (see [README](./modules/apl/README.md)) enables devices to support a visual Alexa experience.
+
+>**Note:** The [APL Render module](./aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/README.md) is provided to enable APL rendering capabilities in an Android application.
+
+## Messaging Module
+The Messaging module (see [README](./modules/messaging/README.md)) provides support for Short Message Service (SMS) capabilities of Alexa such as sending and reading text messages.
+
+## Car Control Module
+The Car Control module (see [README](./modules/car-control/README.md)) enables your application to build a custom vehicle-control experience that allows the user to voice-control vehicle features using Alexa.
+
+## Connectivity Module
+The Connectivity module (see [README](./modules/connectivity/README.md)) creates a lower data consumption mode for Alexa, allowing automakers to offer tiered functionality based on the status of their connectivity plans.
+
+## Text To Speech (TTS) Module
+The TTS module (see [README](./modules/text-to-speech/README.md)) enables a platform implementation to request synthesis of Alexa speech on demand from a text or Speech Synthesis Markup Language (SSML) string.
+
+## Text To Speech (TTS) Provider Module
+The TTS provider module (see [README](./modules/text-to-speech-provider/README.md)) synthesizes Alexa speech on demand. This module requires Auto SDK to be built with the Local Voice Control extension.
+
+## Custom Domain Module
+The Custom Domain module (see [README](./modules/custom-domain/README.md)) creates a bi-directional communication channel between the device and your custom cloud skills, allowing customized experience with the voice assistant.
+
+## AmazonLite Wake Word Extension
+Wake Word enables hands-free, voice-initiated interactions with Alexa. The Wake Word extension enables AmazonLite Wake Word support in the Auto SDK.
+
+## Alexa Communications Extension
+The Alexa Communications extension enables integration with Alexa-to-Alexa calling, Alexa-to-PSTN calling, and messaging capabilities.
+
+## Alexa Custom Assistant Extension
+The Alexa Custom Assistant extension provides the functionality for toggling the settings of Alexa and the automaker's voice assistant, and notifies the IVI system at runtime about updates to the acting assistant for a specific interaction.
+
+## Bluetooth Extension
+The Bluetooth extension allows the Auto SDK to connect to devices through the Bluetooth Classic or Bluetooth Low Energy (BLE) protocol. Using these protocols, the Auto SDK can offer Bluetooth-based features to users of Android or iOS smartphones.
+
+## Device Client Metrics (DCM) Extension
+The Device Client Metrics (DCM) extension enables logging and uploading Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and user perceived latency (UPL) between the request and Alexa’s response.
+
+## Geolocation Extension
+The Geolocation extension adds geolocation consent support to the Auto SDK, enabling the user to grant consent to location sharing with Alexa from your application.
+
+## Local Voice Control (LVC) Extension
+The LVC extension provides car control, communication, navigation, local search, and entertainment functionality, without an internet connection. It includes components that run an Alexa endpoint inside the vehicle's head unit.
+### Local Voice Control Module
+The Local Voice Control module adds core functionality to Auto SDK to enable offline features. The module infrastructure bridges the Auto SDK Engine to the offline Alexa endpoint running in the head unit and is necessary for all other modules in the LVC extension.
+### Local Skill Service Module
+The Local Skill Service module provides a multipurpose service to the Auto SDK Engine that enables components running alongside the offline Alexa endpoint to communicate with the Auto SDK Engine. The module infrastructure is necessary for other modules in the LVC extension.
+### Local Navigation Module
+The Local Navigation module enables you to provide customers with offline Alexa local search and navigation to points of interest (i.e., categories, chains, and entities) and addresses.
+### Address Book Local Service Module
+The Address Book Local Service module works with the Address Book module and the Local Skill Service module to augment the offline communications and navigation capabilities of Alexa with user data such as phone contacts and navigation favorites.
+### Car Control Local Service Module
+The Car Control Local Service module works with the Car Control module and the Local Skill Service module to enable users to control vehicle features offline with Alexa.
+
+## Mobile Authorization Extension
+The Mobile Authorization extension enables applications running on the vehicle's head unit to simplify the login experience. To log in to Alexa, the user uses the Alexa mobile app on a paired smartphone instead of opening a web browser and entering a code.
+
+## Voice Chrome for Android Extension
+The Voice Chrome extension adds Voice Chrome support to the Auto SDK for Android x86 64-bit and Android ARM 32/64-bit platforms. Voice Chrome provides a consistent set of visual cues representing Alexa attention state across a range of Alexa-enabled devices. The Voice Chrome extension includes a prebuilt Android AAR library for easy integration with your applications, as well as a patch to the Android Sample App that adds the Voice Chrome functionality.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 000000000..b204f9fcd
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,5 @@
+### Security Policy for Device SDKs
+Amazon has updated the AVS API to add a new consent screen during device registration for new users if the device has not been not certified by Amazon. Once the device has completed the testing process including obtaining a security assessment from Authorized Security Lab and receiving an Alexa Built-in badge, this consent screen will be removed and developers will be able to offer the full Alexa experience on their Alexa Built-in devices. To learn more about device testing and certification, please visit [here](https://developer.amazon.com/en-US/alexa/devices/alexa-built-in/development-resources#additional-resources).
+
+### Reporting a Vulnerability
+If you discover a potential security issue in this project we ask that you notify Alexa Voice Services Security team by sending an email to . Please do **not** create a public GitHub issue.
\ No newline at end of file
diff --git a/aacs/android/README.md b/aacs/android/README.md
new file mode 100644
index 000000000..8bd351a7d
--- /dev/null
+++ b/aacs/android/README.md
@@ -0,0 +1,832 @@
+# Alexa Auto Client Service (AACS)
+Alexa Auto Client Service (AACS) is an Alexa Auto SDK feature packaged in an Android archive library (AAR). By providing a common service framework, AACS simplifies the integration of the Auto SDK with your Android device and supports all the Auto SDK extensions.
+
+Your application communicates with AACS through an intent, which is a messaging object on an Android device. AACS provides the platform implementation for certain interfaces, which speeds up Alexa integration for in-vehicle infotainment (IVI). Without AACS, typical integration of the Auto SDK in the IVI involves the implementation of abstract interfaces provided by each Auto SDK module to handle platform-specific functionality. To implement all required platform interfaces, the Auto SDK is integrated to an event-based system that converts from direct method APIs to an event-based architecture.
+
+This document assumes that you understand how the Auto SDK works, as described in the [Auto SDK README](../../README.md). When this document uses the term "application," it refers to the application you develop on the Android platform. Information for your application in this document also applies to your Android service.
+
+
+## Table of Contents
+- [AACS Architecture](#aacs-architecture)
+- [Obtaining the AACS AAR](#obtaining-the-aacs-aar)
+- [Using AACS with Your Application](#using-aacs-with-your-application)
+ - [AACS as Foreground Service or System Service](#aacs-as-foreground-service-or-system-service)
+ - [AACS Initialization and Configuration](#aacs-initialization-and-configuration)
+- [Default Platform Implementation](#default-platform-implementation)
+ - [Property Content Provider Implementation (Optional)](#property-content-provider-implementation-optional)
+ - [Enabling AACS to synchronize Alexa's Time Zone and Locale with Device Settings (Optional)](#enabling-aacs-to-synchronize-alexas-time-zone-and-locale-with-device-settings-optional)
+ - [Using Custom Domain Module with CustomDomainMessageDispatcher Enabled (Optional)](#using-custom-domain-module-with-customdomainmessagedispatcher-enabled-optional)
+- [Specifying the Intent Targets for Handling Messages](#specifying-the-intent-targets-for-handling-messages)
+ - [Using Android Manifest](#using-android-manifest)
+ - [Using AACS Configuration File](#using-aacs-configuration-file)
+- [Platform Implementation in Your Application](#platform-implementation-in-your-application)
+ - [Initial Authentication Sequence Diagram](#initial-authentication-sequence-diagram)
+ - [Wake Word Enabled Sequence Diagram](#wake-word-enabled-sequence-diagram)
+- [Client Utility Library](#client-utility-library)
+- [Device Settings Required for AACS](#device-settings-required-for-aacs)
+- [Checking AACS Connection State](#checking-aacs-connection-state)
+- [Request list of extras from AACS](#request-list-of-extras-from-aacs)
+- [Using Instrumentation](#using-instrumentation)
+- [Including App Components with AACS AAR in your application](#including-app-components-with-aacs-aar-in-your-application)
+- [AACS Sample App](#aacs-sample-app)
+
+## AACS Architecture
+The following diagram shows the high-level architecture of AACS on the Android platform. The shaded boxes in the diagram represent components developed by Amazon that are packaged in AACS.
+
+
+
+
+The following list describes the components in the AACS service layer, as illustrated in the diagram, and how they interact with one another and with the Auto SDK:
+
+1) **AlexaAutoClientService** is a persistent service that can start automatically after device boot-up or be manually started by an application through a `startService()` call. The service performs the following functions:
+
+ * Instantiating the Auto SDK Engine.
+ * Creating and registering the AASB message handler with the AASB MessageBroker.
+ * Setting the required Engine configuration.
+ * Managing the notifications displayed in the system notification area.
+
+2) **PhoneControlMessagingImpl** and **NavigationMessagingImpl** are messaging implementations that serialize direct API calls into a standardized message format. The `PhoneControlMessagingImpl` or `NavigationMessagingImpl` converts platform interface
+method parameters into the message payload of the respective messaging implementation. The message is then sent to the service layer by using the AASB `MessageBroker` with a specific message topic and action. The messaging implementation also subscribes to message topics that are sent from the human-machine interface (HMI) application to the Auto SDK.
+3) **AudioInputImpl**, **AudioOutputImpl**, **ExternalMediaPlayerImpl**, and **AdditionalPlatformImpl** are the direct implementations of Auto SDK platform interfaces. You can enable or disable the implementations in the AACS AAR through the configuration file. If an implementation is disabled, the platform message handler must be provided by a client application.
+4) **AASB MessageBroker** is an abstraction built on top of the Auto SDK core. `MessageBroker` routes messages between the application and the Auto SDK core. When the
+application responds to `MessageBroker` with an event, the event is routed back through the platform interface implementation.
+5) **AASB MessageHandler** implements the platform-specific logic to send and receive AASB messages.
+6) **Mediaplayer** handles the default AudioOutput actions, such as prepare, play, and pause for a TTS channel.
+7) **IPCLibrary** defines the protocol for the communication between the HMI application and AACS.
+It provides the APIs for sending and receiving AASB Messages over the Android Intent/Binder interface and
+supports streaming audio data to and from an external application. It builds into an Android archive (AAR) file, which you can include in other apps that need to communicate with AACS. For more information about the IPC, see this [README](common/ipc/README.md).
+1) **LVCInteractionProvider** implements APIs defined by the `ILVCClient` Android Interface Definition Language (AIDL) file to connect with `ILVCService`, which is implemented by the Local Voice Control (LVC) application. This connection also enables the LVC APK to provide the configuration for LVC.
+2) The core of the **HMI application** that holds the business logic need not change with
+`AlexaAutoClientService`. However, you must modify the application so that it can interface with the APIs defined by AACS.
+
+## Obtaining the AACS AAR
+AACS is packaged as an Android library (AAR). You can obtain the AACS AAR in one of two ways:
+
+* To obtain the pre-built AACS AAR and the other dependency AARs which are required for using AACS, contact your Amazon Solutions Architect (SA) or Partner Manager for more information.
+
+* To build the AACS AAR from source code, following the steps below.
+ 1) Enter the following command to change the directory:
+ ~~~
+ cd ${AAC_SDK_HOME}/aacs/android/service
+ ~~~
+
+ 2) Enter the following command to start the local build.
+ ~~~
+ ./gradlew assembleLocalRelease
+ ~~~
+ This command builds AACS core service, as well as all the other needed dependencies (such as Auto SDK) required for AACS to function. It also generates AAR files that are used for communicating with AACS from your application.
+
+ To install all the generated AARs to your application, add the `installDeps` task after the build command. Specify the path you want the artifacts to be installed to by using the `-PinstallPath` option. If `-PinstallPath` is not specified, the artifacts will be copied to `alexa-auto-sdk/aacs/android/service/deploy` by default.
+ ~~~
+ ./gradlew assembleLocalRelease installDeps -PinstallPath=
+ ~~~
+
+
+## Using AACS with Your Application
+This section provides information about how AACS works with your application.
+
+To build your application with AACS, you can either include AACS and the other dependencies as local sub-projects, or you can build them as AARs and copy to the libs folder of your application.
+
+1. Using AACS as a local module
+
+ Include AACS and the other dependency libraries as sub-projects in the `settings.gradle` file of your project.
+ In the `build.gradle` file of your application, add the following `implementation` statements:
+ ~~~
+ implementation project(':aacs')
+ implementation project(':aacs-extra')
+ implementation project(':aacs-maccandroid')
+ implementation project(':aacsconstants')
+ implementation project(':aacsipc')
+ implementation project(':aacscommonutils')
+ implementation project(':alexa-auto-tts')
+
+ // replace the placeholder with your path
+ implementation fileTree(include: ['*.aar'], dir: )
+ ~~~
+ See the [settings.gradle](../android/sample-app/settings.gradle) and the [build.gradle](../android/sample-app/alexa-auto-app/build.gradle) of AACS Sample App for more information.
+
+2) Using AACS as a local binary
+
+ Include the AARs in the libs folder of your application. See [Obtaining the AACS AAR](#obtaining-the-aacs-aar) for instructions of how to obtain the AACS AARs.
+
+ Add the following `implementation` statement to the `build.gradle` file of your application:
+ ~~~
+ implementation fileTree(dir: 'libs', include: ['*.aar'])
+ ~~~
+
+### AACS as Foreground Service or System Service
+AACS runs as a started service on Android. The [Initialization](#initialization) section describes how it is started; this section describes what you do to run AACS as a foreground service or a system service.
+
+#### As Foreground Service
+Typically, AACS is started as a foreground service, which has higher priority and continues running unless it is under memory constraints. In addition, the service displays notifications to alert the user that it is running.
+
+To run AACS as a foreground service, in the AACS configuration, set `persistentSystemService` under `aacs.general` to
+`false`. Then your application can use the `startForegroundService()` function to initialize AACS. If AACS is started properly, a notification is displayed.
+
+Since Android 8.0 (API level 26), foreground services have had
+some changes in how they are initialized. The following code checks the Android version and calls the correct API:
+~~~
+Intent intentStartService = new Intent();
+intentStartService.setComponent(new ComponentName(AACSConstants.getAACSPackageName(new WeakReference(context)),
+"com.amazon.alexaautoclientservice.AlexaAutoClientService"));
+intentStartService.setAction(Action.LAUNCH_SERVICE);
+
+if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
+ startForegroundService(intent);
+} else {
+ startService(intent);
+}
+~~~
+
+#### As Persistent System Service
+If you have root access on the device and your application containing AACS AAR is a system application, you can configure AACS to run as a system service. In the AACS configuration, set `persistentSystemService` under `aacs.general` to `true`.
+~~~
+"aacs.general" : {
+ "persistentSystemService": true,
+ ...
+}
+~~~
+This setting is equivalent to setting the 'persistent' flag to true within the `application` element of the Android Manifest file. This flag indicates that the service runs at all times, and should only be set to true by system applications. Your application no longer needs to start AACS in the foreground, and no notifications appear to show that the service is running. The following example shows an application starting AACS as a system service:
+~~~
+Intent intentStartService = new Intent();
+intentStartService.setComponent(new ComponentName(AACSConstants.getAACSPackageName(new WeakReference(context)),
+"com.amazon.alexaautoclientservice.AlexaAutoClientService"));
+intentStartService.setAction(Action.LAUNCH_SERVICE);
+
+startService(intent);
+~~~
+
+### AACS Initialization and Configuration
+Initializing AACS means getting AACS ready to communicate with other applications. However, Alexa functionality is not available until AACS receives the configuration.
+
+#### Initialization
+There are two ways to initialize AACS:
+
+* Start AACS from an application:
+AACS includes a permission that determines whether an application can start or stop the service. For an application to start or stop AACS, specify the permission name in the application's `AndroidManifest.xml` file as follows:
+
+ ``
+
+ For an example of starting AACS from an application, see [example for starting AACS as a system service](#as-persistent-system-service).
+
+* Start AACS upon device boot: If you want AACS to start every time the user turns on the device, set `startOnDeviceBootEnabled` in `aacs.general` of your configuration to `true`. Due to this setting, AACS initiates a `startService()` call on itself when it receives the `BOOT_COMPLETED` intent, which the device broadcasts when it is finished booting.
+
+ >**Important!** The device considers AACS inactive until AACS is run at least once. AACS does not start automatically on device boot unless AACS is considered active. Simply run AACS at least once after installation, and AACS will start each time the device is restarted.
+
+Whether `startOnDeviceBootEnabled` is set to `true` or `false`, the application can always send a `startService()` or `stopService()` call to start or stop AACS.
+
+#### Configuration Schema
+This section describes the configuration schema, which includes Auto SDK engine configuration, general service behavioral settings, and definitions for how AACS interfaces with applications. For more information about AACS configuration, see [Configuration Reference documentation](service/README.md).
+
+ >**Important!** Some configuration fields may require you to provide filepaths. These filepaths must be absolute paths that are accessible to AACS. AACS will not accept filepaths to public locations (such as SD card) for security reasons.
+
+The sample configuration JSON file in this section illustrates the AACS configuration structure. Be sure to fill out the following required sections under `deviceInfo` of `aacs.alexa`:
+ * `clientId`
+ * `productId`
+ * `deviceSerialNumber`
+
+The following documents provide more information about configuration:
+
+* [Auto SDK class list](https://alexa.github.io/alexa-auto-sdk/docs/cpp/annotated.html)
+* [Complete configuration file](./assets/config.json)
+~~~
+{
+ "aacs.alexa": {
+ "deviceInfo": {
+ "clientId": "",
+ "productId": "",
+ "deviceSerialNumber": "",
+ "manufacturerName": "name",
+ "description": "description"
+ },
+ "localMediaSource": {
+ "types": []
+ },
+ "audio": {
+ "audioOutputType.music": {
+ "ducking":{
+ "enabled": true
+ }
+ }
+ },
+ "requestMediaPlayback": {
+ "mediaResumeThreshold": 50000
+ }
+ },
+ "aacs.vehicle": {
+ "info": {
+ "make": "Amazon",
+ "model": "AACE",
+ "year": "2020",
+ "trim": "aac",
+ "geography": "US",
+ "version": "1.2.3",
+ "os": "Sample OS 1.0",
+ "arch": "Sample Arch 1.0",
+ "language": "en-US",
+ "microphone": "SingleArray",
+ "countries": "US,GB,IE,CA,DE,AT,IN,JP,AU,NZ,FR",
+ "vehicleIdentifier": "Sample Identifier ABC"
+ },
+ "operatingCountry": "US"
+ },
+ "aacs.cbl": {
+ "enableUserProfile": false
+ },
+ "aacs.carControl": {
+ "endpoints":[],
+ "zones":[]
+ },
+ "aacs.general" : {
+ "version": "1.0",
+ "persistentSystemService": false,
+ "startServiceOnBootEnabled": true,
+ "intentTargets" : {
+ "AASB" : {
+ "type": ["RECEIVER"],
+ "package": [],
+ "class": []
+ },
+ "APL" : {
+ "type": ["RECEIVER"],
+ "package": [],
+ "class": []
+ },
+ ... (Other topics omitted)
+ }
+ },
+ "aacs.defaultPlatformHandlers": {
+ "useDefaultLocationProvider": true,
+ "useDefaultNetworkInfoProvider": true,
+ "useDefaultExternalMediaAdapter": true,
+ "useDefaultPropertyManager": true",
+ "audioInput": {
+ "audioType": {
+ "VOICE": {
+ "useDefault": true,
+ "audioSource": "MediaRecorder.AudioSource.MIC",
+ "handleAudioFocus" : true
+ },
+ "COMMUNICATION": {
+ "useDefault": true,
+ "audioSource": "MediaRecorder.AudioSource.MIC"
+ }
+ }
+ },
+ "audioOutput": {
+ "audioType": {
+ "TTS": {
+ "useDefault": true
+ },
+ "ALARM": {
+ "useDefault": true
+ },
+ "MUSIC": {
+ "useDefault": false
+ },
+ "NOTIFICATION": {
+ "useDefault": true
+ },
+ "EARCON": {
+ "useDefault": true
+ },
+ "RINGTONE": {
+ "useDefault": true
+ },
+ "COMMUNICATION": {
+ "useDefault": true
+ }
+ }
+ }
+ }
+ }
+~~~
+
+#### Sending a Configuration Message
+Sending the configuration relies on the provided [IPC library](common/ipc/README.md). This section describes the configuration's basic syntax.
+
+The message structure consists of two fields, `configFilepaths` and `configStrings`. `configFilepaths` is a String array containing paths to files which hold full or partial configuration JSON. `configStrings` is a String array containing full or partial configurations in the form of escaped JSON Strings. All partial configurations (from filepath or String) will be reconstructed by AACS to be a single, full configuration. We recommend using the `configStrings` option. See the **Important** note on filepaths in the beginning of the [Configuration](#configuration-schema) section. The following code shows an empty `configMessage`:
+~~~
+{
+ "configFilepaths: [],
+ "configStrings": []
+}
+~~~
+Using an instance of `AACSSender`, the `sendConfigMessageEmbedded()` or `sendConfigMessageAnySize()` method ensures that the configuration message can be sent to AACS. The following example shows how to construct and send the configuration message:
+
+~~~
+try {
+ String config = "..."; // configuration read from file
+ JSONObject configJson = new JSONObject(config);
+ JSONArray configStringsArray = new JSONArray();
+ configStringsArray.put(configJson.toString()); // add escaped JSON string
+ JSONObject configMessage = new JSONObject();
+ configMessage.put("configFilepaths", new JSONArray());
+ configMessage.put("configStrings", configStringsArray);
+ aacsSender.sendConfigMessageAnySize(configMessage.toString(), target, getApplicationContext());
+} catch (JSONException e) {
+ ...
+}
+~~~
+
+#### File Sharing and Permissions
+Some configurable fields for the Auto SDK require paths to files in your application, which is inaccessible to AACS. To enable the Auto SDK to get the file paths, AACS provides a protocol for applications to grant the Auto SDK URI permissions for these files. AACS then creates a local copy of the file in its internal storage and configures the fields for the Auto SDK, using the file path to the local copy to ensure accessibility. Fields that require file sharing are described in documentation. Currently, only installed extensions have configurable fields that need file sharing. See the AACS README for your extension for more information about file sharing.
+
+AACS's file sharing protocol uses Android's `FileProvider` class to securely receive the URIs of files in applications. See the [Android documentation](#https://developer.android.com/training/secure-file-sharing/setup-sharing) on how to set up `FileProvider` in your application. Your `FileProvider` is functional after the application includes a `` element in its AndroidManifest and a `filepaths.xml` file for specifying shareable paths.
+
+After `FileProvider` is set up, AACS expects to receive an intent with action `Intent.ACTION_SEND_MULTIPLE` to include the URIs of files to be shared. Send the intent **after** service initialization but **before** the configuration message is sent. It requires the following structure:
+* **Action:** `Intent.ACTION_SEND_MULTIPLE` - The standard Android intent for sharing multiple pieces of content
+* **Type:** The MIME type of a URI
+* **Extra:** `AACSConstants.CONFIG_MODULE` or `configModule`- A `String` representing the module to be configured by the shared files
+* **ParcelableArrayListExtra:** `Intent.EXTRA_STREAM` - An `ArrayList` containing URIs of files to be shared
+
+Before sending the intent, be sure to grant the `Intent.FLAG_GRANT_READ_URI_PERMISSION` to AACS for each URI being sent. Also, because the intent holds multiple file URIs for a single configuration module at a time, if there are multiple files for separate modules, send multiple intents, as shown in the following example implementation:
+
+~~~
+private void shareFilePermissionsOfSameModule(File parent, String[] filenames, String module) {
+ ArrayList fileUris = new ArrayList<>();
+ for (String name : filenames) {
+ File file = new File(parent, name);
+ Uri fileUri = FileProvider.getUriForFile(
+ MainActivity.this,
+ ,
+ file);
+ grantUriPermission(AACSConstants.getAACSPackageName(new WeakReference(context)), fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ fileUris.add(fileUri);
+ }
+
+ Intent shareFileIntent = new Intent();
+ shareFileIntent.setComponent(
+ new ComponentName(AACSConstants.getAACSPackageName(new WeakReference(context)), AACSConstants.AACS_CLASS_NAME));
+ shareFileIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
+ shareFileIntent.setType(getContentResolver().getType(fileUris.get(0)));
+ shareFileIntent.putExtra(AACSConstants.CONFIG_MODULE, module);
+ shareFileIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, fileUris);
+ startForegroundService(shareFileIntent);
+}
+~~~
+
+>**Note:** `AACSConstants.AACS_PACKAGE_NAME` is deprecated and it shall be removed from the future Alexa Auto SDK versions. Use `AACSConstants.getAACSPackageName(Context)` instead.
+
+#### Initialization Protocol
+After starting the service, send file sharing intents for any files outside of AACS's access that will be needed for configuration. Then, send the configuration message. If there are no files to be shared, the configuration can be sent immediately after AACS is initialized. The configuration is not part of the initial intent to start the service because intents in Android have size limits, which the configuration might exceed. Using the provided IPC library allows for sending configuration of any size.
+
+Because AACS stores the last configuration received, the only requirement is that the configuration is sent the first time AACS is run
+after installation. At any subsequent start, AACS uses the stored configuration. Similarly for shared files, AACS retains local copies of the files,
+so file sharing intents do not have to be re-sent in subsequent launches.
+
+However, updating the stored configuration (without uninstalling the application containing AACS AAR) requires that the
+`startService` intent include an `Extras` field called `newConfig`. `newConfig` holds a
+boolean value that alerts AACS not to start running with the stored configuration, but wait for a new configuration message.
+In addition, whenever the `newConfig` field is set to `true`, AACS clears all local copies of shared files
+and expect new file sharing intents, if necessary for the new configuration.
+
+**Note**: The old configuration is overwritten by the new configuration.
+
+For your application to start AACS with a new configuration, make sure your intent includes `newConfig`, as shown in the following example:
+
+~~~
+Intent intentStartService = new Intent();
+intentStartService.setComponent(new ComponentName(AACSConstants.getAACSPackageName(new WeakReference(context)),
+"com.amazon.alexaautoclientservice.AlexaAutoClientService"));
+intentStartService.setAction(Action.LAUNCH_SERVICE);
+intentStartService.putExtra("newConfig", true);
+~~~
+
+Omitting `newConfig` is the same as setting it to `false`, which causes AACS to use the stored configuration.
+
+**Important**: Sending a new configuration is allowed only once per service run. After AACS is configured and
+running, AACS ignores subsequent attempts to update the configuration, even if the `newConfig` field is `true`. To update an existing configuration, you must
+stop the service and restart it with `newConfig` set to `true`. This same rule applies to file sharing intents.
+
+#### Initialization Sequence Diagram
+The following diagram shows an example of initializing AACS from an app used by a driver.
+
+
+
+
+## Default Platform Implementation
+Default platform implementations refer to implementations of Auto SDK platform interfaces that AACS provides to replace the normal protocol of using AASB messages. By enabling a default platform implementation in AACS, you no longer have to handle messages for a particular platform interface and can rely on AACS to provide the necessary functionality.
+
+AACS provides a default implementation for these platform interfaces:
+* AudioInput (audioType: VOICE, COMMS)
+* AudioOutput (audioType: TTS, ALARM, NOTIFICATIONS, EARCON, RINGTONE)
+* LocationProvider
+* NetworkInfoProvider
+* ExternalMediaAdapter for Media App Command and Control (MACC)
+* LocalMediaSource
+* PropertyManager
+
+The platform implementations for these interfaces are disabled by default; the AASB messages for these interfaces are routed to the [client app to be handled](#specifying-the-app-targets-for-handling-messages).
+
+To enable the default platform implementation in AACS, you must set the `aacs.defaultPlatformHandlers`
+configuration flags. In the following example, you use `aacs.defaultPlatformHandlers` in the
+configuration file to instruct AACS to handle `LocationProvider` and `NetworkInfoProvider`, `AudioInput` for `VOICE`, and
+`AudioOutput` for `TTS`. Specific apps handle the other messages.
+
+~~~
+"aacs.defaultPlatformHandlers": {
+ "useDefaultLocationProvider": true,
+ "useDefaultNetworkInfoProvider": true,
+ "useDefaultExternalMediaAdapter": true,
+ "useDefaultPropertyManager": true",
+ "audioInput": {
+ "audioType": {
+ "VOICE": {
+ "useDefault": true,
+ "audioSource": "MediaRecorder.AudioSource.MIC",
+ "handleAudioFocus" : true
+ },
+ }
+ },
+ "audioOutput": {
+ "audioType": {
+ "TTS": {
+ "useDefault": true
+ },
+ "MUSIC": {
+ "useDefault": false
+ },
+ ... other audio types
+ }
+ }
+ }
+~~~
+
+### Property Content Provider Implementation (Optional)
+
+AACS supports the Android `ContentProvider` class, which is a standard Android mechanism for performing CRUD (Create, Read, Update, Delete) operations on stored data. By extending this class, you can use a content provider, instead of AACS messages, to manage Auto SDK properties and retrieve state information. Using a content provider offers the following advantages:
+
+* AACS can consistently provide the properties across multiple launches. Because properties are persistent, your application does not need to reset the properties after each AACS restart.
+
+* AACS messages are asynchronous, which might cause timeouts and subsequently incorrect or error states. Using a content provider to retrieve state data makes the retrieval process synchronous, thus guaranteeing that the request for state information reaches its destination and a response is received.
+
+* ContentProvider is the standard Android mechanism for performing CRUD (Create, Read, Update, Delete) operations on stored data.
+
+#### Sequence Diagram and Overview
+
+The following sequence diagram illustrates the workflow for the default property manager implementation in AACS. This implementation provides the interface, based on the Android `ContentProvider`, for OEM apps to get and set Auto SDK properties.
+
+~~~
+aace.alexa.wakewordSupported
+aace.alexa.system.firmwareVersion
+aace.alexa.setting.locale
+aace.alexa.countrySupported
+aace.alexa.timezone
+aace.alexa.wakewordEnabled
+aace.vehicle.operatingCountry
+aace.core.version
+aace.network.networkInterface
+~~~
+
+By using the native Android `ContentProvider` class, you can initiate `query` and `update` operations. query retrieves and returns the current String value of an Auto SDK property. `update` sets an Auto SDK property in the Engine and returns a boolean value based on the success of the operation. Insert and Delete operations are disabled for Auto SDK properties.
+
+
+
+
+
+#### Implementation Examples
+1. Add `useDefaultPropertyManager` in the `config.json` file and set it to `true`, as shown in the following example:
+
+~~~
+...
+ "aacs.defaultPlatformHandlers": {
+ "useDefaultLocationProvider": true,
+--> "useDefaultPropertyManager": true,
+ "audioInput": {
+ "audioType": {
+...
+~~~
+
+2. Add `READ_USER_DICTIONARY` permission to `AndroidManifest.xml` in your application, as shown in the following example:
+~~~
+
+ {
+ getContentResolver().update(uri, cv, propertyName, null);
+ });
+ }
+}
+~~~
+
+#### Important Considerations for Using ContentProvider
+
+* AACS Property Content Provider does not support the `insert` and `delete` APIs in Property ContentProvider;
+
+* You must use AACS with the AmazonLite Wake Word extension if you want to update `aace.alexa.wakewordEnabled` property;
+
+* `aace.alexa.countrySupported` is a deprecated property and cannot be get/set;
+
+* `aace.alexa.wakewordSupported` and `aace.core.version` are read-only properties acquired when building Auto SDK and cannot be set.
+
+* Valid property value for `aace.alexa.wakewordEnabled` is `true` or `false`. All the other Auto SDK properties will be validated by Auto SDK. Auto SDK will provide value validation for `aace.alexa.wakewordEnabled` in the future.
+
+### Enabling AACS to synchronize Alexa's Time Zone and Locale with Device Settings (Optional)
+AACS supports synchronizing Alexa's time zone and locale properties with the ones in device settings. To enable the functionality, refer to this [README](service/README.md#syncsystempropertychange) for proper configuration. Once enabled, AACS will synchronize the time zone and/or locale properties of Alexa with the device settings in the following conditions:
+* When Auto SDK engine is initialized, AACS tries to synchronize both properties with the device settings. The property change would fail and not take effect if the system locale is not supported by Alexa.
+* When the authorization state is refreshed, AACS tries to synchronize both properties with the device settings. The property change would fail and not take effect if the system locale is not supported by Alexa.
+* When AACS gets `android.intent.action.LOCALE_CHANGED` intent as a result of device locale setting change, Alexa locale property will be updated if the locale is supported by Alexa.
+* When AACS gets `android.intent.action.TIMEZONE_CHANGED` intent as a result of device time zone setting change, Alexa time zone property will be updated.
+
+You can also disable the automatic synchronization for specific properties. This is particularly useful when your application wants to disable/enable the synchronization at runtime. For example, after the user manually selects a locale, you may want to disable the synchronization to allow the user's selection to override the system setting changes. To achieve this use case, your application can send intents with the metadata below to AACS:
+* Action:
+ * Disable: `com.amazon.aacs.syncSystemPropertyChange.disable`
+ * Enable: `com.amazon.aacs.syncSystemPropertyChange.enable`
+* Category: `com.amazon.aacs.syncSystemPropertyChange`
+* Extra: `"property": `
+
+If this feature is not enabled, your application can still have the full flexibility in changing the two properties by handling AASB Property Manager messages.
+
+Additionally, you can configure AACS to update the system time zone if the user changes the Alexa's time zone for the device (e.g. the user can change the property on their Alexa mobile app). To enable the functionality, refer to this [README](service/README.md#updatesystempropertyallowed) for proper configuration. Your application with AACS needs to be a system application with android permission `android.permission.SET_TIME_ZONE` obtained.
+
+**Note:** Always provide the system permission `android.permission.SET_TIME_ZONE` when AACS AAR is in a system application. Refer to [Privileged Permission Allowlisting](https://source.android.com/devices/tech/config/perms-allowlist) in Android documentation.
+
+### Using Custom Domain Module with CustomDomainMessageDispatcher Enabled (Optional)
+To use Custom Domain module with AACS, you need to explicitly enable it first by adding module enablement configuration. Please refer to [AACS Configuration README](service/README.md#aacs-module-enablement) to enable the Custom Domain module.
+
+By default, all the Custom Domain intents share the same `com.amazon.aacs.aasb.customDomain` intent category. If CustomDomainMessageDispatcher is enabled, the intent category will be the namespace of the custom interface prefixed with `com.amazon.aacs.customDomain`, which allows AACS to dispatch the Custom Domain AASB messages from the engine to the proper components in your system based on the custom namespace.
+
+Below is the intent schema of the intents sent from the dispatcher. All the intents are sent with our [IPC library](common/ipc/README.md). You can use `AACSReceiver` to receive and process the AASB Custom Domain messages in the intents.
+
+* Intent for handling/canceling a custom directive:
+
+ * Action: `com.amazon.aacs.customDomain.`.
+ * Category: `com.amazon.aacs.customDomain.`.
+
+* Intent for getting the context for a custom namespace:
+
+ * Action: `com.amazon.aacs.customDomain.GetContext`
+ * Category: `com.amazon.aacs.customDomain.`.
+
+You can define intent filters in the Android Manifest of your applications to subscribe to the specific Custom Domain intents. See [Specifying the Intent Targets for Handling Messages Using Android Manifest](#using-android-manifest) to learn more about specifying intent targets.
+Please refer to this [README](service/README.md#usedefaultcustomdomainmessagedispatcher) on enabling CustomDomainMessageDispatcher.
+
+>**Note**: CustomDomainMessageDispatcher does not process any custom directives. Your application is responsible for handling any custom directives, sending custom events, and providing custom contexts following the [Custom Domain AASB Documentation](https://alexa.github.io/alexa-auto-sdk/docs/sdk-docs/modules/custom-domain/aasb-docs/CustomDomain/index.html). If the dispatcher is not enabled, your application will be responsible for receiving all the Custom Domain AASB Messages (as intents) at one place.
+
+## Specifying the Intent Targets for Handling Messages
+
+The AASB message intent targets can be `ACTIVITY`, `RECEIVER`, or `SERVICE`. There are two ways to specify the intent targets for AASB message intents from AACS.
+
+### Using Android Manifest
+You can define intent filters in your application's Android Manifest. The intent filter must exactly match the intents' categories and actions. In the intent filter for an intent that wraps an AASB message, specify the category as `com.amazon.aacs.aasb.` and action as `com.amazon.aacs.aasb.`.
+
+The following example shows an intent filter of all the CBL message intents for a broadcast receiver target:
+~~~
+
+
+
+
+
+
+
+
+
+
+~~~
+To receive the message specified through the Android Manifest, the application must also have `com.amazon.alexaautoclientservice` permission in its Android Manifest.
+~~~
+
+~~~
+
+Follow these important guidelines if the intent target is an activity:
+
+* You must add `` to the intent filter as explained [here](https://developer.android.com/guide/components/intents-filters).
+
+* Be aware that if you start applications with AACS (for example, by specifying Activity as the intent targets from AACS), the target Activity will move to the foreground or become in focus, causing distraction or confusion to the user. AACS does not request `SYSTEM_ALERT_WINDOW` permission to directly create windows on top of all other apps. Amazon recommends using VIS (VoiceInteractionService) to launch activities, and using Android Services or Broadcast Receivers to receive intents from AACS.
+
+### Using AACS Configuration File
+You can use the AACS configuration file to specify the app that can handle AASB messages with a specific "topic". This method of specifying intent targets has the highest priority, meaning it can *override* the ones specified through intent filters in manifests. After you use the AACS configuration to specify the app, intents with all the actions belonging to the topic go to the specified targets.
+Fill the optional fields in `intentTargets` in the AACS configuration file as needed. See the [Configuration Reference documentation](service/README.md) for information about `intentTargets`. The following sample configuration shows how to populate `intentTargets` for each topic. The field `type` accepts `RECEIVER`, `ACTIVITY`, and `SERVICE`, depending on the type of the target that handles the intents with the topic. The targets can be broadcast receiver, application activity, and service.
+
+The format for specifying AASB message intent targets for an AASB message topic is as follows:
+~~~
+"" : {
+ "type": [, , ...],
+ "package": ["", "", ...],
+ "class": ["", "", ...]
+},
+~~~
+
+The following example shows two topics, which are `AASB` and `APL`:
+~~~
+ "aacs.general" : {
+ "intentTargets" : {
+ "AASB" : {
+ "type": ["ACTIVITY"],
+ "package": ["com.amazon.aacstestapp"],
+ "class": ["com.amazon.aacstestapp.MainActivity"]
+ },
+ "APL" : {
+ "type": ["RECEIVER"],
+ "package": ["com.amazon.aacstestapp"],
+ "class": [".IntentReceiver"] // short version of class name is also accepted.
+ }, // In this case, the class must be in the package specified in "package".
+ // ... other topics
+ }
+ }
+~~~
+
+**NOTE**: If a given "topic" is specified both in the configuration file and the
+Android Manifest, the configuration file takes priority and the targets with intent filters are ignored. Amazon recommends intent filters when possible. Use the configuration approach only if you need to override the existing intent filters.
+
+AACS first searches for targets for an intent with a topic in the configuration file. If nothing is found, the package manager scans the intent filters on the device to locate a match. AACS also caches the scan results based on both topic and action. The cache is cleared every time AACS is restarted.
+
+## Platform Implementation in Your Application
+Your applications can register for specific AASB messages and provide a platform implementation. For example, an application (“Login app") can register for Authorization messages. For information about the Authorization module, see the [Core Module README](../../modules/core/README.md).
+
+### Initial Authentication Sequence Diagram
+The following sequence diagram illustrates how an application (“Login app") exchanges messages with AACS over Android Intents to log in the user for Alexa.
+
+
+
+
+
+### Wake Word Enabled Sequence Diagram
+The sequence diagram illustrates the sequence for the user to access Alexa if you use the default implementation of AudioInput in AACS. In this diagram, the driver is logged in and wake word is enabled. The driver initiates the action by uttering the Alexa wake word.
+
+
+
+
+1. Audio is processed locally by the wake word engine in AACS until the wake word is detected. Upon wake word detection, AACS notifies the application that the dialog state has changed to "listening" and initiates a Recognize event with Alexa.
+
+2. While in the listening state, audio data is sent to Alexa. When the end of speech is detected, Alexa sends a `StopCapture` directive to AACS, and the dialog state is changed to "thinking." Alexa then responds with additional directives in response to the speech request.
+
+For information about other messages to provide your implementation in the client APK, please refer to the README for each Auto SDK module.
+
+## Client Utility Library
+
+AACS also provides an optional library, [AACS Common Utils](common/commonutils/README.md). It contains useful methods to make messaging with AACS easier. You can use it as-is or as a reference to facilitate the integration of the Auto SDK with AACS. For information about the library, see [AACS Common Utils README](common/commonutils/README.md) and in-code documentation in the library.
+
+## Device Settings Required for AACS
+AACS requires microphone and location permissions when the default implementation is used for AudioInput and Location. If AACS runs in a system application, you can grant these permissions so that the application users do not have to set the permissions. Otherwise, be sure to instruct your users to grant the following permissions on the app info page under Settings on their device:
+
+* Location: Enable `android.permission.ACCESS_FINE_LOCATION` to give AACS access the current location.
+
+* Microphone: Enable `android.permission.RECORD_AUDIO` to give permission to AACS to record audio. Microphone must be enabled if you configure AudioInput to use the default implementation of AACS.
+
+## Checking AACS Connection State
+Your application or service can check the status of AACS by using `ping`, which returns a response as long as AACS is running. The `AACSPinger` utility class from the IPC library enables you to use `ping`.
+
+To ping AACS, specify the ping permission name in your application's Android Manifest file as follows:
+
+~~~
+
+~~~
+
+The following example shows how to use `AACSPinger`:
+
+~~~
+AACSPinger aacsPinger = new AACSPinger(getApplicationContext(),
+ "com.amazon.alexaautoclientservice.ping");
+
+Future fut = aacsPinger.pingAACS();
+
+AACSPinger.AACSPingResponse response = fut.get();
+
+if (response.hasResponse) {
+ // Ping was responded to by AACS
+ String state = response.AACSState;
+ ...
+} else {
+ // Ping timed out without an AACS response
+}
+~~~
+
+If AACS responds to the ping request, the `AACSPingResponse.AACSState` string returned by `AACSPinger.pingAACS()` has one of the following values:
+
+* `STARTED`
+* `WAIT_FOR_LVC_CONFIG`
+* `CONFIGURED`
+* `ENGINE_INITIALIZED`
+* `CONNECTED`
+* `STOPPED`
+
+If AACS does not respond within the default timeout of 1 second, `AACSPingResponse.hasResponse` is `false`.
+
+
+## Request list of extras from AACS
+
+Your application can receive the list of AACS extra modules by sending an intent with the action `AACSConstants.IntentAction.GET_SERVICE_METADATA` and the category `AACSConstants.IntentCategory.GET_SERVICE_METADATA`, which returns a response by receiving an intent `AACSConstants.IntentAction.GET_SERVICE_METADATA_REPLY`.
+
+To get the extras list from AACS-
+
+- Specify the permission name in your application's Android Manifest file as follows:
+
+~~~ xml
+
+~~~
+
+- Register a receiver in you application's Android Manifest file as follows:
+Following block shows an example of requesting list of extras:
+
+~~~ xml
+
+~~~
+
+- Send a request intent to AACS. Following code snippet shows an example
+
+~~~ java
+Intent intent = new Intent();
+intent.setAction(AACSConstants.IntentAction.GET_SERVICE_METADATA);
+intent.addCategory(AACSConstants.IntentCategory.GET_SERVICE_METADATA);
+intent.putExtra(AACSConstants.REPLY_TO_PACKAGE, getPackageName());
+intent.putExtra(AACSConstants.REPLY_TO_CLASS, .class.getName());
+intent.putExtra(AACSConstants.REPLY_TYPE, "RECEIVER");
+sendBroadcast(intent);
+~~~
+
+- Your receiver class will receive an intent with the following payload
+
+~~~ json
+{
+ "metaData": {
+ "extrasModuleList": []
+ }
+}
+~~~
+
+- You can get the payload from the received intent with action `AACSConstants.IntentAction.GET_SERVICE_METADATA_REPLY`. Following code snippet shows the example:
+
+~~~ java
+String payload = intent.getStringExtra(AACSConstants.PAYLOAD);
+~~~
+
+## Using Instrumentation
+You can use AACS instrumentation to log AASB messages for debugging purposes. For more information about how to use instrumentation, see the [AACS Instrumentation README](./service/core-service/src/debug/java/com/amazon/alexaautoclientservice/README.md).
+
+>**Note:** You can use instrumentation only if you use the debug option when building the Auto SDK with AACS.
+
+## Including App Components with AACS AAR in your application
+The Auto SDK provides packages (also called "app components") in the [`$AAC_SDK_HOME/aacs/android/app-components`](./app-components) directory. App components could be included in your application along with AACS AAR to speed up the Alexa integration.
+
+>**Note:** Some app components implement the handling of AASB messages for certain topics, allowing your applications to interface with AACS by using standard Android APIs. If you include such app components in your application with AACS AAR, your application does not need to handle the AASB messages for those particular AASB topics.
+
+## AACS Sample App
+The Auto SDK includes an Android-based application that demonstrates how an application uses AACS. For more information about the AACS Sample App, see the [AACS Sample App README](sample-app/README.md).
diff --git a/platforms/android/app-components/alexa-auto-apis/.gitignore b/aacs/android/app-components/alexa-auto-apis/.gitignore
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/.gitignore
rename to aacs/android/app-components/alexa-auto-apis/.gitignore
diff --git a/aacs/android/app-components/alexa-auto-apis/README.md b/aacs/android/app-components/alexa-auto-apis/README.md
new file mode 100644
index 000000000..fbe146700
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/README.md
@@ -0,0 +1,35 @@
+# Alexa Auto API
+
+This Alexa Auto API package provides:
+* Types that are used across multiple Java packages. A Java package is a collection of related types, which is created to avoid type name collisions.
+* Interfaces that allow packages to communicate with each other by using standard Java, as long as the consumer and provider of the interface meet these requirements:
+ * They are in the same Android Package (APK).
+ * They are loaded and used in the same process.
+
+## Component Registry (Service Locator)
+To enable a package to locate the implementation of an API, the Alexa Auto API Package defines the component registry interfaces and the mechanism to obtain the component registry (also called the service locator).
+
+### Consuming Implementations from Other Packages
+
+The following list explains the component registry interfaces:
+* `AlexaAppRootComponent` is a component registry interface with an application scope. It provides interfaces that are in scope for the lifetime of the app. This interface provides access to `AlexaAppScopedComponents`, among other interfaces.
+* `AlexaAppScopedComponents` provides interfaces that are available for a limited scope. For example, when an app is in logged-off state, `AlexaAppLoggedOutScopedComponent` can be queried by using `AlexaAppScopedComponents`.
+
+Any library or application class can obtain `AlexaAppRootComponent` as long as it has the Android context. The following code example illustrates how an app obtains `AlexaAppRootComponent`:
+
+```
+class MyActivity extends AppCompatActivity {
+
+ public void onStart() {
+ AlexaApp app = AlexaApp.from(this);
+ AlexaAppRootComponent componentRegistry = app.getRootComponent();
+ componentRegistry.getXYZ().doSomethingUseful();
+ }
+}
+```
+
+### Publishing Implementations for Other Packages
+How a package publishes the implementation of an API for another package to use depends on the scope, as explained in the following list:
+
+* App lifecycle implementation: If an object's lifecycle is bound to the lifecycle of an app, then the main Alexa app APK creates an instance of the object and makes it available through the implementation of `AlexaAppRootComponent`.
+* Limited scoped implementations: A package can publish scoped components into the component registry to be discovered by other packages. To publish a scoped component, the package can obtain `AlexaAppScopedComponentsActivator` from `AlexaAppRootComponent`.
diff --git a/aacs/android/app-components/alexa-auto-apis/build.gradle b/aacs/android/app-components/alexa-auto-apis/build.gradle
new file mode 100644
index 000000000..a332808d3
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/build.gradle
@@ -0,0 +1,50 @@
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ compileSdkVersion 28
+ defaultConfig {
+ minSdkVersion 25
+ versionCode 1
+ versionName "4.0"
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ debug {
+ testCoverageEnabled true
+ debuggable true
+ }
+ }
+
+ testOptions {
+ // Unit Test: Make all android methods return true by default
+ unitTests.returnDefaultValues = true
+ }
+
+ compileOptions {
+ targetCompatibility 1.8
+ sourceCompatibility 1.8
+ }
+
+ libraryVariants.all { variant ->
+ variant.outputs.all {
+ def project = "alexa-auto-apis"
+ def separator = "_"
+ def buildType = variant.buildType.name
+ def apkName = project + separator + buildType + ".aar"
+ outputFileName = new File(apkName)
+ }
+ }
+
+}
+
+dependencies {
+ implementation deps.kotlin_stdlib
+ implementation deps.androidx_appcompat
+ implementation deps.rxjava3
+ implementation deps.androidx_navigation_fragment
+}
diff --git a/extensions/bluetooth/aacs/android/modules/aacs-bluetooth/proguard-rules.pro b/aacs/android/app-components/alexa-auto-apis/proguard-rules.pro
similarity index 100%
rename from extensions/bluetooth/aacs/android/modules/aacs-bluetooth/proguard-rules.pro
rename to aacs/android/app-components/alexa-auto-apis/proguard-rules.pro
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/AndroidManifest.xml b/aacs/android/app-components/alexa-auto-apis/src/main/AndroidManifest.xml
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/AndroidManifest.xml
rename to aacs/android/app-components/alexa-auto-apis/src/main/AndroidManifest.xml
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AnimationProvider.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AnimationProvider.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AnimationProvider.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AnimationProvider.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AssistantManager.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AssistantManager.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AssistantManager.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/AssistantManager.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/EarconProvider.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/EarconProvider.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/EarconProvider.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/EarconProvider.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SettingsProvider.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SettingsProvider.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SettingsProvider.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SettingsProvider.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupController.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupProvider.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupProvider.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupProvider.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/alexaCustomAssistant/SetupProvider.java
diff --git a/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/apl/APLTheme.kt b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/apl/APLTheme.kt
new file mode 100644
index 000000000..654021ea6
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/apl/APLTheme.kt
@@ -0,0 +1,5 @@
+package com.amazon.alexa.auto.apis.apl
+
+data class APLTheme (
+ val themePayload : String?
+)
\ No newline at end of file
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaApp.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaApp.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaApp.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaApp.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaAppRootComponent.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaAppRootComponent.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaAppRootComponent.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/AlexaAppRootComponent.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/ScopedComponent.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/ScopedComponent.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/ScopedComponent.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/app/ScopedComponent.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthController.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthStatus.kt b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthStatus.kt
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthStatus.kt
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthStatus.kt
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt
similarity index 93%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt
index 7f26196d2..738124153 100644
--- a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt
+++ b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthWorkflow.kt
@@ -23,7 +23,8 @@ enum class AuthState {
Auth_Provider_Auth_Started,
Auth_Provider_Logout,
Alexa_Client_Connected,
- Alexa_Client_Disconnected
+ Alexa_Client_Disconnected,
+ Alexa_Client_Auth_Unintialized
}
data class CodePair (
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthorizationHandlerInterface.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthorizationHandlerInterface.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthorizationHandlerInterface.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/auth/AuthorizationHandlerInterface.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/BluetoothDevice.kt b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/BluetoothDevice.kt
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/BluetoothDevice.kt
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/BluetoothDevice.kt
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/ContactsController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/ContactsController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/ContactsController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/communication/ContactsController.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/login/LoginUIEventListener.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/login/LoginUIEventListener.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/login/LoginUIEventListener.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/login/LoginUIEventListener.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/module/ModuleInterface.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/module/ModuleInterface.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/module/ModuleInterface.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/module/ModuleInterface.java
diff --git a/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionActivityController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionActivityController.java
new file mode 100644
index 000000000..7243735a7
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionActivityController.java
@@ -0,0 +1,42 @@
+package com.amazon.alexa.auto.apis.session;
+
+import com.amazon.alexa.auto.apis.app.ScopedComponent;
+
+import androidx.fragment.app.Fragment;
+import io.reactivex.rxjava3.core.Observable;
+
+/**
+ * Component that handles getting the session activity and vending
+ * it out to components that want to inflate its voice fragment onto that activity.
+ */
+public interface SessionActivityController extends ScopedComponent {
+
+ /**
+ * Add voice fragment into voice session activity.
+ * @param fragment voice fragment
+ */
+ void addFragment(Fragment fragment);
+
+ /**
+ * Remove any existing voice fragment from voice session activity.
+ */
+ void removeFragment();
+
+ /**
+ * Get voice fragment which is added into voice session activity.
+ * @return voice fragment
+ */
+ Fragment getFragment();
+
+ /**
+ * Check if voice fragment has been added.
+ * @return true if added
+ */
+ boolean isFragmentAdded();
+
+ /**
+ * Gets an observable that tells us if a voice fragment is inflated.
+ * @return an observable that informs us whether a voice fragment is inflated.
+ */
+ Observable getFragmentAddedObservable();
+}
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionViewController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionViewController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionViewController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/session/SessionViewController.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupController.java
diff --git a/platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupWorkflowController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupWorkflowController.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupWorkflowController.java
rename to aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/setup/AlexaSetupWorkflowController.java
diff --git a/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionStatus.kt b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionStatus.kt
new file mode 100644
index 000000000..491b619f7
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionStatus.kt
@@ -0,0 +1,10 @@
+package com.amazon.alexa.auto.apis.uxRestrictions
+
+data class CarUxRestrictionStatus (
+ val isRequiredUXRestriction : Boolean,
+ val actionRestriction: CarUxRestriction?
+)
+
+data class CarUxRestriction (
+ val uxRestrictionName : String
+)
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionsController.java b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionsController.java
new file mode 100644
index 000000000..cc5b76702
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apis/src/main/java/com/amazon/alexa/auto/apis/uxRestrictions/CarUxRestrictionsController.java
@@ -0,0 +1,35 @@
+package com.amazon.alexa.auto.apis.uxRestrictions;
+
+import com.amazon.alexa.auto.apis.app.ScopedComponent;
+
+import io.reactivex.rxjava3.core.Observable;
+
+/**
+ * API interface to let Alexa App know about the current car UX restrictions state and
+ * to observe car UX restriction updates.
+ */
+public interface CarUxRestrictionsController extends ScopedComponent {
+ /**
+ * Get active car UX restriction.
+ *
+ * @return CarUxRestriction Car UX restriction.
+ */
+ CarUxRestriction getActiveCarUxRestriction();
+
+ /**
+ * Fetch observable that can be used to monitor the car UX restrictions changes.
+ *
+ * @return Observable of car UX restriction status.
+ */
+ Observable observeCarUxRestrictionChanged();
+
+ /**
+ * Register listener for car UX restrictions changes.
+ */
+ void registerListener();
+
+ /**
+ * Unregister listener for car UX restrictions changes.
+ */
+ void unregisterListener();
+}
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/.gitignore b/aacs/android/app-components/alexa-auto-apl-renderer/.gitignore
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/.gitignore
rename to aacs/android/app-components/alexa-auto-apl-renderer/.gitignore
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/README.md b/aacs/android/app-components/alexa-auto-apl-renderer/README.md
new file mode 100644
index 000000000..e6db384f1
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/README.md
@@ -0,0 +1,157 @@
+# Alexa Auto APL Renderer
+
+The Alexa Auto APL Renderer library enables the AACS Sample App to render Amazon Presentation Language (APL) documents on the user's device. The library consists of the following components:
+
+* `APLReceiver`: This class receives the APL intents. After receiving an APL `RenderDocument` intent, it starts adding `APLFragment` to [VoiceActivity](../alexa-auto-voice-ui/src/main/java/com/amazon/alexa/auto/voice/ui/VoiceActivity.java) or sends the `APLDirective` event to `APLFragment`.
+
+* `APLHandler`: This class handles APL intents, such as those for rendering or clearing APL documents. It also executes APL commands and implements an event interface named `IAPLEventSender`, which reports events to Alexa or the capability agent.
+
+* `APLFragment`: This class initializes the APL runtime, instantiates `APLPresenter`, and calls the `APLhandler` methods to handle APL intents. This class also inflates the APL layout to render the APL document. The `APLLayout` object in [fragment_apl.xml](./src/main/res/layout/fragment_apl.xml) defines the layout.
+
+**Important!** The Alexa Auto APL Renderer library is for you to experiment with APL document rendering on an automotive device, it is not a preferred UX in automotive experience. Do not use the library to render APL documents in a production vehicle. Support for APL rendering in a production environment will be provided in a future Alexa Auto SDK version.
+
+**Important!** Certain APL templates recommend scrolling text and these will be removed for production versions of APL in a future Alexa Auto SDK version.
+
+## Prerequisites for Using the Alexa Auto APL Renderer Library
+The APL Renderer library for the AACS Sample App depends on the capabilities provided by an Auto SDK module called APL Render module. For example, the APL Render module provides the `APLPresenter` class implementation. The Alexa Auto APL Renderer library initializes this class to provide the orchestration logic in the APL rendering process.
+
+For information about how to build the APL Render module, see the [APL Render README](modules/apl-render/README.md).
+
+## Using Alexa Auto APL Renderer Library with AACS Sample App
+To use the Alexa Auto APL Renderer Library with the AACS Sample App, include the appropriate build dependency and configure APL in the AACS Sample App.
+
+### Including Build Dependency (AAR)
+
+The Alexa Auto APL Renderer library requires a prebuilt Android view host, which is available as an AAR on the developer portal. To download the AAR, contact your Solutions Architect (SA) or Partner Manager.
+
+>**Note:** To include the build dependency, you must place the Android view host AAR in the APL Render module [libs/](./modules/apl-render/src/main/libs/) folder.
+
+### Configuring APL in AACS Sample App
+
+The AACS Sample App passes `aacs_config.json` to AACS for configuring the Auto SDK. Follow these steps to enable APL and specify the display format:
+
+1. Enable APL in `aacs_config.json`:
+
+ ```json
+ "aacs.modules": {
+ "aacs.apl": {
+ "APL": {
+ "enabled": true
+ }
+ }
+ }
+ ```
+
+2. Add the `gui` configuration node in `aacs.alexa`, as shown in the following example:
+
+ ```json
+ {
+ "aacs.alexa": {
+ "gui": {
+ "visualCharacteristics": [
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.InteractionMode",
+ "version": "1.1",
+ "configurations": {
+ "interactionModes": [
+ {
+ "id": "apl-interaction-id",
+ "uiMode": "AUTO",
+ "interactionDistance": {
+ "unit": "INCHES",
+ "value": 24
+ },
+ "touch": "SUPPORTED",
+ "keyboard": "SUPPORTED",
+ "video": "SUPPORTED",
+ "dialog": "SUPPORTED"
+ }
+ ]
+ }
+ },
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.Presentation.APL.Video",
+ "version": "1.0",
+ "configurations": {
+ "video": {
+ "codecs": [
+ "H_264_42",
+ "H_264_41"
+ ]
+ }
+ }
+ },
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.Display.Window",
+ "version": "1.0",
+ "configurations": {
+ "templates": [
+ {
+ "id": "apl-window-id",
+ "type": "STANDARD",
+ "configuration": {
+ "sizes": [
+ {
+ "type": "DISCRETE",
+ "id": "window-size-id",
+ "value": {
+ "unit": "PIXEL",
+ "value": {
+ "width": 900,
+ "height": 1200
+ }
+ }
+ }
+ ],
+ "interactionModes": [
+ "apl-interaction-id"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ ```
+
+ For descriptions of the visual characteristic parameters, see the [Alexa Smart Screen SDK documentation](https://github.com/alexa/alexa-smart-screen-sdk/blob/master/modules/GUI/config/SmartScreenSDKConfig.md#visual-characteristics-parameters).
+ APL viewport can be adjusted by changing the width and height pixel values in `Alexa.Display.Window` configuration.
+
+### Building AACS Sample App with Alexa Auto APL Renderer Library
+
+To build the AACS Sample App with Alexa Auto APL Renderer library, go to `${AAC_SDK_HOME}/aacs/android/sample-app/` and enter the following command:
+
+```shell
+./gradlew assembleLocalRelease -PenabledAPL
+```
+
+### Using AACS Sample App
+
+After the gradle build command finishes building the AACS Sample App, you can test the sample app by asking, "Alexa, tell me a joke." An APL document is rendered on the device.
+
+The Auto SDK 4.0 enables the ability to report the vehicle driving state to provide safer visual experiences while the vehicles is moving. To enable the driving state support, add `-PenabledUXRestrictions` to the build command. When you say "Alexa, show coffee shops near me" and view the details for a point of interest, the data displayed in the APL detail card will contain more information while the driving state is `parked`. Additionally, the Auto SDK 4.0 supports the ability to report the light conditions around the vehicle to support day/night mode and provide a custom theme id to alter the look and feel of the APL experience.
+```shell
+./gradlew assembleLocalRelease -PenabledAPL -PenabledUXRestrictions
+```
+
+>**Note:** The alexa-auto-ux-restrictions requires Android API level 29. Provide your own implementation for the `CarUxRestrictionsController` interface if your device uses API level less than 29. By default, the driving state will always be set to `moving` if the `CarUxRestrictionsController` is not implemented.
+
+## Known Issues
+* When interrupting music playback with APL utterance, APL card will be dismissed when music playback resumes, this issue could not be seen if music ducking support is enabled in AACS sample app. To do this, add audio ducking node in `aacs.alexa`, as shown in the following example:
+ ```
+ "aacs.alexa": {
+ "audio": {
+ "audioOutputType.music": {
+ "ducking":{
+ "enabled": true
+ }
+ }
+ }
+ }
+ ```
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/build.gradle b/aacs/android/app-components/alexa-auto-apl-renderer/build.gradle
new file mode 100644
index 000000000..ebd5f6efe
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/build.gradle
@@ -0,0 +1,88 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 28
+ defaultConfig {
+ minSdkVersion 26
+ targetSdkVersion 28
+ versionCode 1
+ versionName "4.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ debug {
+ testCoverageEnabled true
+ debuggable true
+ }
+ }
+
+ testOptions {
+ // Unit Test: Make all android methods return true by default
+ unitTests.returnDefaultValues = true
+ unitTests.includeAndroidResources = true
+ }
+
+ compileOptions {
+ targetCompatibility 1.8
+ sourceCompatibility 1.8
+ }
+
+ libraryVariants.all { variant ->
+ variant.outputs.all {
+ def project = "alexa-auto-apl-renderer"
+ def separator = "_"
+ def buildType = variant.buildType.name
+ def apkName = project + separator + buildType + ".aar"
+ outputFileName = new File(apkName)
+ }
+ }
+}
+
+dependencies {
+ implementation(name:'aplRelease', ext:'aar')
+ implementation(name:'ttsplayerRelease', ext:'aar')
+
+ implementation project(':alexa-auto-apl-renderer:apl-render')
+ implementation project(':aacscommonutils')
+ implementation project(':aacsipc')
+ implementation project(':aacsconstants')
+
+ implementation project(':alexa-auto-apis')
+ implementation project(":alexa-auto-apps-common-util")
+ implementation project(":alexa-auto-navigation")
+
+ implementation deps.androidx_appcompat
+ implementation deps.eventbus
+
+ testImplementation deps.junit
+ testImplementation deps.mockito
+ testImplementation deps.mockito_inline
+ testImplementation deps.androidx_test_core
+ testImplementation deps.androidx_arch_core_testing
+ testImplementation deps.roboelectric
+
+ implementation deps.android_appcompat
+ implementation deps.android_design
+ implementation deps.android_constraint
+ implementation deps.android_cardview
+ implementation deps.android_recyclerview
+ implementation deps.okhttp
+
+ api deps.google_guava
+
+ // Glide
+ implementation deps.glide
+ annotationProcessor deps.glide_compiler
+
+ // RX
+ implementation deps.rxjava3
+
+ // Dagger
+ implementation 'com.google.dagger:dagger-android:2.33'
+ implementation 'com.google.dagger:dagger-android-support:2.33'
+ annotationProcessor 'com.google.dagger:dagger-android-processor:2.33'
+ annotationProcessor 'com.google.dagger:dagger-compiler:2.33'
+}
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/gradle.properties b/aacs/android/app-components/alexa-auto-apl-renderer/gradle.properties
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/gradle.properties
rename to aacs/android/app-components/alexa-auto-apl-renderer/gradle.properties
diff --git a/extensions/extras/.gitignore b/aacs/android/app-components/alexa-auto-apl-renderer/libs/.gitignore
similarity index 100%
rename from extensions/extras/.gitignore
rename to aacs/android/app-components/alexa-auto-apl-renderer/libs/.gitignore
diff --git a/platforms/android/modules/apl-render/.gitignore b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/.gitignore
similarity index 100%
rename from platforms/android/modules/apl-render/.gitignore
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/.gitignore
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/README.md b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/README.md
new file mode 100644
index 000000000..6ea74852a
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/README.md
@@ -0,0 +1,283 @@
+# APL Render Module
+
+The APL Render module is an Android library that enables Alexa Presentation Language (APL) rendering capabilities in an Android application. For detailed information about APL, see the [APL documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/understand-apl.html).
+
+
+## Table of Contents
+- [Overview](#overview)
+- [Understanding Android View Host](#understanding-android-view-host)
+- [APL Render Module Functionality](#apl-render-module-functionality)
+- [How to use the APL Render Module](#how-to-use-the-apl-render-module)
+ - [Defining the APL Layout](#defining-the-apl-layout)
+ - [Initializing the APL Runtime](#initializing-the-apl-runtime)
+ - [Implementing the Event Interface](#implementing-the-event-interface)
+ - [Instantiating APLPresenter](#instantiating-aplpresenter)
+- [Rendering an APL Document](#rendering-an-apl-document)
+- [Building the APL Render Library](#building-the-apl-render-library)
+- [Overriding Android View Host Options](#overriding-android-view-host-options)
+ - [Using APLOptions.Builder](#using-aploptionsbuilder)
+- [APL Extensions](#apl-extensions)
+
+## Overview
+Rendering an APL document on a device requires the implementation of various components and the logic that makes the components work together. To handle APL-related directives and events, the device must support APL interfaces. It needs integration of the [APL Core Library](https://github.com/alexa/apl-core-library) to manage the document parsing and rendering workflow.
+
+In addition, you must build a view host for the device to render the APL document on the screen, as well as provide components to download layouts, images, and other resources. If the APL document generates multimedia content, such as a video or audio file, you need a media player to play back the content. Lastly, APL rendering needs the orchestration logic to manage the lifecycle of a rendered document, which includes user events, audio focus management, time out management, visual context, command execution, and much more. The Alexa Auto SDK, with the APL Render module and a prebuilt Android view host, simplifies the process of APL rendering because it provides the aforementioned components and logic for you.
+
+## Understanding Android View Host
+
+The Android view host is the component responsible for rendering APL on the screen. Amazon provides a prebuilt Android view host as an Android Archive Library (AAR) on the developer portal. To download the AAR, contact your Solutions Architect (SA) or Partner Manager.
+
+>**Note:** To use the Android Render module, you must place the Android view host AAR in the [src/main/libs/](./src/main/libs) folder of the APL Render module.
+
+## APL Render Module Functionality
+
+The APL Render module provides all the functionality needed for enabling APL rendering capabilities in an Android application. The APL Render module provides the following capabilities:
+
+* APL runtime initialization
+* HTTP Resource downloader
+* Android view host integration
+* Android audio focus management
+* Activity tracking for timeout management
+* Audio and media players
+* Interfaces to easily override functionality
+
+## How to use the APL Render Module
+
+To use the APL Render module without customization, follow these steps:
+
+1) Define the APL layout.
+2) Initialize the APL runtime.
+3) Implement the event interface.
+4) Instantiate `APLPresenter`.
+
+### Defining the APL Layout
+
+The application must define the layout of the screen on which the APL document is rendered. the width and height of the `APLLayout` must fall in range with one of the three supported [automotive viewport profiles](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-alexa-viewport-profiles-package.html): auto extra small, auto small, and auto medium. Define an `com.amazon.apl.android.APLLayout` object, as shown in the following example, where the object is defined under `res/layout`:
+
+```java
+
+
+
+
+
+
+```
+
+The `app:aplTheme` field corresponds to the default [APL theme](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-viewport-property.html#theme) to be used if one is not specified in the APL document. Typical values are `light` or `dark`.
+
+The `app:mode` field specifies the operating mode, which is a [viewport property](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-viewport-property.html#viewport_mode_property). For information about the viewport object, see the [viewport documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-viewport-property.html). The value for this field should be `auto` for an Automotive device.
+
+### Initializing the APL Runtime
+
+The application must invoke the `APLPresenter.initialize()` static method before inflating the `APLLayout` UI component. The following code shows how to use the `onCreate` method of `Activity` to initialize the APL runtime:
+
+```java
+import com.amazon.apl.android.render.APLPresenter;
+
+//---------------------------------------------------------------------
+// Initialize the APL Runtime. This must be called during
+// Activity.onCreate() or prior to APLLayout inflation.
+//---------------------------------------------------------------------
+onCreate() {
+ Context context = getApplicationContext();
+ APLPresenter.initialize(context);
+}
+```
+
+### Implementing the Event Interface
+
+The application must implement the `com.amazon.apl.android.render.interfaces.IAPLEventSender` interface. The `IAPLEventSender` interface provides the APIs to allow the APL Render module to report events to Alexa or the capability agent. You can integrate the event interface into the APL handler that implements the [Auto SDK APL platform interface](../../../../../../modules/apl/android/src/main/java/com/amazon/aace/apl/APL.java). The following code shows how to do the integration:
+
+```java
+import com.amazon.aace.apl.APL;
+import com.amazon.apl.android.render.interfaces.IAPLEventSender;
+
+public class APLHandler extends APL implements IAPLEventSender {
+
+ //---------------------------------------------------------------------
+ // Override IAPLEventSender methods.
+ // APLHandler will register with APL Render library as the event sender.
+ //---------------------------------------------------------------------
+ @Override
+ public void sendRenderDocumentResult(String token, boolean result, String error) {
+ renderDocumentResult(token, result, error); // APL::renderDocumentResult
+ }
+
+ @Override
+ public void sendExecuteCommandsResult(String token, boolean result, String error) {
+ executeCommandsResult(token, result, error); // APL::executeCommandsResult
+ }
+
+ ...
+}
+
+```
+
+### Instantiating APLPresenter
+
+The application must instantiate the `APLPresenter` object, which provides the orchestration logic in the APL rendering process.
+
+>**Note:** Create `APLPresenter` *after* the APL platform interface handler is registered with the Auto SDK Engine.
+
+The following code shows how to instantiate the `APLPresenter` object:
+
+```java
+import com.amazon.apl.android.render.APLPresenter;
+
+public class APLHandler extends APL implements IAPLEventSender {
+
+ private APLPresenter mPresenter;
+
+ public void buildAPLPresenter(JSONArray visualCharacteristics, String defaultWindowId) {
+ //---------------------------------------------------------------------
+ // Retrieve the APLLayout view with id 'apl' defined in apl_view.xml.
+ // This assumes that 'activity' is the application's Activity.
+ //---------------------------------------------------------------------
+ aplLayout = activity.findViewById(R.id.apl);
+ //---------------------------------------------------------------------
+ // Application needs to handle the correlation of window ids from the
+ // visual characteristics configuration to the APLLayout instance.
+ //---------------------------------------------------------------------
+ HashMap aplLayouts = new HashMap();
+ aplLayouts.put(defaultWindowId, mAplLayout);
+ //---------------------------------------------------------------------
+ // Create APLPresenter to handle APL rendering.
+ //---------------------------------------------------------------------
+ mPresenter = new APLPresenter(aplLayouts, visualCharacteristics, defaultWindowId, this);
+ }
+```
+
+The following list describes the parameters to `APLPresenter`:
+
+* The first parameter is a map of the `APLLayout` objects. Each `APLLayout` is identified by a window ID, which specifies the window where the APL document is rendered. Typically, there is one `APLLayout` defined for the window where all the APL documents are rendered, but you can build skills that support rendering in multiple windows.
+
+* The second parameter is a JSON array` pointing to the visual characteristics defined by the device. For more information about visual characteristics, see the [APL module README](../../../../../../modules/apl/README.md#visual-characteristics) and the [Smart Screen SDK documentation](https://github.com/alexa/alexa-smart-screen-sdk/blob/master/modules/GUI/config/SmartScreenSDKConfig.md#visual-characteristics-parameters).
+
+* The third parameter is the default window ID, specifying the window where APL documents are rendered if Alexa does not provide a window ID.
+
+* The last parameter is the object that implements the `IAPLEventSender` interface.
+
+## Rendering an APL Document
+
+To render an APL document, call the `onRenderDocument` API on the `APLPresenter`. The `APLHandler` can delegate the `APL` APIs to the `APLPresenter`, as shown in the following code:
+
+```java
+public class APLHandler extends APL implements IAPLEventSender {
+
+ ...
+
+ //---------------------------------------------------------------------
+ // Override Auto SDK APL interfaces
+ //---------------------------------------------------------------------
+ @Override
+ public void renderDocument(String payload, String token, String windowId) {
+ mAplPresenter.onRenderDocument(payload, token, windowId); // APLRender implements these interfaces
+ }
+
+ @Override
+ public void executeCommands(String payload, String token) {
+ mPresenter.onExecuteCommands(payload, token);
+ }
+
+ ...
+}
+```
+
+## Overriding Android View Host Options
+
+Rendering an APL document requires the APL Render module to set up an `APLOptions` object, which is passed to the view host. The `APLOptions` object is configured with providers, callbacks, and listeners, as described in the following list:
+
+* Providers are objects implemented outside the view host.They provide objects used during the rendering process. For example, the data retriever provider downloads APL resources, such as layouts from content delivery networks (CDNs). The media player provider plays media, such as videos.
+
+* Callbacks are interfaces used by the view host to report events, such as:
+
+ * user events (e.g., button clicks)
+ * document lifecycle events (e.g., completion of document rendering)
+
+* Listeners are interfaces for reporting the APL rendered document state or screen lock events.
+
+The APL Render module sets up all the providers, callbacks, and listeners. If the application needs to override any of them, it uses the `APLOptions.Builder` object.
+
+### Using APLOptions.Builder
+
+To override `APLOptions`, extend the `APLPresenter` object, as shown in the following code:
+
+```java
+class MyAPLPresenter extends APLPresenter {
+
+ //---------------------------------------------------------------------
+ // IAPLOptionsBuilderProvider override
+ //---------------------------------------------------------------------
+ @Override
+ APLOptions.Builder getAPLOptionsBuilder() {
+ APLOptions.Builder builder = super.getAPLOptionsBuilder();
+ // Listen in on APL finish callback
+ builder.onAplFinishCallback(() -> {
+ // Do something here
+ super.onAplFinish();
+ });
+ return builder;
+ }
+}
+```
+## APL Runtime Properties
+
+The [IAPLContentListener](src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java) exposes an interface to control some APL runtime properties that affect how APL documents are rendered. The `onAPLRuntimeProperties` API takes in a JSON string that contains one or more properties to update.
+
+### Driving State
+
+The `drivingState` property supports the values `moving` and `parked`. An APL experience may differ depending on the driving state in order to provide a safer driving experience.
+
+### Theme
+
+The `theme` property allows the APL experience to render in different color schemes. There are six supported values: light, light-gray1, light-gray2, dark, dark-black, dark-gray. The light themes can be during for day driving, while the dark themes can be used for night driving.
+## APL Extensions
+### Backstack
+
+This library supports the [Backstack](https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-ext-backstack.html) extension. The application must ensure that the `APLPresenter` is not destroyed and recreated when a new APL document with the same token id is received. Otherwise, the Backstack will be reinstantiated and the previous stack of documents will be lost.
+
+### Local Information Data
+
+This library contains a custom APL extension that is used by the `APLPresenter` to expose point of interest data to the application. This data can be used to drop corresponding pins on the head unit's integrated map. Two way communication is also provided so that the application or AP runtime can notify each other when a specific data point is active or selected.
+
+There are two interfaces that the application can use to interact with Local infomation data: [ILocalInfoDataConsumer](https://github.com/alexa/alexa-auto-sdk/tree/4.0/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataConsumer.java) and [ILocalInfoDataReporter](https://github.com/alexa/alexa-auto-sdk/tree/4.0/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataReporter.java).
+
+#### ILocalInfoDataConsumer
+
+The [IPresenter](src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java) interace exposes a method to set the data consumer, which must be set by the application:
+
+```
+ /**
+ * Saves a reference to the local info data consumer.
+ *
+ * @param consumer The object that consume local info data events.
+ */
+ void setLocalInfoDataConsumer(ILocalInfoDataConsumer consumer);
+```
+
+The application will be notified through the consumer method `aplDataAvailable` with a JSON string object represention all the points of interest. The application will be notified when a specific data point is selected on the APL document using the consume method `aplDataItemSelectedById`.
+
+#### ILocalInfoDataReporter
+
+The `APLPresenter` implements the `ILocalInfoDataReporter` interface to allow the application to notify the APL runtime when a data point is selected outside of the APL runtime. To do this notification simply call `platformDataItemSelectedById` on the `APLPresenter` instance.
+
+## Building the APL Render Library
+**Note:** Before proceeding to build the APL Render library, download the Android APL resource from the developer portal according to instructions from your Solutions Architect or Partner Manager.
+
+This library can be built using the included gradle wrapper as follows
+```
+./gradlew assembleRelease
+```
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/build.gradle b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/build.gradle
new file mode 100644
index 000000000..408a7fc80
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/build.gradle
@@ -0,0 +1,74 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 28
+
+ defaultConfig {
+ minSdkVersion 22
+ targetSdkVersion 28
+ versionCode 1
+ versionName "4.0"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+ // Enable desugaring (dependency contains Java 8 bytecode)
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+}
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.6.2'
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+dependencies {
+ compileOnly files('src/main/libs/aplRelease.aar')
+ compileOnly files('src/main/libs/ttsplayerRelease.aar')
+
+ implementation 'androidx.media:media:1.3.0'
+ implementation 'androidx.appcompat:appcompat:1.0.0'
+ implementation 'com.google.android.material:material:1.0.0'
+ implementation 'androidx.annotation:annotation:1.0.0'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'androidx.cardview:cardview:1.0.0'
+ implementation 'androidx.recyclerview:recyclerview:1.0.0'
+ implementation 'com.google.android.exoplayer:exoplayer-core:2.13.3'
+ implementation 'com.google.android.exoplayer:exoplayer-dash:2.13.3'
+ implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.13.3'
+ implementation 'com.google.android.exoplayer:exoplayer-hls:2.13.3'
+ implementation 'com.google.android.gms:play-services-maps:16.0.0'
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
+ implementation 'androidx.fragment:fragment:1.2.4'
+ implementation 'com.squareup.okhttp3:okhttp:3.9.1'
+ implementation 'com.google.dagger:dagger:2.33'
+ implementation 'org.projectlombok:lombok:1.18.18'
+ implementation 'com.google.guava:guava:27.0.1-android'
+
+ annotationProcessor 'com.google.dagger:dagger-compiler:2.33'
+ annotationProcessor 'org.projectlombok:lombok:1.18.18'
+
+}
diff --git a/platforms/android/modules/apl-render/gradle.properties b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/gradle.properties
similarity index 100%
rename from platforms/android/modules/apl-render/gradle.properties
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/gradle.properties
diff --git a/platforms/android/modules/apl-render/lombok.config b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/lombok.config
similarity index 100%
rename from platforms/android/modules/apl-render/lombok.config
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/lombok.config
diff --git a/extensions/bluetooth/samples/android/modules/sample-bluetooth/proguard-rules.pro b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/proguard-rules.pro
similarity index 100%
rename from extensions/bluetooth/samples/android/modules/sample-bluetooth/proguard-rules.pro
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/proguard-rules.pro
diff --git a/platforms/android/modules/apl-render/settings.gradle b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/settings.gradle
similarity index 100%
rename from platforms/android/modules/apl-render/settings.gradle
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/settings.gradle
diff --git a/platforms/android/modules/apl-render/src/main/AndroidManifest.xml b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/AndroidManifest.xml
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/AndroidManifest.xml
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/AndroidManifest.xml
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLPresenter.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLPresenter.java
new file mode 100644
index 000000000..05dbf4c59
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLPresenter.java
@@ -0,0 +1,807 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+
+import androidx.annotation.NonNull;
+import androidx.core.util.Preconditions;
+
+import com.amazon.apl.android.APLController;
+import com.amazon.apl.android.APLLayout;
+import com.amazon.apl.android.APLOptions;
+import com.amazon.apl.android.Action;
+import com.amazon.apl.android.Content;
+import com.amazon.apl.android.IAPLViewPresenter;
+import com.amazon.apl.android.RootConfig;
+import com.amazon.apl.android.RootContext;
+import com.amazon.apl.android.RuntimeConfig;
+import com.amazon.apl.android.configuration.ConfigurationChange;
+import com.amazon.apl.android.dependencies.IDataSourceErrorCallback;
+import com.amazon.apl.android.dependencies.IDataSourceFetchCallback;
+import com.amazon.apl.android.dependencies.ISendEventCallback;
+import com.amazon.apl.android.dependencies.IVisualContextListener;
+import com.amazon.apl.android.render.content.APLHttpContentRetriever;
+import com.amazon.apl.android.render.dagger.component.ActivityComponent;
+import com.amazon.apl.android.render.dagger.component.ApplicationComponent;
+import com.amazon.apl.android.render.dagger.component.DaggerActivityComponent;
+import com.amazon.apl.android.render.dagger.module.ActivityModule;
+import com.amazon.apl.android.render.extension.ExtensionManager;
+import com.amazon.apl.android.render.extension.back.BackExtension;
+import com.amazon.apl.android.render.extension.back.BackStack;
+import com.amazon.apl.android.render.extension.back.BackStackDocument;
+import com.amazon.apl.android.render.extension.localinfo.LocalInfoExtension;
+import com.amazon.apl.android.render.font.AutoEmbeddedFontResolver;
+import com.amazon.apl.android.render.interfaces.IAPLContentListener;
+import com.amazon.apl.android.render.interfaces.IAPLEventSender;
+import com.amazon.apl.android.render.interfaces.IAPLTokenProvider;
+import com.amazon.apl.android.render.interfaces.IDismissible;
+import com.amazon.apl.android.render.interfaces.ILocalInfoDataConsumer;
+import com.amazon.apl.android.render.interfaces.ILocalInfoDataReporter;
+import com.amazon.apl.android.render.interfaces.IPresenter;
+import com.amazon.apl.android.render.payload.ExecuteCommandPayload;
+import com.amazon.apl.android.render.payload.RenderDocumentPayload;
+import com.amazon.apl.android.render.payload.RenderedDocumentStatePayload;
+import com.amazon.apl.android.render.payload.UserEventPayload;
+import com.amazon.apl.android.render.utils.RenderDocumentUtils;
+import com.amazon.apl.android.scaling.Scaling;
+import com.amazon.apl.enums.ViewportMode;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * This class facilitates the integration of Alexa Presentation Language (APL).
+ * The application is required to initialize the APL runtime by passing the Android
+ * context to @see initialize(context) prior to the inflation of @see APLLayout components.
+ * The visual configuration is used to provide window state context.
+ */
+public class APLPresenter implements IPresenter, ISendEventCallback, IDataSourceFetchCallback, IDataSourceErrorCallback,
+ IVisualContextListener, IAPLTokenProvider, ILocalInfoDataReporter {
+ private static final String TAG = APLPresenter.class.getSimpleName();
+
+ private IAPLEventSender mAplEventSender;
+ private Map mAplLayouts;
+ private Action mAction;
+ private APLController mAplController;
+ private String mToken;
+ private APLOptions mAplOptions;
+ private ActivityComponent mActivityComponent;
+ private ApplicationComponent mApplicationComponent;
+ private RenderDocumentPayload mRenderDocumentPayload;
+ private RenderedDocumentStatePayload mLatestRenderedDocumentState;
+ private String mDefaultWindowId;
+ private JSONArray mVisualCharacteristics;
+ private Hashtable mRuntimeProperties;
+ private ExtensionManager mExtensionManager;
+ private LocalInfoExtension mLocalInfoExtension;
+ private BackExtension mBackHandler;
+ private BackStack mBackStack;
+ private ILocalInfoDataConsumer mLocalInfoDataConsumer;
+ private IDismissible mDismissibleCallback;
+
+ private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
+ private static Context mContext;
+ private RootConfig mRootConfig;
+
+ /**
+ * Initialize the APL runtime. Must be done during Activity onCreate or
+ * prior to inflation of APLLayout view.
+ *
+ * @param context
+ */
+ public static void initialize(Context context) {
+ mContext = context;
+ APLController.initializeAPL(
+ context, RuntimeConfig.builder().fontResolver(new AutoEmbeddedFontResolver(context)).build());
+ }
+
+ /**
+ * Constructs the APLPresenter object.
+ *
+ * @param aplLayouts A map of windows ids to the corresponding APL layouts.
+ * @param visualCharacteristics The array of defined visual characteristics for the device.
+ * @param defaultWindowId The Id of the window where APL will be rendered if one is not specified in the render
+ * document request.
+ * @param aplEventSender The object used to send events back to the cloud.
+ */
+ public APLPresenter(@NonNull final Map aplLayouts, @NonNull JSONArray visualCharacteristics,
+ @NonNull String defaultWindowId, @NonNull final IAPLEventSender aplEventSender)
+ throws IllegalStateException {
+ // Initialize must be called prior to instantiation of this class.
+ if (mContext == null) {
+ throw new IllegalStateException("Context is null. Make sure initialize() is called with non null context.");
+ }
+
+ Preconditions.checkNotNull(aplLayouts);
+ Preconditions.checkNotNull(visualCharacteristics);
+ Preconditions.checkNotNull(defaultWindowId);
+ Preconditions.checkState(!defaultWindowId.isEmpty());
+ Preconditions.checkNotNull(aplEventSender);
+
+ mAplLayouts = aplLayouts;
+ mVisualCharacteristics = visualCharacteristics;
+ mAplEventSender = aplEventSender;
+ mDefaultWindowId = defaultWindowId;
+ APLSingleton.getInstance().init(mContext, mAplEventSender, this);
+ mApplicationComponent = APLSingleton.getInstance().getApplicationComponent();
+ mActivityComponent = initActivityComponent(mContext);
+ mBackStack = new BackStack();
+
+ // Default property values
+ mRuntimeProperties = new Hashtable<>();
+ mRuntimeProperties.put("drivingState", "moving");
+ mRuntimeProperties.put("theme", "dark");
+ mRuntimeProperties.put("video", "disabled");
+
+ // Initial window state
+ sendDeviceWindowState();
+
+ // Listen for touch events
+ setupTouchListener();
+ }
+
+ private synchronized void updateRuntimeProperties() {
+ Log.v(TAG, "updateRuntimeProperties" + mRuntimeProperties.toString());
+ if (mAplController != null) {
+ APLLayout aplLayout = getAplLayout();
+ if (aplLayout != null) {
+ aplLayout.post(() -> {
+ Map autoEnvironmentValues = new HashMap<>();
+ autoEnvironmentValues.put("drivingState", mRuntimeProperties.get("drivingState"));
+ ConfigurationChange configurationChange =
+ aplLayout.createConfigurationChange()
+ .theme(mRuntimeProperties.get("theme"))
+ .disallowVideo(mRuntimeProperties.get("video").equalsIgnoreCase("disabled"))
+ .environmentValue("automobile", autoEnvironmentValues)
+ .build();
+ try {
+ aplLayout.handleConfigurationChange(configurationChange);
+ Log.v(TAG, "onConfigChange succeeded");
+ } catch (Exception e) {
+ Log.e(TAG, "Document cannot be rendered in this configuration", e);
+ }
+ });
+ }
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // IAPLContentListener
+ //-------------------------------------------------------------------------
+
+ /**
+ * Application will notify of APL content through this listener. Content includes
+ * render document payload, execute commands, data source updates, etc.
+ *
+ * @return IAPLContentListener The object that listens for APL content.
+ */
+ public IAPLContentListener getAPLContentListener() {
+ return this;
+ }
+
+ /**
+ * Handle updates from the vehicle that affect how the APL document
+ * should be rendered.
+ *
+ * @param properties JSON string containing one or more properties.
+ */
+ @Override
+ public void onAPLRuntimeProperties(String properties) {
+ try {
+ JSONObject propertiesObject = new JSONObject(properties);
+ if (propertiesObject.has("drivingState")) {
+ mRuntimeProperties.put("drivingState", propertiesObject.getString("drivingState").toLowerCase());
+ }
+
+ if (propertiesObject.has("theme")) {
+ mRuntimeProperties.put("theme", propertiesObject.getString("theme").toLowerCase());
+ }
+
+ if (propertiesObject.has("video")) {
+ mRuntimeProperties.put("video", propertiesObject.getString("video").toLowerCase());
+ }
+
+ updateRuntimeProperties();
+ } catch (JSONException e) {
+ Log.e(TAG, "propertiesJSONError");
+ }
+ }
+
+ @Override
+ public void onRenderDocument(String jsonPayload, String token, String windowId) {
+ try {
+ mToken = token;
+ // Extract document and data
+ mRenderDocumentPayload = RenderDocumentUtils.convertToRenderDocument(jsonPayload);
+ mRootConfig = mActivityComponent.getRootConfig();
+
+ Log.i(TAG, "APL render document token: " + mToken + " windowId: " + mRenderDocumentPayload.getWindowId());
+
+ // Set up content retriever and render callback
+ APLHttpContentRetriever contentRetriever =
+ new APLHttpContentRetriever(mApplicationComponent.getOkHttpClientWrapper(),
+ mApplicationComponent.getNetworkExecutor(), mRenderDocumentPayload);
+ contentRetriever.addCompleteCallback(content -> doRender(content));
+
+ // Inflate the document
+ try {
+ Content.create(mRenderDocumentPayload.getDocument(), contentRetriever);
+ } catch (Content.ContentException exception) {
+ Log.e(TAG, exception.getMessage());
+ }
+ } catch (Exception e) {
+ Log.e(TAG, e.getMessage());
+ renderResponse(token, false, e.getMessage());
+ }
+ }
+
+ @Override
+ public void onClearDocument(String token) {
+ Log.i(TAG, "clearDocument and visual context " + token + " mToken: " + mToken);
+ getAplLayout().post(() -> {
+ // Clean up current view
+ destroyAplView();
+ // Clear back stack since skill session is done
+ mBackStack.clear();
+ // Notify that clear document is done
+ mExecutor.submit(() -> {
+ Log.i(TAG, "Clearing card: token: " + token);
+ mLatestRenderedDocumentState = null;
+ mRenderDocumentPayload = null;
+ mToken = null;
+ sendDeviceWindowState();
+ mAplEventSender.sendClearCard();
+ });
+ });
+ }
+
+ @Override
+ public void onExecuteCommands(String payload, String token) {
+ mToken = token;
+ getAplLayout().post(() -> {
+ try {
+ // Log payload and token
+ Log.v(TAG, "onExecuteCommands: payload: " + payload);
+ ExecuteCommandPayload commandPayload = ExecuteCommandPayload.convertToExecuteCommand(payload);
+ String commandsString = commandPayload.getCommands();
+ if (!commandsString.isEmpty()) {
+ mAplController.executeCommands(commandsString, action -> {
+ if (action != null) {
+ action.then(() -> {
+ Log.i(TAG,
+ "onExecuteCommands: result: true command: token:" + token
+ + " command: " + commandsString);
+ mAplEventSender.sendExecuteCommandsResult(token, true, "");
+ // Inactive after command completion
+ mAplEventSender.sendActivityEventRequest(
+ token, IAPLEventSender.ActivityEvent.DEACTIVATED);
+ });
+ action.addTerminateCallback(() -> {
+ Log.e(TAG, "onExecuteCommands: result: false token: " + token + " command terminated");
+ mAplEventSender.sendExecuteCommandsResult(token, false, "Missing commands");
+ // Inactive after command termination
+ mAplEventSender.sendActivityEventRequest(
+ token, IAPLEventSender.ActivityEvent.DEACTIVATED);
+ });
+ // Active while commands run
+ mAplEventSender.sendActivityEventRequest(token, IAPLEventSender.ActivityEvent.ACTIVATED);
+ }
+ });
+ } else {
+ mExecutor.submit(() -> {
+ Log.e(TAG, "onExecuteCommands: result: false token: " + token);
+ mAplEventSender.sendExecuteCommandsResult(token, false, "Missing commands");
+ });
+ }
+ } catch (Exception e) {
+ Log.e(TAG, "onExecuteCommands: token: result: false token: " + token + " error: " + e.getMessage());
+ mExecutor.submit(() -> { mAplEventSender.sendExecuteCommandsResult(token, false, e.getMessage()); });
+ }
+ });
+ }
+
+ @Override
+ public void onDataSourceUpdate(String sourceType, String payload, String token) {
+ Log.i(TAG, "dataSourceUpdate called: " + sourceType + " payload: " + payload + " token: " + token);
+ // Update data in APL Controller
+ if (!mAplController.updateDataSource(sourceType, payload)) {
+ Log.e(TAG, "handleDataSourceFetchRequest: updateDataSource was unsuccessful");
+ }
+ }
+
+ @Override
+ public void onInterruptCommandSequence(String token) {
+ getAplLayout().post(() -> {
+ try {
+ Log.i(TAG, "Interrupting command sequence");
+ mAplController.cancelExecution();
+ } catch (Exception e) {
+ Log.e(TAG, "Interrupting command sequence did not succeed: " + e.getMessage());
+ }
+ });
+ }
+
+ //-------------------------------------------------------------------------
+ // IAPLOptionsBuilderProvider
+ //-------------------------------------------------------------------------
+
+ @NonNull
+ @Override
+ public APLOptions.Builder getAPLOptionsBuilder() {
+ return mActivityComponent.getAPLOptionsBuilder()
+ .sendEventCallback(this)
+ .dataSourceFetchCallback(this)
+ .dataSourceErrorCallback(this)
+ .onAplFinishCallback(this)
+ .extensionEventCallback(mExtensionManager)
+ .visualContextListener(this);
+ }
+
+ //-------------------------------------------------------------------------
+ // IAPLEventSender
+ //-------------------------------------------------------------------------
+
+ @Override
+ public IAPLEventSender getAplEventSender() {
+ return mAplEventSender;
+ }
+
+ //-------------------------------------------------------------------------
+ // IAPLTokenProvider
+ //-------------------------------------------------------------------------
+
+ @Override
+ public String getToken() {
+ return mToken;
+ }
+
+ //-------------------------------------------------------------------------
+ // IVisualContextListener - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onVisualContextUpdate(JSONObject visualContext) {
+ Log.v(TAG, "Visual context update: " + visualContext);
+
+ if (mRenderDocumentPayload != null) {
+ JSONArray compsVisibleOnScreen = new JSONArray();
+ compsVisibleOnScreen.put(visualContext);
+ RenderedDocumentStatePayload payload =
+ RenderedDocumentStatePayload.builder()
+ .presentationToken(mRenderDocumentPayload.getPresentationToken())
+ .presentationSession(mRenderDocumentPayload.getPresentationSession())
+ .versionName(BuildConfig.VERSION_NAME)
+ .componentsVisibleOnScreenArray(compsVisibleOnScreen)
+ .build();
+ mLatestRenderedDocumentState = payload;
+ mAplEventSender.sendContext(mLatestRenderedDocumentState.toString());
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // IPresenter
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onTouchEvent(MotionEvent event) {
+ Log.v(TAG, "onTouchEvent: " + event);
+ String token = getToken();
+ if (token != null) {
+ mAplEventSender.sendActivityEventRequest(token, IAPLEventSender.ActivityEvent.ONE_TIME);
+ }
+ }
+
+ @Override
+ public boolean onKeyEvent(KeyEvent event) {
+ Log.v(TAG, "onKeyEvent: " + event);
+ String token = getToken();
+ if (token != null) {
+ mAplEventSender.sendActivityEventRequest(token, IAPLEventSender.ActivityEvent.ONE_TIME);
+ }
+ return false;
+ }
+
+ @Override
+ public APLLayout getAplLayout() {
+ String windowId = mRenderDocumentPayload != null && !mRenderDocumentPayload.getWindowId().isEmpty()
+ ? mRenderDocumentPayload.getWindowId()
+ : mDefaultWindowId;
+ return mAplLayouts.get(windowId);
+ }
+
+ @Override
+ public void setLocalInfoDataConsumer(ILocalInfoDataConsumer consumer) {
+ mLocalInfoDataConsumer = consumer;
+ }
+
+ @Override
+ public void setDismissibleCallback(IDismissible dismissibleCallback) {
+ mDismissibleCallback = dismissibleCallback;
+ }
+
+ @Override
+ public void cancelExecution() {
+ if (mAplController != null) {
+ Log.i(TAG, "cancelExecution");
+ mAplController.cancelExecution();
+ }
+ }
+
+ /**
+ * The following overrides are for methods defined by interfaces in the
+ * Android viewhost.
+ */
+
+ //-------------------------------------------------------------------------
+ // IOnAplFinishCallback - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onAplFinish() {
+ Log.v(TAG, "APL Rendering finished");
+ if (mDismissibleCallback != null) {
+ mDismissibleCallback.onDismiss();
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // ISendEventCallback - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onSendEvent(Object[] args, Map components, Map sources) {
+ try {
+ JSONArray jsonArgs = new JSONArray((args));
+ JSONObject jsonComponents = new JSONObject(components);
+ JSONObject jsonSources = new JSONObject(sources);
+
+ String userEvent = new UserEventPayload(getToken(), jsonArgs, jsonComponents, jsonSources).toString();
+ Log.v(TAG, "UserEvent: " + userEvent);
+ mAplEventSender.sendUserEventRequest(userEvent);
+ } catch (Exception e) {
+ Log.e(TAG, e.getMessage());
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // IDataSourceErrorCallback - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onDataSourceError(Object errors) {
+ JSONObject payload = new JSONObject();
+ try {
+ final JSONArray errorsJson = new JSONArray(errors);
+ payload.put("errors", errorsJson);
+ payload.put("presentationToken", getToken());
+
+ Log.v(TAG, "onDataSourceError: " + payload.toString());
+ // Notify that an error occurred
+ mAplEventSender.sendRuntimeErrorEventRequest(payload.toString());
+ } catch (JSONException e) {
+ Log.e(TAG, "Exception occurred while preparing RuntimeError Event payload", e);
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // IDataSourceFetchCallback - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onDataSourceFetchRequest(String dataSourceType, Map eventPayload) {
+ if (dataSourceType == null) {
+ Log.e(TAG, "onDataSourceFetchRequest: dataSource type is null");
+ return;
+ }
+
+ if (eventPayload == null) {
+ Log.e(TAG, "onDataSourceFetchRequest: eventPayload type is null");
+ return;
+ }
+
+ // Construct data source fetch request payload
+ JSONObject payload;
+ payload = new JSONObject(eventPayload);
+ try {
+ payload.put("presentationToken", getToken());
+ Log.i(TAG, "onDataSourceFetchRequest: " + dataSourceType + " payload: " + payload.toString());
+ // Notify that event should be sent
+ mAplEventSender.sendDataSourceFetchEventRequest(dataSourceType, payload.toString());
+
+ } catch (JSONException e) {
+ Log.e(TAG, "onDataSourceFetchRequest: unable to add presentation token", e);
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // IDocumentLifecycleListener - Android Viewhost
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onDocumentRender(@NonNull RootContext rootContext) {
+ Log.v(TAG, "onDocumentRender: ");
+ renderResponse(getToken(), true, "");
+ }
+
+ @Override
+ public void onDocumentFinish() {
+ Log.v(TAG, "onDocumentFinish: ");
+ }
+
+ //-------------------------------------------------------------------------
+ // ILocalInfoDataReporter
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void platformDataItemSelectedById(String poiId) {
+ if (mLocalInfoExtension != null) {
+ Log.v(TAG, "poiSelected " + poiId);
+ mLocalInfoExtension.poiSelected(mAplController, poiId);
+ mAplEventSender.sendActivityEventRequest(mToken, IAPLEventSender.ActivityEvent.ONE_TIME);
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Helper private methods
+ //-------------------------------------------------------------------------
+
+ /**
+ * Returns the APL options that will be used in rendering document.
+ *
+ * @return APLOptions The options used for rendering.
+ */
+ private synchronized APLOptions getAPLOptions() {
+ if (mAplOptions == null) {
+ mAplOptions = getAPLOptionsBuilder().build();
+ }
+ return mAplOptions;
+ }
+
+ /**
+ * Initialize the activity component object that provides APL options and configuration.
+ *
+ * @param context
+ * @return ActivityComponent The activity component object.
+ */
+ private ActivityComponent initActivityComponent(Context context) {
+ return DaggerActivityComponent.builder()
+ .activityModule(new ActivityModule(context))
+ .applicationComponent(mApplicationComponent)
+ .build();
+ }
+
+ /**
+ * Listen for touch events on the APL layout so that
+ * we can report activity events to prevent document from
+ * timing out when there is user interaction.
+ */
+ private void setupTouchListener() {
+ for (APLLayout aplLayout : mAplLayouts.values()) {
+ aplLayout.setOnTouchListener((view, event) -> {
+ if (event.getAction() == MotionEvent.ACTION_UP) {
+ onTouchEvent(event);
+ aplLayout.performClick();
+ }
+
+ // Let the parent consume the event
+ return false;
+ });
+ }
+ }
+
+ /**
+ * Render the document.
+ *
+ * @param content the inflated contents
+ */
+ private void doRender(Content content) {
+ // Finish the old document
+ destroyAplView();
+ applyScaling();
+
+ mExtensionManager = new ExtensionManager(mRootConfig);
+ Set extensionRequests = content.getExtensionRequests();
+
+ mBackHandler = new BackExtension(mBackStack, this::goBack, this);
+ mBackHandler.setResponsibleForBackButton(true);
+ mExtensionManager.addBuiltInExtension(mBackHandler);
+
+ Map extensionSettings = content.getExtensionSettings(mBackHandler.getUri());
+ if (extensionSettings != null) {
+ Object backstackSettings = extensionSettings.get(BackExtension.SETTINGS_PROPERTY_BACKSTACK_ID);
+ if (backstackSettings != null) {
+ mBackHandler.setDocumentId(backstackSettings.toString());
+ }
+ }
+
+ if (extensionRequests.contains(LocalInfoExtension.URI)) {
+ mLocalInfoExtension = new LocalInfoExtension(mRootConfig);
+ mLocalInfoExtension.setDataConsumer(mLocalInfoDataConsumer);
+ mExtensionManager.addBuiltInExtension(mLocalInfoExtension);
+ }
+
+ // Register extension and render when done
+ mExtensionManager.registerRequestedExtensions(extensionRequests, () -> performLayout(content));
+ }
+
+ private void performLayout(Content content) {
+ // Make sure mAplLayout is inflated and initialized
+ APLLayout aplLayout = getAplLayout();
+ APLOptions options = getAPLOptions();
+
+ try {
+ aplLayout.post(() -> {
+ IAPLViewPresenter presenter = aplLayout.getPresenter();
+ aplLayout.getPresenter().addDocumentLifecycleListener(this);
+ try {
+ mAplController = APLController.renderDocument(content, options, mRootConfig, presenter);
+ sendDeviceWindowState();
+ updateRuntimeProperties();
+ } catch (Exception e) {
+ Log.e(TAG, "Cannot render ", e);
+ renderResponse(getToken(), false, e.getMessage());
+ }
+ });
+
+ } catch (Exception e) {
+ Log.e(TAG, "Render failed", e);
+ }
+ }
+
+ private void renderResponse(String token, boolean result, String message) {
+ mExecutor.submit(() -> {
+ Log.i(TAG, "Render document result: " + result + " token: " + token + " message: " + message);
+ mAplEventSender.sendRenderDocumentResult(token, result, message);
+ });
+ }
+
+ /**
+ * Clean up rendering session.
+ */
+ private synchronized void destroyAplView() {
+ if (mAplController == null) {
+ return;
+ } else {
+ if (mBackHandler != null) {
+ BackStackDocument document =
+ new BackStackDocument(mBackHandler.getDocumentId(), mAplController.getDocumentState());
+ mBackHandler.addDocument(document);
+ }
+ }
+
+ mLocalInfoExtension = null;
+ mExtensionManager = null;
+ mAplController.finishDocument();
+ mAplController = null;
+ mAction = null;
+ }
+
+ /**
+ * Set the scaling based on the supported view ports.
+ */
+ private void applyScaling() {
+ List fallbackModes = Collections.singletonList(ViewportMode.kViewportModeAuto);
+ List viewportSpecifications = mRenderDocumentPayload.getViewportSpecifications();
+ Log.v(TAG, "viewportSpecification: " + viewportSpecifications.toString());
+ Scaling scaling = viewportSpecifications.isEmpty() ? new Scaling()
+ : new Scaling(10.0, viewportSpecifications, fallbackModes);
+
+ // Apply the scaling
+ getAplLayout().setScaling(scaling);
+ }
+
+ /**
+ * Builds the initial device window state that will be reported after
+ * platform interface registration.
+ * {
+ * "defaultWindowId": "string",
+ * "instances" : [
+ * {
+ * "id": "string",
+ * "templateId": "string",
+ * "token" : "",
+ * "configuration": {
+ * "interactionMode": "string",
+ * "sizeConfigurationId": "string"
+ * }
+ * }
+ * ]
+ * }
+ *
+ */
+ private void sendDeviceWindowState() {
+ JSONObject deviceWindowState = new JSONObject();
+ JSONArray windowInstances = new JSONArray();
+ String windowId = mRenderDocumentPayload != null && !mRenderDocumentPayload.getWindowId().isEmpty()
+ ? mRenderDocumentPayload.getWindowId()
+ : mDefaultWindowId;
+ String token = getToken();
+
+ try {
+ if (mVisualCharacteristics.length() > 0) {
+ for (int i = 0; i < mVisualCharacteristics.length(); i++) {
+ JSONObject currentElement = mVisualCharacteristics.getJSONObject(i);
+ if (currentElement.getString("interface").equals("Alexa.Display.Window")) {
+ JSONArray templates = currentElement.getJSONObject("configurations").getJSONArray("templates");
+ for (int j = 0; j < templates.length(); j++) {
+ JSONObject template = templates.getJSONObject(j);
+ JSONObject windowInstance = new JSONObject();
+ JSONObject windowConfiguration = new JSONObject();
+ JSONObject configuration = template.getJSONObject("configuration");
+ String templateId = template.getString("id");
+
+ windowInstance.put("id", templateId);
+ windowInstance.put("templateId", templateId);
+ windowInstance.put("token", "");
+
+ // Token must on the rendering window
+ if (windowId.equals(templateId)) {
+ windowInstance.put("token", token);
+ }
+
+ windowConfiguration.put(
+ "interactionMode", configuration.getJSONArray("interactionModes").getString(0));
+ windowConfiguration.put("sizeConfigurationId",
+ configuration.getJSONArray("sizes").getJSONObject(0).getString("id"));
+ windowInstance.put("configuration", windowConfiguration);
+
+ windowInstances.put(windowInstance);
+ }
+ }
+ }
+
+ deviceWindowState.put("defaultWindowId", mDefaultWindowId);
+ deviceWindowState.put("instances", windowInstances);
+
+ Log.v(TAG, "deviceWindowState: " + deviceWindowState.toString());
+ mAplEventSender.sendWindowState(deviceWindowState.toString());
+ }
+ } catch (JSONException e) {
+ Log.e(TAG, "Unable to build window state", e);
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // BackStack Support
+ //-------------------------------------------------------------------------
+
+ public void goBack(@NonNull BackStackDocument backStackDocument) {
+ getAplLayout().post(() -> {
+ mAplController.finishDocument();
+ backStackDocument.getDocumentState().setOptions(getAPLOptions());
+ try {
+ mAplController = APLController.restoreDocument(
+ backStackDocument.getDocumentState(), getAplLayout().getPresenter());
+ } catch (APLController.APLException e) {
+ Log.e(TAG, "Document failed to restore.");
+ }
+ });
+ }
+}
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java
similarity index 97%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java
index 6368db56d..5fb44db1a 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/APLSingleton.java
@@ -37,7 +37,7 @@ public class APLSingleton {
// Since Java loads the fields in declaration order, place this at the top.
private static final long INIT_TIME = System.currentTimeMillis();
- private static final String TAG = "APLSingleton";
+ private static final String TAG = APLSingleton.class.getSimpleName();
private static final APLSingleton INSTANCE = new APLSingleton();
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/audio/AudioFocusController.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/audio/AudioFocusController.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/audio/AudioFocusController.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/audio/AudioFocusController.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java
similarity index 98%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java
index bef7d2b12..3fd00fc8f 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/content/APLHttpContentRetriever.java
@@ -25,7 +25,7 @@
* resources such as packages, layouts, media, etc.
*/
public class APLHttpContentRetriever extends Content.Callback {
- private static final String TAG = "OkHttpAssetContentCallb";
+ private static final String TAG = APLHttpContentRetriever.class.getSimpleName();
public static final String CLOUDFRONT_LOCATION_PREFIX = "https://d2na8397m465mh.cloudfront.net/packages/";
private static final String CLOUDFRONT_LOCATION_SUFFIX = "/document.json";
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityContext.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityContext.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityContext.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityContext.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityScope.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityScope.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityScope.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ActivityScope.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationContext.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationContext.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationContext.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationContext.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationScope.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationScope.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationScope.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/ApplicationScope.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ActivityComponent.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ActivityComponent.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ActivityComponent.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ActivityComponent.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ApplicationComponent.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ApplicationComponent.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ApplicationComponent.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/component/ApplicationComponent.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java
similarity index 87%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java
index 2b69c7c0c..4bc9efc36 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/APLOptionsModule.java
@@ -16,19 +16,20 @@
package com.amazon.apl.android.render.dagger.module;
import android.content.Context;
-import android.view.TextureView;
import com.amazon.apl.android.APLOptions;
import com.amazon.apl.android.RootConfig;
import com.amazon.apl.android.dependencies.IOpenUrlCallback;
import com.amazon.apl.android.dependencies.impl.OpenUrlCallback;
-import com.amazon.apl.android.providers.AbstractMediaPlayerProvider;
import com.amazon.apl.android.render.BuildConfig;
import com.amazon.apl.android.render.dagger.ActivityContext;
import com.amazon.apl.android.render.dagger.ActivityScope;
import com.amazon.apl.android.render.media.APLMediaPlayerProvider;
import com.amazon.apl.android.render.tts.APLTtsPlayerProvider;
+import java.util.HashMap;
+import java.util.Map;
+
import dagger.Module;
import dagger.Provides;
@@ -64,11 +65,13 @@ public IOpenUrlCallback provideOpenUrl(@ActivityContext final Context context) {
*/
@Provides
public RootConfig provideRootConfig(@ActivityContext final Context context) {
- String[] packageVersion = BuildConfig.VERSION_NAME.split("-");
+ Map autoEnvironmentValues = new HashMap<>();
+ autoEnvironmentValues.put("drivingState", "moving");
return RootConfig.create(context)
- .agent(packageVersion[0], packageVersion[1])
+ .agent(BuildConfig.VERSION_NAME, "1.9")
.registerDataSource("dynamicIndexList")
.registerDataSource("dynamicTokenList")
- .allowOpenUrl(true);
+ .setEnvironmentValue("automobile", autoEnvironmentValues)
+ .allowOpenUrl(false);
}
}
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ActivityModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ActivityModule.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ActivityModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ActivityModule.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ApplicationModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ApplicationModule.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ApplicationModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/ApplicationModule.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/MediaPlayerModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/MediaPlayerModule.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/MediaPlayerModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/MediaPlayerModule.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/NetworkModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/NetworkModule.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/NetworkModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/NetworkModule.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/TtsModule.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/TtsModule.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/TtsModule.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/dagger/module/TtsModule.java
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/ExtensionManager.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/ExtensionManager.java
new file mode 100644
index 000000000..70e88c040
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/ExtensionManager.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension;
+
+import android.util.Log;
+
+import com.amazon.apl.android.Event;
+import com.amazon.apl.android.ExtensionCommandDefinition;
+import com.amazon.apl.android.ExtensionEventHandler;
+import com.amazon.apl.android.ExtensionFilterDefinition;
+import com.amazon.apl.android.RootConfig;
+import com.amazon.apl.android.dependencies.IExtensionEventCallback;
+import com.amazon.apl.android.providers.IExtension;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Extension Manager responsible for containing available extensions and registering requested extension
+ * with the root config.
+ */
+public class ExtensionManager implements IExtensionEventCallback {
+ private static final String TAG = ExtensionManager.class.getSimpleName();
+
+ private Map mExtensions;
+ private RootConfig mRootConfig;
+ private DiscoveryCallback mDiscoveryCallback;
+
+ //-------------------------------------------------------------------------
+ // Constructor
+ //-------------------------------------------------------------------------
+
+ public ExtensionManager(RootConfig rootConfig) {
+ mRootConfig = rootConfig;
+ mExtensions = new HashMap<>();
+ }
+
+ private IExtension getBuiltInExtension(String uri) {
+ return mExtensions.get(uri);
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //-------------------------------------------------------------------------
+
+ /**
+ * Interface for notifying when the extensions are loaded and registered.
+ */
+ public interface DiscoveryCallback { void onComplete(); }
+
+ /**
+ * Adds a built in extension so that it is registered with the APL runtime.
+ *
+ * @param extension The extension to add.
+ */
+ public void addBuiltInExtension(IExtension extension) {
+ mExtensions.put(extension.getUri(), extension);
+ }
+
+ /**
+ * This method will register the built in extensions that are requested by the
+ * APL document only if they are available in the extension manager.
+ *
+ * @param requestedExtensionUris Extensions requested through the APL document.
+ * @param content The APL runtime content.
+ * @param context The Android context.
+ * @param discoveryCallback The callback to execute once extensions are registered.
+ */
+ public void registerRequestedExtensions(Set requestedExtensionUris, DiscoveryCallback discoveryCallback) {
+ mDiscoveryCallback = discoveryCallback;
+
+ for (String requestedExtensionUri : requestedExtensionUris) {
+ IExtension extension = getBuiltInExtension(requestedExtensionUri);
+ if (extension != null) {
+ Log.v(TAG, "Registering extension: " + requestedExtensionUri);
+ mRootConfig.registerExtensionEnvironment(extension.getUri(), extension.getEnvironment());
+ for (ExtensionCommandDefinition command : extension.getCommandDefinitions()) {
+ mRootConfig.registerExtensionCommand(command);
+ }
+ for (ExtensionFilterDefinition filter : extension.getFilterDefinitions()) {
+ mRootConfig.registerExtensionFilter(filter);
+ }
+ for (ExtensionEventHandler handler : extension.getEventHandlers()) {
+ mRootConfig.registerExtensionEventHandler(handler);
+ }
+ } else {
+ Log.v(TAG, "Extension not supported by runtime: " + requestedExtensionUri);
+ }
+ }
+
+ Log.v(TAG, "Finished registering extensions");
+ mDiscoveryCallback.onComplete();
+ }
+
+ //-------------------------------------------------------------------------
+ // IExtensionEventCallback
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onExtensionEvent(String name, String uri, Event event, Map source,
+ Map custom, IExtensionEventCallbackResult resultCallback) {
+ handleOnExtensionEvent(name, uri, event, source, custom, resultCallback);
+ }
+
+ @Override
+ public void onExtensionEvent(String name, String uri, Map source, Map custom,
+ IExtensionEventCallbackResult resultCallback) {
+ handleOnExtensionEvent(name, uri, null, source, custom, resultCallback);
+ }
+
+ private void handleOnExtensionEvent(String name, String uri, Event event, Map source,
+ Map custom, IExtensionEventCallbackResult resultCallback) {
+ Log.v(TAG,
+ "handleOnExtensionEvent uri: " + uri + " event: " + event + " source: " + source
+ + " custom: " + custom);
+ IExtension extension = getBuiltInExtension(uri);
+ if (extension != null) {
+ IExtensionEventCallback callback = extension.getCallback();
+ if (callback != null) {
+ callback.onExtensionEvent(name, uri, event, source, custom, resultCallback);
+ } else {
+ Log.w(TAG, "Callback not handled for uri:" + uri);
+ }
+ } else {
+ Log.w(TAG, "Extension not found uri:" + uri);
+ }
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackExtension.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackExtension.java
new file mode 100644
index 000000000..a9c19c716
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackExtension.java
@@ -0,0 +1,325 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension.back;
+
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.amazon.apl.android.ExtensionCommandDefinition;
+import com.amazon.apl.android.ExtensionEventHandler;
+import com.amazon.apl.android.LegacyLocalExtension;
+import com.amazon.apl.android.dependencies.IExtensionEventCallback;
+import com.amazon.apl.android.dependencies.IOnAplFinishCallback;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of the APL BackStack extension. Allows APL documents to navigate back to previously
+ * rendered APL documents.
+ *
+ * APL-Spec https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-ext-backstack.html
+ */
+public class BackExtension extends LegacyLocalExtension {
+ private static final String TAG = BackExtension.class.getSimpleName();
+
+ public static final String URI = "aplext:backstack:10";
+ public static final String COMMAND_GO_BACK_NAME = "GoBack";
+ public static final String COMMAND_CLEAR_NAME = "Clear";
+ public static final String SETTINGS_PROPERTY_BACKSTACK_ID = "backstackId";
+ public static final String PROPERTY_BACK_TYPE = "backType";
+ public static final String PROPERTY_BACK_VALUE = "backValue";
+
+ private static final List COMMANDS = new ArrayList<>();
+
+ //-------------------------------------------------------------------------
+ // Supported commands
+ //-------------------------------------------------------------------------
+ static {
+ COMMANDS.add(new ExtensionCommandDefinition(URI, COMMAND_GO_BACK_NAME)
+ .allowFastMode(true)
+ .property(PROPERTY_BACK_TYPE, BackType.COUNT.toString(), false)
+ .property(PROPERTY_BACK_VALUE, 1, false));
+ COMMANDS.add(new ExtensionCommandDefinition(URI, COMMAND_CLEAR_NAME).allowFastMode(true));
+ }
+
+ @NonNull
+ private final BackStack mBackStack;
+ @NonNull
+ private final IBackCallback mBackCallback;
+ @NonNull
+ private final IOnAplFinishCallback mOnFinishCallback;
+ @Nullable
+ private BackStackDocument mBackstackDocument;
+ @Nullable
+ private IExtensionEventCallbackResult mResultCallback;
+
+ private boolean mResponsibleForBackButton;
+ private String mCurrentDocumentId;
+
+ /**
+ * Instantiate a new BackExtension.
+ * @param backStack the backstack to use
+ * @param callback the callback for handling GoBack commands
+ * @param onAplFinishCallback the callback for handling GoBack when the stack is empty
+ */
+ public BackExtension(@NonNull BackStack backStack, @NonNull IBackCallback callback,
+ @NonNull IOnAplFinishCallback onAplFinishCallback) {
+ mBackStack = backStack;
+ mBackCallback = callback;
+ mOnFinishCallback = onAplFinishCallback;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public String getUri() {
+ return URI;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object getEnvironment() {
+ Map envObject = new HashMap<>();
+ envObject.put("responsibleForBackButton", mResponsibleForBackButton);
+ envObject.put("backstack", mBackStack.getDocumentIds());
+ Log.i(TAG, "getEnvironment");
+ return envObject;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public List getCommandDefinitions() {
+ Log.i(TAG, "getCommandDefinitions");
+ return COMMANDS;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public List getEventHandlers() {
+ Log.i(TAG, "getEventHandlers");
+ return Collections.emptyList();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public IExtensionEventCallback getCallback() {
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void applySettings(Map settings) {
+ Object backStackId = settings.get(SETTINGS_PROPERTY_BACKSTACK_ID);
+ if (backStackId instanceof String) {
+ mCurrentDocumentId = (String) backStackId;
+ }
+ Log.i(TAG, "applySettings: " + mCurrentDocumentId);
+ }
+
+ /**
+ * Returns the current document id.
+ * @return
+ */
+ public String getDocumentId() {
+ return mCurrentDocumentId;
+ }
+
+ /**
+ * Set the document id.
+ * @param id
+ */
+ public void setDocumentId(String id) {
+ mCurrentDocumentId = id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onExtensionEvent(String name, String uri, Map source, Map custom,
+ IExtensionEventCallbackResult resultCallback) {
+ mBackstackDocument = null;
+ mResultCallback = resultCallback;
+ Log.v(TAG, "onExtensionEvent: " + name + " source: " + source);
+ switch (name) {
+ case COMMAND_GO_BACK_NAME:
+ goBack(custom.get(PROPERTY_BACK_TYPE), custom.get(PROPERTY_BACK_VALUE));
+ break;
+ case COMMAND_CLEAR_NAME:
+ eventHandled(true);
+ clear();
+ break;
+ default:
+ eventHandled(false);
+ }
+ }
+
+ /**
+ * Set the value of the Backstack environment property responsibleForBackButton.
+ * @param isResponsible true if the document needs to display the back button
+ */
+ public void setResponsibleForBackButton(boolean isResponsible) {
+ mResponsibleForBackButton = isResponsible;
+ }
+
+ /**
+ * Return the current back stack document.
+ * @return back stack document.
+ */
+ public BackStackDocument getBackstackDocument() {
+ return mBackstackDocument;
+ }
+
+ /**
+ * Add a document to the back stack.
+ * @param backStackDocument the document to be added to the back stack.
+ */
+ public void addDocument(BackStackDocument backStackDocument) {
+ mBackStack.addDocument(backStackDocument);
+ }
+
+ /**
+ * Go back using document id.
+ * @param documentId The id
+ */
+ public void goBack(String documentId) {
+ if (TextUtils.isEmpty(documentId)) {
+ mBackstackDocument = mBackStack.popDocuments(0);
+ } else {
+ mBackstackDocument = mBackStack.popDocuments(documentId);
+ }
+ triggerGoBack();
+ }
+
+ /**
+ * Go back using index.
+ * @param index The index to go back on the stack.
+ */
+ public void goBackIndex(int index) {
+ mBackstackDocument = mBackStack.popDocumentsAtIndex(index);
+ triggerGoBack();
+ }
+
+ /**
+ * Go back using count.
+ * @param count The number of elements that shoupd be popped off the stack.
+ */
+ public void goBackCount(int count) {
+ mBackstackDocument = mBackStack.popDocuments(count);
+ triggerGoBack();
+ }
+
+ /**
+ * Clear the back stack.
+ */
+ public void clear() {
+ mBackStack.clear();
+ }
+
+ /**
+ * Handle the go back command.
+ * @param objectBackType Back type: count, index, id
+ * @param backValue
+ */
+ private void goBack(Object objectBackType, Object backValue) {
+ try {
+ int intBack = 0;
+ if (backValue instanceof Double) {
+ intBack = ((Double) backValue).intValue();
+ } else if (backValue instanceof Integer) {
+ intBack = (Integer) backValue;
+ }
+ BackType backType = BackType.valueOf(objectBackType);
+ switch (backType) {
+ case ID:
+ goBack((String) backValue);
+ break;
+ case INDEX:
+ goBackIndex(intBack);
+ break;
+ case COUNT:
+ goBackCount(intBack);
+ break;
+ }
+ } catch (IllegalArgumentException | NullPointerException | ClassCastException e) {
+ Log.e(TAG, "Invalid keys in document. Doing nothing.", e);
+ }
+ }
+
+ /**
+ * Notified callback of the document to go back to or finish if last element was popped off.
+ */
+ private void triggerGoBack() {
+ eventHandled(true);
+ if (mBackstackDocument != null) {
+ mBackCallback.goBack(mBackstackDocument);
+ } else if (mBackStack.length() == 0) {
+ // Finish if we have no documents in the stack
+ mOnFinishCallback.onAplFinish();
+ }
+ }
+
+ /**
+ * Call back to signal if event was handled.
+ * @param handled
+ */
+ private void eventHandled(boolean handled) {
+ if (mResultCallback != null) {
+ mResultCallback.onResult(handled);
+ }
+ mResultCallback = null;
+ }
+
+ /**
+ * Supported back types.
+ */
+ enum BackType {
+ COUNT,
+ INDEX,
+ ID;
+
+ public static BackType valueOf(Object value) {
+ if (value instanceof BackType) {
+ return (BackType) value;
+ }
+
+ String name = ((String) value).toUpperCase();
+ return BackType.valueOf(name);
+ }
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStack.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStack.java
new file mode 100644
index 000000000..1195371b7
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStack.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension.back;
+
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * This object contains {@link BackStackDocument} objects and methods to support the apl Backstack.
+ *
+ * APL-Spec https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/apl-ext-backstack.html
+ *
+ * Note:
+ * The top of the stack is {@link BackStack#length()} - 1.
+ */
+public class BackStack {
+ private static final String TAG = BackStack.class.getSimpleName();
+
+ private ArrayDeque mDocuments;
+ public BackStack() {
+ mDocuments = new ArrayDeque<>();
+ }
+
+ /**
+ * Adds a document to the BackStack.
+ * @param backStackDocument the document to add.
+ */
+ void addDocument(@NonNull BackStackDocument backStackDocument) {
+ Log.v(TAG, "addDocument: " + backStackDocument.hashCode());
+ mDocuments.addLast(backStackDocument);
+ }
+
+ /**
+ * @return the length of the backstack.
+ */
+ public int length() {
+ Log.v(TAG, "length: " + mDocuments.size());
+ return mDocuments.size();
+ }
+
+ /**
+ * Clears the stack of documents.
+ */
+ public void clear() {
+ Log.v(TAG, "clear: " + mDocuments.size());
+ mDocuments.clear();
+ }
+
+ /**
+ * @return the list of document ids in the backstack.
+ */
+ public List getDocumentIds() {
+ Log.v(TAG, "getDocumentIds: size: " + mDocuments.size());
+ List documentIds = new ArrayList<>();
+ for (BackStackDocument backStackDocument : mDocuments) {
+ documentIds.add(backStackDocument.getDocumentId());
+ }
+ return documentIds;
+ }
+
+ /**
+ * Gets the index of the most recent document with the id documentId.
+ *
+ * Note: documents are stored in ascending-recency order. That is, the order ['A','B','C'] means
+ * that 'C' is the most recent document.
+ *
+ * @param documentId the id to search for.
+ * @return the index of the most recent document in the stack matching documentId,
+ * or -1 if not found.
+ */
+ int indexOf(@NonNull String documentId) {
+ int index = mDocuments.size() - 1;
+ for (Iterator itr = mDocuments.descendingIterator(); itr.hasNext();) {
+ if (documentId.equals(itr.next().getDocumentId())) {
+ return index;
+ }
+ index--;
+ }
+
+ return -1;
+ }
+
+ /**
+ * Removes all documents in the stack more recent than the most recent document with matching
+ * documentId and removes and returns that document.
+ *
+ * For example, if the stack is ['A','B','B','C'], then popDocuments('B') would return the document
+ * at index 2 and the stack would be ['A','B'].
+ *
+ * @param documentId the id of the document to return
+ * @return the most recent document in the stack whose document id matches the parameter.
+ */
+ @Nullable
+ BackStackDocument popDocuments(@NonNull String documentId) {
+ Log.v(TAG, "popDocuments id: " + documentId);
+ int indexOfDocument = indexOf(documentId);
+ if (indexOfDocument == -1) {
+ return null;
+ }
+ return popDocumentsAtIndex(indexOfDocument);
+ }
+
+ /**
+ * Removes all documents more recent than and including index and returns the document at index.
+ *
+ * For example, if the stack has ['A','B','C'], then both popDocumentsAtIndex(0) and
+ * popDocumentsAtIndex(-3) would return 'A' and the stack would be [].
+ *
+ * @param index the index of the document to return (can be negative to count backwards)
+ * @return the document at index.
+ */
+ @Nullable
+ BackStackDocument popDocumentsAtIndex(int index) {
+ Log.v(TAG, "popDocuments index: " + index);
+ // Convert negative indexes to positive
+ if (index < 0) {
+ index = index + mDocuments.size();
+ }
+
+ if (index < 0 || index >= mDocuments.size()) {
+ return null;
+ }
+
+ return popDocuments(mDocuments.size() - index);
+ }
+
+ /**
+ * Removes count documents from the stack and returns the last one removed.
+ *
+ * For example, if the stack has documents ['A', 'B', 'C'], then popDocuments(2) would return 'B',
+ * and the stack would be: ['A'].
+ *
+ * @param count the number of documents to remove
+ * @return the count document in the stack
+ */
+ @Nullable
+ BackStackDocument popDocuments(int count) {
+ Log.v(TAG, "popDocuments count: " + count + " size: " + mDocuments.size());
+ if (count < 0 || count > mDocuments.size() || mDocuments.size() == 0) {
+ return null;
+ }
+
+ for (int i = 0; i < count - 1; i++) {
+ mDocuments.removeLast();
+ }
+
+ return mDocuments.removeLast();
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStackDocument.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStackDocument.java
new file mode 100644
index 000000000..f9add018b
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/BackStackDocument.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension.back;
+
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
+import com.amazon.apl.android.DocumentState;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Maintains a document with a specified ID in the backstack.
+ */
+public class BackStackDocument {
+ private static final String TAG = BackStackDocument.class.getSimpleName();
+
+ /**
+ * The document's backstack id.
+ */
+ @NonNull
+ private final String mDocumentId;
+
+ /**
+ * The document's cached state.
+ */
+ @NonNull
+ private final DocumentState mDocumentState;
+
+ /**
+ * Map of metadata that can be attached to this document. Metadata
+ * could be anything that the application can use to restore the
+ * document.
+ */
+ @NonNull
+ private final Map mDocumentExtras = new HashMap<>(8);
+
+ /**
+ * Creates a BackStack document to add to the backstack.
+ * @param documentId the backstackId
+ * @param documentState the document's cached state
+ */
+ public BackStackDocument(@NonNull final String documentId, @NonNull final DocumentState documentState) {
+ mDocumentId = documentId;
+ mDocumentState = documentState;
+ }
+
+ /**
+ * Return the document id.
+ * @return the document's backstack id.
+ */
+ @NonNull
+ public String getDocumentId() {
+ return mDocumentId;
+ }
+
+ /**
+ * Return the cached document.
+ * @return the document's cached state.
+ */
+ @NonNull
+ public DocumentState getDocumentState() {
+ return mDocumentState;
+ }
+
+ /**
+ * Return metadata associated with this document using a key.
+ * @param key the key
+ * @return An extra attached with this document.
+ */
+ @SuppressWarnings("unchecked")
+ @NonNull
+ public T getExtra(@NonNull String key, @NonNull T fallbackValue) {
+ try {
+ return Objects.requireNonNull((T) mDocumentExtras.get(key));
+ } catch (ClassCastException e) {
+ Log.w(TAG, "Type mismatch for key: " + key, e);
+ } catch (NullPointerException e) {
+ Log.i(TAG, "Key not found: " + key);
+ }
+ return fallbackValue;
+ }
+
+ /**
+ * Check if a document extra exists.
+ * @param key the key
+ * @return true if the document extra was added.
+ */
+ public boolean hasExtra(@NonNull String key) {
+ return mDocumentExtras.containsKey(key);
+ }
+
+ /**
+ * Attach additional information with this document.
+ * @param key the key
+ * @param extra additional data
+ * @return this for chaining
+ */
+ public BackStackDocument putExtra(@NonNull String key, @NonNull T extra) {
+ mDocumentExtras.put(key, extra);
+ return this;
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/IBackCallback.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/IBackCallback.java
new file mode 100644
index 000000000..76ab64301
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/back/IBackCallback.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension.back;
+
+import androidx.annotation.NonNull;
+
+public interface IBackCallback {
+ /**
+ * Handle a successful GoBack command.
+ * @param backStackDocument the document to go back to.
+ */
+ void goBack(@NonNull BackStackDocument backStackDocument);
+}
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/localinfo/LocalInfoExtension.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/localinfo/LocalInfoExtension.java
new file mode 100644
index 000000000..28c4dba62
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/extension/localinfo/LocalInfoExtension.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.extension.localinfo;
+
+import android.util.Log;
+
+import com.amazon.apl.android.APLController;
+import com.amazon.apl.android.Event;
+import com.amazon.apl.android.ExtensionCommandDefinition;
+import com.amazon.apl.android.ExtensionEventHandler;
+import com.amazon.apl.android.RootConfig;
+import com.amazon.apl.android.dependencies.IExtensionEventCallback;
+import com.amazon.apl.android.providers.IExtension;
+import com.amazon.apl.android.render.interfaces.ILocalInfoDataConsumer;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class implements a built in APL extension used by the local info
+ * domain to expose data to the platform. This exposes a bidirectional communication
+ * channel for the platfom and APL runtime to communicate.
+ */
+public class LocalInfoExtension implements IExtensionEventCallback, IExtension {
+ public static final String TAG = LocalInfoExtension.class.getSimpleName();
+ public static final String URI = "aplext:localinfo:10";
+ public static final String COMMAND_SEND_POI_DATA_LIST = "SendPOIDataList";
+ public static final String COMMAND_SELECT_POI = "SelectPOI";
+ public static final String PROPERTY_DATA_LIST = "poiDataList";
+ public static final String PROPERTY_POI_ID = "poiId";
+ public static final String ON_SELECT_POI_EVENT_HANDLER = "OnSelectPOI";
+
+ private ILocalInfoDataConsumer mDataConsumer;
+ private RootConfig mRootConfig;
+
+ //-------------------------------------------------------------------------
+ // Constructor
+ //-------------------------------------------------------------------------
+
+ public LocalInfoExtension(RootConfig rootConfig) {
+ mRootConfig = rootConfig;
+ }
+
+ //-------------------------------------------------------------------------
+ // Events and commands supported by the extension
+ //-------------------------------------------------------------------------
+
+ private static final List COMMANDS = new ArrayList<>();
+ private static final List EVENTS = new ArrayList<>();
+
+ static {
+ COMMANDS.add(new ExtensionCommandDefinition(URI, COMMAND_SEND_POI_DATA_LIST)
+ .allowFastMode(true)
+ .property(PROPERTY_DATA_LIST, null, true));
+ COMMANDS.add(new ExtensionCommandDefinition(URI, COMMAND_SELECT_POI)
+ .allowFastMode(true)
+ .property(PROPERTY_POI_ID, "", false));
+ EVENTS.add(new ExtensionEventHandler(URI, ON_SELECT_POI_EVENT_HANDLER));
+ }
+
+ //-------------------------------------------------------------------------
+ // IExtension
+ //-------------------------------------------------------------------------
+
+ @Override
+ public List getCommandDefinitions() {
+ return COMMANDS;
+ }
+
+ @Override
+ public List getEventHandlers() {
+ return EVENTS;
+ }
+
+ @Override
+ public String getUri() {
+ return URI;
+ }
+
+ @Override
+ public IExtensionEventCallback getCallback() {
+ return this;
+ }
+
+ //-------------------------------------------------------------------------
+ // IExtensionEventCallback
+ //-------------------------------------------------------------------------
+
+ @Override
+ public void onExtensionEvent(String name, String uri, Event event, Map source,
+ Map custom, IExtensionEventCallback.IExtensionEventCallbackResult resultCallback) {
+ handleOnExtensionEvent(name, uri, event, source, custom, resultCallback);
+ }
+
+ @Override
+ public void onExtensionEvent(String name, String uri, Map source, Map custom,
+ IExtensionEventCallback.IExtensionEventCallbackResult resultCallback) {
+ handleOnExtensionEvent(name, uri, null, source, custom, resultCallback);
+ }
+
+ private void handleOnExtensionEvent(String name, String uri, Event event, Map source,
+ Map custom, IExtensionEventCallback.IExtensionEventCallbackResult resultCallback) {
+ Log.v(TAG, "onExtensionEvent: " + uri + "/" + name + "/" + event + "/" + source + "/" + custom);
+ switch (name) {
+ case COMMAND_SEND_POI_DATA_LIST:
+ sendPOIDataListHandler(custom.get(PROPERTY_DATA_LIST));
+ break;
+ case COMMAND_SELECT_POI:
+ selectPoiHandler(custom.get(PROPERTY_POI_ID));
+ break;
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //-------------------------------------------------------------------------
+
+ /**
+ * The platform instance that will consume local info data from extension commands.
+ *
+ * @param consumer The consumer instance.
+ */
+ public void setDataConsumer(ILocalInfoDataConsumer consumer) {
+ mDataConsumer = consumer;
+ }
+
+ /**
+ * External selection of poi data item.
+ * @param controller The APL runtime instance.
+ * @param poiId Id of the selected data item.
+ */
+ public void poiSelected(APLController controller, String poiId) {
+ Map map = new HashMap<>();
+ map.put("poiId", poiId);
+ sendEventToDoc(controller, ON_SELECT_POI_EVENT_HANDLER, map);
+ }
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //-------------------------------------------------------------------------
+
+ /**
+ * Handle the SendPOIDataList command.
+ * @param objectDataList
+ */
+ private void sendPOIDataListHandler(Object objectDataList) {
+ try {
+ JSONArray poiDataList = new JSONArray();
+ Object[] data = (Object[]) objectDataList;
+ for (int i = 0; i < data.length; i++) {
+ HashMap poiItem = (HashMap) data[i];
+ JSONObject poiJson = new JSONObject(poiItem);
+ Log.v(TAG, "data " + poiItem);
+ poiDataList.put(poiJson);
+ }
+ String dataJson = poiDataList.toString();
+ if (mDataConsumer != null) {
+ mDataConsumer.aplDataAvailable(dataJson);
+ Log.v(TAG, "aplDataAvailable: " + dataJson);
+ }
+ } catch (IllegalArgumentException | NullPointerException | ClassCastException e) {
+ Log.w(TAG, "Invalid keys in document. Doing nothing.", e);
+ }
+ }
+
+ /**
+ * Notify consumer that a data item was selected through the APL document.
+ *
+ * @param poiId The id of the data item selected.
+ */
+ private void selectPoiHandler(Object poiId) {
+ String poiIdString = (String) poiId;
+ Log.v(TAG, "selectPoiHandler" + poiIdString);
+ if (mDataConsumer != null) {
+ mDataConsumer.aplDataItemSelectedById(poiIdString);
+ }
+ }
+
+ /**
+ * Send an APL extension event to the APL document.
+ * @param controller current APL controller
+ * @param handler name of the extension event handler in the doc
+ * @param data map of data to send in the event
+ */
+ private void sendEventToDoc(APLController controller, String handler, Map data) {
+ if (controller != null) {
+ Log.v(TAG, "extension sending event to " + handler);
+ controller.invokeExtensionEventHandler(URI, handler, data, false, null);
+ }
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/font/AutoEmbeddedFontResolver.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/font/AutoEmbeddedFontResolver.java
new file mode 100644
index 000000000..be78e6dee
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/font/AutoEmbeddedFontResolver.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.font;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.util.Log;
+
+import androidx.annotation.FontRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
+
+import com.amazon.apl.android.font.EmbeddedFontResolver;
+import com.amazon.apl.android.font.FontKey;
+import com.amazon.apl.android.render.R;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This class provides support for Bookerly Amazon fonts. The fonts must be downloaded from the
+ * Amazon development portal.
+ */
+public class AutoEmbeddedFontResolver extends EmbeddedFontResolver {
+ private static final String TAG = AutoEmbeddedFontResolver.class.getSimpleName();
+ private static final String BOOKERLY_FONT_FAMILY = "bookerly";
+
+ private final Context mAppContext;
+
+ private static class ResFontKey {
+ @FontRes
+ final int fontRes;
+ final int weight;
+
+ ResFontKey(final int weight, @FontRes final int fontRes) {
+ this.weight = weight;
+ this.fontRes = fontRes;
+ }
+ }
+
+ // Mapping of font weights to font
+ private static final List sFontWeights = Collections.unmodifiableList(
+ Arrays.asList(new ResFontKey(100, R.font.bookerly_lcd_lt), new ResFontKey(300, R.font.bookerly_lcd_rg),
+ new ResFontKey(600, R.font.bookerly_lcd_rg), new ResFontKey(700, R.font.bookerly_lcd_bd)));
+
+ public AutoEmbeddedFontResolver(@NonNull final Context context) {
+ super(context);
+ mAppContext = context;
+ }
+
+ /**
+ * If Bookerly font is requested then this method will handle
+ * returning the correct typeface for that font family. Otherwise
+ * it delegates to the parent class.
+ *
+ * @param key The requested font key.
+ * @return The requested font, or null if not found.
+ */
+ @NonNull
+ @Override
+ public Typeface findFont(@NonNull FontKey key) {
+ Typeface result = null;
+
+ if (key.getFamily().equalsIgnoreCase(BOOKERLY_FONT_FAMILY)) {
+ try {
+ result = findAPLFont(key);
+ } catch (final Resources.NotFoundException ex) {
+ Log.e(TAG, "Exception finding embedded app font", ex);
+ }
+ }
+
+ if (result == null) {
+ Log.d(TAG, "Looking for non bookerly font");
+ result = super.findFont(key);
+ }
+
+ return result;
+ }
+
+ @Nullable
+ private Typeface findAPLFont(@NonNull final FontKey key) {
+ // Get the closest APLFont font
+ int minDiff = Integer.MAX_VALUE;
+ AutoEmbeddedFontResolver.ResFontKey bestKey = null;
+ List fontWeights = sFontWeights;
+
+ for (final AutoEmbeddedFontResolver.ResFontKey currentKey : fontWeights) {
+ final int currentWeight = currentKey.weight;
+
+ if (minDiff > Math.abs(currentWeight - key.getWeight())) {
+ minDiff = Math.abs(currentWeight - key.getWeight());
+ bestKey = currentKey;
+ }
+ }
+
+ if (bestKey != null) {
+ Log.i(TAG, "Best key: " + bestKey.weight + " requested: " + key.getWeight());
+ final Typeface result = ResourcesCompat.getFont(mAppContext, bestKey.fontRes);
+ if (key.isItalic()) {
+ return Typeface.create(result, Typeface.ITALIC);
+ }
+ return result;
+ }
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java
similarity index 87%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java
index a6fb1184e..847ae8be8 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLContentListener.java
@@ -71,4 +71,17 @@ public interface IAPLContentListener {
* @param [in] token The APL presentation token associated with the current rendered document.
*/
public void onInterruptCommandSequence(String token);
+
+ /**
+ * Notifies that APL runtime properties should be changed on the rendered document.
+ * @param properties JSON string containing one or more properties.
+ * @code{.json}
+ * {
+ * "drivingState" : "parked|moving",
+ * "theme" : "light|light-gray1|light-gray2|dark|dark-black|dark-gray",
+ * "video" : "enabled|disabled"
+ * }
+ * @endcode
+ */
+ public void onAPLRuntimeProperties(String properties);
}
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLEventSender.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLEventSender.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLEventSender.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLEventSender.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLOptionsBuilderProvider.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLOptionsBuilderProvider.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLOptionsBuilderProvider.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLOptionsBuilderProvider.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLTokenProvider.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLTokenProvider.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLTokenProvider.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IAPLTokenProvider.java
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IDismissible.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IDismissible.java
new file mode 100644
index 000000000..1fee143b1
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IDismissible.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.interfaces;
+
+/**
+ * Interface for notifying application UI when to dismiss.
+ */
+public interface IDismissible {
+ /**
+ * Callback to be called for dismissing.
+ */
+ void onDismiss();
+}
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataConsumer.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataConsumer.java
new file mode 100644
index 000000000..2516fb3f3
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataConsumer.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.interfaces;
+
+/**
+ * This interface allows the platform to be notified when local info data
+ * is available or selected inside the APL document.
+ */
+public interface ILocalInfoDataConsumer {
+ /**
+ * Notifies the platform that the APL document contains local info data.
+ *
+ * @param data The list of data items containing
+ * @code{.json}
+ * [
+ * {
+ * "id" : "",
+ * "name" : "",
+ * "coordinate" : {
+ * "latitude" : ,
+ * "longitude :
+ * }
+ * }
+ * ]
+ * @endcode
+ * @li id The identifier for the POI data item.
+ * @li name The name associated with the POI data item.
+ * @li coordinate A JSON object containing the geocoordinates for the POI data item.
+ */
+ void aplDataAvailable(String data);
+
+ /**
+ * Notifies the platform that a POI data item was selected in the APL document. This
+ * allows the platform to highlight the selected data item.
+ *
+ * @param id The identifier for the selected POI data item.
+ */
+ void aplDataItemSelectedById(String id);
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataReporter.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataReporter.java
new file mode 100644
index 000000000..01e213b7f
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/ILocalInfoDataReporter.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file 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.
+ */
+
+package com.amazon.apl.android.render.interfaces;
+
+/**
+ * Interface used for allowing platform to report changes in local info
+ * that can affect the APL document.
+ */
+public interface ILocalInfoDataReporter {
+ /**
+ * Notifies the APL extension that a POI data item was selected by the platform.
+ * This allows the APL document to be updated to show details for the selected
+ * data item.
+ *
+ * @param id The identifier for the selected POI data item.
+ */
+ void platformDataItemSelectedById(String id);
+}
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java
similarity index 76%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java
index d4579a780..6615167fb 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/interfaces/IPresenter.java
@@ -53,4 +53,22 @@ public interface IPresenter
* @return
*/
IAPLEventSender getAplEventSender();
+
+ /**
+ * Saves a reference to the local info data consumer.
+ *
+ * @param consumer The object that consume local info data events.
+ */
+ void setLocalInfoDataConsumer(ILocalInfoDataConsumer consumer);
+
+ /**
+ * Callback to notify when APL window should be dismissed.
+ * @param dismissibleCallback
+ */
+ void setDismissibleCallback(IDismissible dismissibleCallback);
+
+ /**
+ * This should be called to stop execution when there is a barge in.
+ */
+ void cancelExecution();
}
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java
similarity index 98%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java
index f8ef28efe..16dca29f2 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayer.java
@@ -32,7 +32,7 @@
* content.
*/
public class APLMediaPlayer extends MediaPlayer implements AudioFocusController.PlaybackController {
- private static final String TAG = "APLMediaPlayer";
+ private static final String TAG = APLMediaPlayer.class.getSimpleName();
private final IAPLEventSender mAplEventSender;
private final IAPLTokenProvider mAplTokenProvider;
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayerProvider.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayerProvider.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayerProvider.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/media/APLMediaPlayerProvider.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/NetworkExecutor.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/NetworkExecutor.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/NetworkExecutor.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/NetworkExecutor.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java
similarity index 98%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java
index 2672e1cfa..23f8e63a9 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/network/OkHttpClientWrapper.java
@@ -35,7 +35,7 @@
* Wrapper around {@link OkHttpClient} to facilitate reading from cache first and refreshing later.
*/
public class OkHttpClientWrapper {
- private static final String TAG = "OkHttpClientWrapper";
+ private static final String TAG = OkHttpClientWrapper.class.getSimpleName();
public static final String CLOUDFRONT_LOCATION_PREFIX = "https://d2na8397m465mh.cloudfront.net/packages/";
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java
similarity index 95%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java
index 735b9c51f..25f837d27 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/APLPayload.java
@@ -29,7 +29,7 @@
@AllArgsConstructor
@Getter
public abstract class APLPayload {
- private static final String TAG = "APLPayload";
+ private static final String TAG = APLPayload.class.getSimpleName();
public static final String FIELD_PRESENTATION_TOKEN = "presentationToken";
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/ExecuteCommandPayload.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/ExecuteCommandPayload.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/ExecuteCommandPayload.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/ExecuteCommandPayload.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java
similarity index 97%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java
index 3087c8699..88b44b9cb 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/PresentationSession.java
@@ -39,7 +39,7 @@
@EqualsAndHashCode
@Builder
public class PresentationSession {
- private static final String TAG = "PresentationSession";
+ private static final String TAG = PresentationSession.class.getSimpleName();
public static final String FIELD_SKILL_ID = "skillId";
public static final String FIELD_ID = "id";
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java
similarity index 98%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java
index c8780a96b..9e83afdb1 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderDocumentPayload.java
@@ -59,7 +59,7 @@
*/
@Getter
public class RenderDocumentPayload extends APLPayload {
- private static final String TAG = "RenderDocumentPayload";
+ private static final String TAG = RenderDocumentPayload.class.getSimpleName();
private static final Map MODE_MAP = new HashMap() {
{
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderedDocumentStatePayload.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderedDocumentStatePayload.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderedDocumentStatePayload.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/RenderedDocumentStatePayload.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/TimeoutType.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/TimeoutType.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/TimeoutType.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/TimeoutType.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/UserEventPayload.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/UserEventPayload.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/UserEventPayload.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/payload/UserEventPayload.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java
similarity index 96%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java
index 22ebf51fa..97e593ef1 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayer.java
@@ -32,7 +32,7 @@
* and request Android audio focus.
*/
public class APLTtsPlayer extends TtsPlayer implements AudioFocusController.PlaybackController {
- private static final String TAG = "APLTtsPlayer";
+ private static final String TAG = APLTtsPlayer.class.getSimpleName();
private final IAPLEventSender mAplEventSender;
private final IAPLTokenProvider mAplTokenProvider;
@@ -60,7 +60,7 @@ public void onPlayerStateChanged(boolean playWhenReady, @NonNull AudioPlayer.Aud
if (state == AudioPlayer.AudioPlayerState.STATE_PREPARING) {
Log.v(TAG, "Acquire APL focus");
- } else if (state == AudioPlayer.AudioPlayerState.STATE_ENDED) {
+ } else if (state == AudioPlayer.AudioPlayerState.STATE_ENDED || state == AudioPlayer.AudioPlayerState.STATE_IDLE) {
mAplEventSender.sendActivityEventRequest(
mAplTokenProvider.getToken(), IAPLEventSender.ActivityEvent.DEACTIVATED);
Log.v(TAG, "Release APL focus");
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java
similarity index 96%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java
index d3f8c56d6..7ae10258c 100644
--- a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/tts/APLTtsPlayerProvider.java
@@ -34,7 +34,7 @@
* Android view host to create a TTS player instance.
*/
public class APLTtsPlayerProvider implements ITtsPlayerProvider {
- private static final String TAG = "APLTtsPlayerProvider";
+ private static final String TAG = APLTtsPlayerProvider.class.getSimpleName();
private Context mContext;
private APLTtsPlayer mTtsPlayer;
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/RenderDocumentUtils.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/RenderDocumentUtils.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/RenderDocumentUtils.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/RenderDocumentUtils.java
diff --git a/platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/ViewportUtils.java b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/ViewportUtils.java
similarity index 100%
rename from platforms/android/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/ViewportUtils.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/java/com/amazon/apl/android/render/utils/ViewportUtils.java
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/libs/.gitignore b/aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/libs/.gitignore
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/libs/.gitignore
rename to aacs/android/app-components/alexa-auto-apl-renderer/modules/apl-render/src/main/libs/.gitignore
diff --git a/platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/proguard-rules.pro b/aacs/android/app-components/alexa-auto-apl-renderer/proguard-rules.pro
similarity index 100%
rename from platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/proguard-rules.pro
rename to aacs/android/app-components/alexa-auto-apl-renderer/proguard-rules.pro
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/AndroidManifest.xml b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..e3a341ac3
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/AndroidManifest.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/assets/APLViewport.json b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/assets/APLViewport.json
new file mode 100644
index 000000000..99c186ba6
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/assets/APLViewport.json
@@ -0,0 +1,113 @@
+{
+ "_comment": "AACS config for APL visual characteristics.",
+ "aacs.alexa": {
+ "gui": {
+ "visualCharacteristics": [
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.InteractionMode",
+ "version": "1.1",
+ "configurations": {
+ "interactionModes": [
+ {
+ "id": "{{STRING}}",
+ "uiMode": "AUTO",
+ "interactionDistance": {
+ "unit": [ "CENTIMETERS", "INCHES" ],
+ "value": "{INTEGER}"
+ },
+ "touch": [ "SUPPORTED", "UNSUPPORTED" ],
+ "keyboard": [ "SUPPORTED", "UNSUPPORTED" ],
+ "video": [ "SUPPORTED", "UNSUPPORTED" ],
+ "dialog": [ "SUPPORTED", "UNSUPPORTED" ]
+ }
+ ]
+ }
+ },
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.Presentation.APL.Video",
+ "version": "1.0",
+ "configurations": {
+ "video": {
+ "codecs": [
+ "H_264_42",
+ "H_264_41"
+ ]
+ }
+ }
+ },
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.Display.Window",
+ "version": "1.0",
+ "configurations": {
+ "templates": [
+ {
+ "id": "{STRING}",
+ "type": "STANDARD",
+ "configuration": {
+ "sizes": [
+ {
+ "type": "DISCRETE",
+ "id": "{STRING}",
+ "value": {
+ "unit": "PIXEL",
+ "value": {
+ "width": "{INTEGER}",
+ "height": "{INTEGER}"
+ }
+ }
+ }
+ ],
+ "interactionModes": [
+ "{STRING}"
+ ]
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "AlexaInterface",
+ "interface": "Alexa.Display",
+ "version": "1.0",
+ "configurations": {
+ "display": {
+ "type": "PIXEL",
+ "touch": [ "SINGLE", "UNSUPPORTED" ],
+ "shape": [ "RECTANGLE", "ROUND" ],
+ "dimensions": {
+ "resolution": {
+ "unit": "PIXEL",
+ "value": {
+ "width": "{INTEGER}",
+ "height": "{INTEGER}"
+ }
+ },
+ "physicalSize": {
+ "unit": [ "CENTIMETERS", "INCHES" ],
+ "value": {
+ "width": "{DECIMAL}",
+ "height": "{DECIMAL}"
+ }
+ },
+ "pixelDensity": {
+ "unit": "DPI",
+ "value": "{INTEGER}"
+ },
+ "densityIndependentResolution": {
+ "unit": "DP",
+ "value": {
+ "width": "{INTEGER}",
+ "height": "{INTEGER}"
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLDirective.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLDirective.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLDirective.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLDirective.java
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLFragment.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLFragment.java
new file mode 100644
index 000000000..73ea8c520
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLFragment.java
@@ -0,0 +1,340 @@
+package com.amazon.alexa.auto.apl;
+
+import static com.amazon.aacsconstants.AASBConstants.AlexaClient.DIALOG_STATE_LISTENING;
+import static com.amazon.alexa.auto.apl.Constants.STATE;
+import static com.amazon.alexa.auto.apps.common.Constants.APL_RUNTIME_PROPERTIES;
+import static com.amazon.alexa.auto.apps.common.Constants.APL_RUNTIME_PROPERTY_DRIVING_STATE_NAME;
+import static com.amazon.alexa.auto.apps.common.Constants.APL_RUNTIME_PROPERTY_THEME_NAME;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.amazon.aacsconstants.Action;
+import com.amazon.aacsipc.AACSSender;
+import com.amazon.alexa.auto.aacs.common.AACSMessageSender;
+import com.amazon.alexa.auto.apis.app.AlexaApp;
+import com.amazon.alexa.auto.apis.session.SessionActivityController;
+import com.amazon.alexa.auto.apl.handler.APLHandler;
+import com.amazon.alexa.auto.apps.common.util.FileUtil;
+import com.amazon.alexa.auto.apps.common.util.Preconditions;
+import com.amazon.apl.android.APLLayout;
+import com.amazon.apl.android.render.APLPresenter;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * Fragment for Alexa Auto APL screen.
+ */
+public class APLFragment extends Fragment {
+ private static final String TAG = APLFragment.class.getSimpleName();
+
+ private static final double APL_FRAGMENT_MARGIN_RATIO = 0.05;
+
+ @Nullable
+ private APLHandler mAplHandler;
+ @NonNull
+ private final APLDirectiveReceiver mAPLReceiver;
+
+ private JSONArray mVisualConfig;
+ private String mDefaultWindowId;
+ private int mAPLViewPortWidth;
+ private int mAPLViewPortHeight;
+ private Bundle mCreationArgs;
+
+ private String mCurrentPayload = "";
+
+ private APLLayout mAPLLayout;
+
+ public APLFragment() {
+ mAPLReceiver = new APLDirectiveReceiver();
+ }
+
+ @Override
+ public void onStart() {
+ Log.d(TAG, "onStart");
+ super.onStart();
+ EventBus.getDefault().register(mAPLReceiver);
+ }
+
+ @Override
+ public void onStop() {
+ Log.d(TAG, "onStop");
+ super.onStop();
+ if (mAplHandler != null) {
+ mAplHandler.cancelExecution();
+ }
+ EventBus.getDefault().unregister(mAPLReceiver);
+ }
+
+ @Override
+ public void onDestroy() {
+ Log.d(TAG, "onDestroy");
+ super.onDestroy();
+ handleClearDocumentIntent(mCurrentPayload);
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ Log.d(TAG, "onViewCreated");
+ super.onViewCreated(view, savedInstanceState);
+
+ Context context = getContext();
+ Preconditions.checkNotNull(context);
+
+ mCreationArgs = getArguments();
+ if (mCreationArgs != null) {
+ View fragmentView = requireView();
+ mAPLLayout = fragmentView.findViewById(R.id.apl);
+
+ WeakReference contextWk = new WeakReference<>(context);
+ mAplHandler = new APLHandler(contextWk, new AACSMessageSender(contextWk, new AACSSender()), mAPLLayout);
+ }
+
+ FileUtil.readAACSConfigurationAsync(context).subscribe(this::buildAPLPresenter);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ Context context = getContext();
+ Preconditions.checkNotNull(context);
+
+ //---------------------------------------------------------------------
+ // Initialize the APL Runtime. This must be called during
+ // Activity.onCreate() or prior to APLLayout inflation.
+ //---------------------------------------------------------------------
+ APLPresenter.initialize(context);
+
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_apl, container, false);
+ }
+
+ private void handleRenderDocumentIntent(@NonNull Bundle creationArgs) {
+ Preconditions.checkNotNull(mAplHandler);
+
+ try {
+ String payload = creationArgs.getString(Constants.PAYLOAD);
+ Log.i(TAG, "handleRenderDocumentIntent payload: " + payload);
+ Preconditions.checkNotNull(payload);
+
+ JSONObject json = new JSONObject(payload);
+ String token = json.getString(Constants.TOKEN);
+ String renderPayload = json.getString(Constants.PAYLOAD);
+
+ mAplHandler.renderDocument(renderPayload, token, mDefaultWindowId);
+ } catch (Exception exception) {
+ Log.w(TAG, "Failed to handle render document. Error:" + exception);
+ }
+ }
+
+ private void handleClearDocumentIntent(@NonNull String payload) {
+ if (mAplHandler != null) {
+ try {
+ JSONObject json = new JSONObject(payload);
+ String token = json.getString(Constants.TOKEN);
+
+ mAplHandler.clearDocument(token);
+ } catch (Exception exception) {
+ Log.w(TAG, "Failed to handle clear document. Error:" + exception);
+ }
+ }
+ }
+
+ private void handleExecuteCommandsIntent(@NonNull String payload) {
+ Preconditions.checkNotNull(mAplHandler);
+ try {
+ JSONObject json = new JSONObject(payload);
+ String token = json.getString(Constants.TOKEN);
+ String executeCommandPayload = json.getString(Constants.PAYLOAD);
+
+ mAplHandler.executeCommands(executeCommandPayload, token);
+ } catch (Exception exception) {
+ Log.w(TAG, "Failed to handle execute commands. Error:" + exception);
+ }
+ }
+
+ private void handleUpdateAPLRuntimePropertiesIntent(@NonNull String payload) {
+ Preconditions.checkNotNull(mAplHandler);
+ try {
+ // Construct APL runtime properties with local cached values.
+ String aplRuntimeProperties = constructAPLRuntimeProperties();
+ mAplHandler.handleAPLRuntimeProperties(aplRuntimeProperties);
+ } catch (Exception exception) {
+ Log.w(TAG, "Failed to handle update APL runtime properties commands. Error:" + exception);
+ }
+ }
+
+ private void handleDialogStateChangedIntent(@NonNull String payload) {
+ Preconditions.checkNotNull(mAplHandler);
+ try {
+ Log.v(TAG, "handleDialogStateChangedIntent: " + payload);
+ JSONObject dialogState = new JSONObject(payload);
+ // Cancel APL execution when we go into listening state
+ if (dialogState.getString(STATE).equals(DIALOG_STATE_LISTENING)) {
+ Log.v(TAG, "handleDialogStateChangedIntent: cancellingExecution");
+ mAplHandler.cancelExecution();
+ }
+ } catch (Exception exception) {
+ Log.w(TAG, "Failed to handle dialog state change. Error:" + exception);
+ }
+ }
+
+ /**
+ * Initialize APLPresenter class to provide the orchestration logic in the APL rendering process.
+ *
+ * @param configs AACS configs.
+ */
+ private void buildAPLPresenter(@NonNull String configs) {
+ Preconditions.checkNotNull(mAplHandler);
+ try {
+ JSONObject config = new JSONObject(configs);
+ mVisualConfig =
+ config.getJSONObject("aacs.alexa").getJSONObject("gui").getJSONArray("visualCharacteristics");
+
+ if (mVisualConfig.length() > 0) {
+ for (int i = 0; i < mVisualConfig.length(); i++) {
+ JSONObject currentElement = mVisualConfig.getJSONObject(i);
+ if ("Alexa.Display.Window".equals(currentElement.getString("interface"))) {
+ JSONArray templates = currentElement.getJSONObject("configurations").getJSONArray("templates");
+ JSONObject template = templates.getJSONObject(0);
+ mDefaultWindowId = template.getString("id");
+ mAPLViewPortWidth = template.getJSONObject("configuration")
+ .getJSONArray("sizes")
+ .getJSONObject(0)
+ .getJSONObject("value")
+ .getJSONObject("value")
+ .getInt("width");
+ mAPLViewPortHeight = template.getJSONObject("configuration")
+ .getJSONArray("sizes")
+ .getJSONObject(0)
+ .getJSONObject("value")
+ .getJSONObject("value")
+ .getInt("height");
+ }
+ }
+ }
+
+ mAplHandler.buildAPLPresenter(mVisualConfig, mDefaultWindowId);
+
+ setAPLFragmentLayout(mAPLLayout);
+
+ mCurrentPayload = mCreationArgs.getString(Constants.PAYLOAD);
+
+ String aplRuntimeProperties = constructAPLRuntimeProperties();
+ if (!aplRuntimeProperties.isEmpty()) {
+ mAplHandler.handleAPLRuntimeProperties(aplRuntimeProperties);
+ }
+
+ handleRenderDocumentIntent(mCreationArgs);
+ } catch (JSONException e) {
+ Log.w(TAG, "Failed to parse APL visual characteristics" + e);
+ }
+ }
+
+ class APLDirectiveReceiver {
+ @Subscribe
+ public void OnReceive(APLDirective directive) {
+ mCurrentPayload = directive.message.payload;
+ switch (directive.message.action) {
+ case Action.AlexaClient.DIALOG_STATE_CHANGED:
+ Preconditions.checkNotNull(directive.message.payload);
+ handleDialogStateChangedIntent(directive.message.payload);
+ break;
+ case Action.APL.RENDER_DOCUMENT:
+ Preconditions.checkNotNull(directive.message.payload);
+ Bundle args = new Bundle();
+ args.putString(Constants.PAYLOAD, directive.message.payload);
+ handleRenderDocumentIntent(args);
+ break;
+ case Action.APL.EXECUTE_COMMANDS:
+ Preconditions.checkNotNull(directive.message.payload);
+ handleExecuteCommandsIntent(directive.message.payload);
+ break;
+ case Action.APL.CLEAR_DOCUMENT:
+ handleClearDocumentIntent(directive.message.payload);
+
+ Context context = getContext();
+ Preconditions.checkNotNull(context);
+
+ AlexaApp.from(context)
+ .getRootComponent()
+ .getComponent(SessionActivityController.class)
+ .ifPresent(SessionActivityController::removeFragment);
+ break;
+ case Action.APL.UPDATE_APL_RUNTIME_PROPERTIES:
+ Preconditions.checkNotNull(directive.message.payload);
+ handleUpdateAPLRuntimePropertiesIntent(directive.message.payload);
+ break;
+ default:
+ Log.d(TAG, "Unknown APL intent, action is " + directive.message.action);
+ break;
+ }
+ }
+ }
+
+ /**
+ * Adjust APL fragment based on the APL Automotive viewport defined from the config, and set margins
+ * based on device's screen size.
+ * @param layout APL fragment layout
+ */
+ private void setAPLFragmentLayout(APLLayout layout) {
+ requireActivity();
+
+ ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layout.getLayoutParams();
+
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ int height = displayMetrics.heightPixels;
+ int width = displayMetrics.widthPixels;
+
+ marginLayoutParams.width = mAPLViewPortWidth;
+ marginLayoutParams.height = mAPLViewPortHeight;
+ marginLayoutParams.topMargin = (int) (height * APL_FRAGMENT_MARGIN_RATIO);
+ marginLayoutParams.leftMargin = (int) (width * APL_FRAGMENT_MARGIN_RATIO);
+
+ layout.setLayoutParams(marginLayoutParams);
+ }
+
+ /**
+ * Construct APL runtime properties to render APL with updated properties value.
+ * Sample APL runtime properties format: {"drivingState":"parked","theme":"dark-gray"}
+ * @return APL runtime properties
+ */
+ private String constructAPLRuntimeProperties() {
+ try {
+ JSONObject properties = new JSONObject();
+
+ SharedPreferences sharedPreferences = getContext().getSharedPreferences(APL_RUNTIME_PROPERTIES, 0);
+ Preconditions.checkNotNull(sharedPreferences);
+ String drivingStateValue = sharedPreferences.getString(APL_RUNTIME_PROPERTY_DRIVING_STATE_NAME, "");
+ String themeValue = sharedPreferences.getString(APL_RUNTIME_PROPERTY_THEME_NAME, "");
+
+ if (!drivingStateValue.isEmpty()) {
+ properties.put(APL_RUNTIME_PROPERTY_DRIVING_STATE_NAME, drivingStateValue);
+ }
+ if (!themeValue.isEmpty()) {
+ properties.put(APL_RUNTIME_PROPERTY_THEME_NAME, themeValue);
+ }
+
+ return properties.toString();
+ } catch (JSONException e) {
+ Log.d(TAG, "Failed to construct APL runtime properties");
+ return "";
+ }
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLThemeDirective.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLThemeDirective.java
new file mode 100644
index 000000000..00675894b
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/APLThemeDirective.java
@@ -0,0 +1,12 @@
+package com.amazon.alexa.auto.apl;
+
+import androidx.annotation.NonNull;
+
+public class APLThemeDirective {
+ @NonNull
+ public String themePayload;
+
+ public APLThemeDirective(@NonNull String themePayload) {
+ this.themePayload = themePayload;
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/Constants.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/Constants.java
new file mode 100644
index 000000000..f1a310a46
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/Constants.java
@@ -0,0 +1,29 @@
+package com.amazon.alexa.auto.apl;
+
+public class Constants {
+ // AACS Intents
+ public static final String ID = "id";
+ public static final String TOKEN = "token";
+ public static final String PAYLOAD = "payload";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ public static final String TYPE = "type";
+ public static final String STATE = "state";
+ public static final String RESULT = "result";
+ public static final String ERROR = "error";
+ public static final String SOURCE = "source";
+ public static final String EVENT = "event";
+ public static final String DOCUMENT = "document";
+ public static final String VERSION = "version";
+ public static final String PROPERTIES = "properties";
+ public static final String COORDINATE = "coordinate";
+ public static final String LONGITUDE = "longitude";
+ public static final String LATITUDE = "latitude";
+
+ // APL Event States
+ public static final String APL_EVENT_STATE_ACTIVATED = "ACTIVATED";
+ public static final String APL_EVENT_STATE_DEACTIVATED = "DEACTIVATED";
+ public static final String APL_EVENT_STATE_ONE_TIME = "ONE_TIME";
+ public static final String APL_EVENT_STATE_INTERRUPT = "INTERRUPT";
+ public static final String APL_EVENT_STATE_UNKNOWN = "UNKNOWN";
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/handler/APLHandler.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/handler/APLHandler.java
new file mode 100644
index 000000000..644c8cdbc
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/handler/APLHandler.java
@@ -0,0 +1,273 @@
+package com.amazon.alexa.auto.apl.handler;
+
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
+import com.amazon.aacsconstants.Action;
+import com.amazon.aacsconstants.Topic;
+import com.amazon.alexa.auto.aacs.common.AACSMessageSender;
+import com.amazon.alexa.auto.apl.Constants;
+import com.amazon.apl.android.APLLayout;
+import com.amazon.apl.android.render.APLPresenter;
+import com.amazon.apl.android.render.interfaces.IAPLEventSender;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.json.JSONStringer;
+
+import java.lang.ref.WeakReference;
+import java.util.HashMap;
+
+/**
+ * This class provides the functionality to handle AACS APL events.
+ */
+public class APLHandler implements IAPLEventSender {
+ private static final String TAG = APLHandler.class.getSimpleName();
+
+ @NonNull
+ private final WeakReference mContextWk;
+ @NonNull
+ private AACSMessageSender mAACSSender;
+
+ private APLLayout mAplLayout;
+
+ private String mToken;
+ private String mVersion;
+
+ @VisibleForTesting
+ APLPresenter mPresenter;
+
+ public APLHandler(@NonNull WeakReference contextWk, @NonNull AACSMessageSender aacsSender,
+ @NonNull APLLayout aplLayout) {
+ mContextWk = contextWk;
+ mAACSSender = aacsSender;
+ mAplLayout = aplLayout;
+ }
+
+ public void buildAPLPresenter(JSONArray visualCharacteristics, String defaultWindowId) {
+ HashMap aplLayouts = new HashMap();
+ aplLayouts.put(defaultWindowId, mAplLayout);
+
+ mPresenter = new APLPresenter(aplLayouts, visualCharacteristics, defaultWindowId, this);
+ }
+
+ public void renderDocument(String jsonPayload, String token, String windowId) {
+ try {
+ // Extract document and data
+ JSONObject payload = new JSONObject(jsonPayload);
+ Log.i(TAG, "APL render document: " + payload.toString(4));
+ JSONObject document = payload.getJSONObject(Constants.DOCUMENT);
+
+ mToken = token;
+ mVersion = document.getString(Constants.VERSION);
+ } catch (JSONException e) {
+ Log.e(TAG, e.getMessage());
+ }
+
+ Log.i(TAG, "APL render document version: " + mVersion + " token: " + mToken + " windowId: " + windowId);
+
+ mPresenter.onRenderDocument(jsonPayload, token, windowId);
+ }
+
+ public void clearDocument(String token) {
+ Log.i(TAG, "clearDocument and visual context");
+ mPresenter.onClearDocument(token);
+ }
+
+ public void executeCommands(String payload, String token) {
+ Log.v(TAG, "executeCommands: token: " + token);
+ mToken = token;
+
+ mPresenter.onExecuteCommands(payload, token);
+ }
+
+ public void handleAPLRuntimeProperties(String aplRuntimeProperties) {
+ Log.v(TAG, "handleAPLRuntimeProperties: aplRuntimeProperties: " + aplRuntimeProperties);
+ mPresenter.onAPLRuntimeProperties(aplRuntimeProperties);
+ }
+
+ public void interruptCommandSequence(String token) {
+ Log.v(TAG, "interruptCommandSequence: token: " + token);
+ mPresenter.onInterruptCommandSequence(token);
+ }
+
+ private void processActivityEvent(String source, String event) {
+ try {
+ String payload = new JSONStringer()
+ .object()
+ .key(Constants.SOURCE)
+ .value(source)
+ .key(Constants.EVENT)
+ .value(event)
+ .endObject()
+ .toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.PROCESS_ACTIVITY_EVENT, payload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to process activity event. Error: " + exception);
+ }
+ }
+
+ private void renderDocumentResult(String token, boolean result, String error) {
+ sendResult(Action.APL.RENDER_DOCUMENT_RESULT, token, result, error);
+ }
+
+ private void executeCommandsResult(String token, boolean result, String error) {
+ sendResult(Action.APL.EXECUTE_COMMANDS_RESULT, token, result, error);
+ }
+
+ private void sendResult(String resultAction, String token, boolean result, String error) {
+ try {
+ String payload = new JSONStringer()
+ .object()
+ .key(Constants.TOKEN)
+ .value(token)
+ .key(Constants.RESULT)
+ .value(result)
+ .key(Constants.ERROR)
+ .value(error == null ? "" : error)
+ .endObject()
+ .toString();
+
+ mAACSSender.sendMessage(Topic.APL, resultAction, payload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send result for " + resultAction + " Error: " + exception);
+ }
+ }
+
+ private void sendUserEvent(String payload) {
+ try {
+ String msgPayload =
+ new JSONStringer().object().key(Constants.PAYLOAD).value(payload).endObject().toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.SEND_USER_EVENT, msgPayload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send user event. Error: " + exception);
+ }
+ }
+
+ // IAPLEventSender implementation.
+
+ @Override
+ public void sendWindowState(String state) {
+ Log.v(TAG, "sendWindowState: " + state);
+ try {
+ String msgPayload = new JSONStringer().object().key(Constants.STATE).value(state).endObject().toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.SEND_DEVICE_WINDOW_STATE, msgPayload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send device window state. Error: " + exception);
+ }
+ }
+
+ @Override
+ public void sendClearCard() {
+ Log.v(TAG, "sendClearCard");
+ mAACSSender.sendMessage(Topic.APL, Action.APL.CLEAR_CARD, null);
+ }
+
+ @Override
+ public void sendClearAllExecuteCommands() {
+ Log.v(TAG, "sendClearAllExecuteCommands");
+ mAACSSender.sendMessage(Topic.APL, Action.APL.CLEAR_ALL_EXECUTE_COMMANDS, null);
+ }
+
+ @Override
+ public void sendUserEventRequest(String payload) {
+ Log.v(TAG, "sendUserEventRequest: payload: " + payload);
+ sendUserEvent(payload);
+ }
+
+ @Override
+ public void sendDataSourceFetchEventRequest(String type, String payload) {
+ Log.v(TAG, "sendDataSourceFetchEventRequest: type: " + type + " payload: " + payload);
+ try {
+ String msgPayload = new JSONStringer()
+ .object()
+ .key(Constants.TYPE)
+ .value(type)
+ .key(Constants.PAYLOAD)
+ .value(payload)
+ .endObject()
+ .toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.SEND_DATA_SOURCE_FETCH_REQUEST_EVENT, msgPayload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send data source fetch request event. Error: " + exception);
+ }
+ }
+
+ @Override
+ public void sendRuntimeErrorEventRequest(String payload) {
+ Log.v(TAG, "sendRuntimeErrorEvent: payload: " + payload);
+ try {
+ String msgPayload =
+ new JSONStringer().object().key(Constants.PAYLOAD).value(payload).endObject().toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.SEND_RUNTIME_ERROR_EVENT, msgPayload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send runtime error event. Error: " + exception);
+ }
+ }
+
+ @Override
+ public void sendRenderDocumentResult(String token, boolean result, String error) {
+ Log.v(TAG, "sendRenderDocumentResult: token: " + token + " boolean: " + result + " error: " + error);
+ renderDocumentResult(token, result, error);
+ }
+
+ @Override
+ public void sendExecuteCommandsResult(String token, boolean result, String error) {
+ Log.v(TAG, "sendExecuteCommandsResult: token: " + token + " result: " + result + " error: " + error);
+ executeCommandsResult(token, result, error);
+ }
+
+ @Override
+ public void sendActivityEventRequest(String token, IAPLEventSender.ActivityEvent event) {
+ Log.v(TAG, "sendActivityEventRequest: token: " + token + " event: " + event);
+ processActivityEvent(token, translateActivityEvent(event));
+ }
+
+ @Override
+ public void sendContext(String state) {
+ Log.v(TAG, "sendContext: " + state);
+ try {
+ String msgPayload = new JSONStringer().object().key(Constants.STATE).value(state).endObject().toString();
+
+ mAACSSender.sendMessage(Topic.APL, Action.APL.SEND_DOCUMENT_STATE, msgPayload);
+ } catch (Exception exception) {
+ Log.e(TAG, "Failed to send user event. Error: " + exception);
+ }
+ }
+
+ /**
+ * Cancel execution of APL commands. Should be called
+ * on a barge in.
+ */
+ public void cancelExecution() {
+ if (mPresenter != null) {
+ mPresenter.cancelExecution();
+ }
+ }
+
+ private String translateActivityEvent(IAPLEventSender.ActivityEvent event) {
+ switch (event) {
+ case ACTIVATED:
+ return Constants.APL_EVENT_STATE_ACTIVATED;
+ case DEACTIVATED:
+ return Constants.APL_EVENT_STATE_DEACTIVATED;
+ case ONE_TIME:
+ return Constants.APL_EVENT_STATE_ONE_TIME;
+ case INTERRUPT:
+ return Constants.APL_EVENT_STATE_INTERRUPT;
+ case UNKNOWN:
+ return Constants.APL_EVENT_STATE_UNKNOWN;
+ }
+
+ return Constants.APL_EVENT_STATE_UNKNOWN;
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLReceiver.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLReceiver.java
new file mode 100644
index 000000000..e24b6d39a
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLReceiver.java
@@ -0,0 +1,63 @@
+package com.amazon.alexa.auto.apl.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.fragment.app.Fragment;
+
+import com.amazon.aacsconstants.Action;
+import com.amazon.alexa.auto.aacs.common.AACSMessage;
+import com.amazon.alexa.auto.aacs.common.AACSMessageBuilder;
+import com.amazon.alexa.auto.apis.app.AlexaApp;
+import com.amazon.alexa.auto.apis.session.SessionActivityController;
+import com.amazon.alexa.auto.apl.APLDirective;
+import com.amazon.alexa.auto.apl.APLFragment;
+import com.amazon.alexa.auto.apl.Constants;
+
+import org.greenrobot.eventbus.EventBus;
+
+public class APLReceiver extends BroadcastReceiver {
+ private static final String TAG = APLReceiver.class.getSimpleName();
+
+ @RequiresApi(api = Build.VERSION_CODES.N)
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent == null || intent.getAction() == null) {
+ return;
+ }
+
+ AACSMessageBuilder.parseEmbeddedIntent(intent).ifPresent(message -> {
+ Log.d(TAG, "APL msg.action " + message.action + " payload: " + message.payload);
+ if (Action.APL.RENDER_DOCUMENT.equals(message.action)) {
+ handleRenderDocument(context, message);
+ } else {
+ APLDirective directive = new APLDirective(message);
+ EventBus.getDefault().post(directive);
+ }
+ });
+ }
+
+ private void handleRenderDocument(@NonNull Context context, @NonNull final AACSMessage message) {
+ AlexaApp app = AlexaApp.from(context);
+
+ app.getRootComponent().getComponent(SessionActivityController.class).ifPresent(sessionActivityController -> {
+ Fragment aplFragment;
+ Bundle args = new Bundle();
+ args.putString(Constants.PAYLOAD, message.payload);
+ if (!sessionActivityController.isFragmentAdded()) {
+ aplFragment = new APLFragment();
+ aplFragment.setArguments(args);
+ sessionActivityController.addFragment(aplFragment);
+ } else {
+ APLDirective directive = new APLDirective(message);
+ EventBus.getDefault().post(directive);
+ }
+ });
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiver.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiver.java
new file mode 100644
index 000000000..6799189e8
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiver.java
@@ -0,0 +1,144 @@
+package com.amazon.alexa.auto.apl.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.util.Log;
+
+import com.amazon.alexa.auto.apis.apl.APLTheme;
+import com.amazon.alexa.auto.apl.Constants;
+import com.amazon.alexa.auto.apps.common.util.Preconditions;
+
+import org.greenrobot.eventbus.EventBus;
+import org.json.JSONException;
+import org.json.JSONStringer;
+
+import androidx.annotation.VisibleForTesting;
+
+import static com.amazon.alexa.auto.apps.common.Constants.APL_RUNTIME_PROPERTIES;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_ID;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_NAME;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_VALUE_BLACK;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_VALUE_GRAY;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_VALUE_GRAY_ONE;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.THEME_VALUE_GRAY_TWO;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.UI_DARK_THEME;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.UI_LIGHT_THEME;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.UI_MODE_VALUE_DARK;
+import static com.amazon.alexa.auto.apps.common.util.UiThemeManager.UI_MODE_VALUE_LIGHT;
+
+/**
+ * Receiver for APL theme intent and send theme id to APL cloud.
+ *
+ * There are six APL themes available for automotive devices (uiMode-themeId):
+ * dark (default for dark or night mode)
+ * dark-black
+ * dark-gray
+ * light (default for light or day mode)
+ * light-gray1
+ * light-gray2
+ */
+public class APLThemeReceiver extends BroadcastReceiver {
+ private static final String TAG = APLThemeReceiver.class.getSimpleName();
+ private static final String UI_MODE = "com.amazon.alexa.auto.uiMode";
+
+ @VisibleForTesting
+ String mPayload;
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(TAG, "onReceive: " + intent.getAction());
+
+ if (intent.getExtras() == null) {
+ Log.e(TAG, "APL theme intent's extra payload is null.");
+ return;
+ }
+
+ String themeId = intent.getExtras().getString(THEME_ID);
+ Preconditions.checkNotNull(themeId);
+
+ switch (getCurrentUiMode(context).toLowerCase()) {
+ case UI_MODE_VALUE_DARK:
+ if (themeId.equals(THEME_VALUE_BLACK) || themeId.equals(THEME_VALUE_GRAY) || themeId.isEmpty()) {
+ saveCurrentUiThemeBasedOnMode(context, UI_MODE_VALUE_DARK, themeId);
+ generateAPLThemePayload(themeId);
+ } else {
+ // If device is in dark mode, only black, gray and default themes are available
+ Log.e(TAG, "Invalid theme id is provided in dark mode.");
+ }
+ break;
+ case UI_MODE_VALUE_LIGHT:
+ if (themeId.equals(THEME_VALUE_GRAY_ONE) || themeId.equals(THEME_VALUE_GRAY_TWO) || themeId.isEmpty()) {
+ saveCurrentUiThemeBasedOnMode(context, UI_MODE_VALUE_LIGHT, themeId);
+ generateAPLThemePayload(themeId);
+ } else {
+ // If device is in dark mode, only gray1, gray2 and default themes are available
+ Log.e(TAG, "Invalid theme id is provided in light mode.");
+ }
+ break;
+ default:
+ Log.e(TAG, "Failed to get valid UI mode.");
+ mPayload = "";
+ }
+
+ APLTheme directive = new APLTheme(mPayload);
+ EventBus.getDefault().post(directive);
+ }
+
+ private void saveCurrentUiThemeBasedOnMode(Context context, String uiMode, String theme) {
+ SharedPreferences.Editor editor;
+ if (uiMode.equals(UI_MODE_VALUE_DARK)) {
+ editor = context.getSharedPreferences(UI_DARK_THEME, 0).edit();
+ } else {
+ editor = context.getSharedPreferences(UI_LIGHT_THEME, 0).edit();
+ }
+ editor.putString(THEME_ID, theme);
+ editor.apply();
+
+ saveAPLThemeProperties(context, uiMode, theme);
+ }
+
+ private String getCurrentUiMode(Context context) {
+ SharedPreferences sharedPreferences = context.getSharedPreferences(UI_MODE, 0);
+ if (sharedPreferences != null) {
+ return sharedPreferences.getString(UI_MODE, "");
+ } else {
+ return "";
+ }
+ }
+
+ /**
+ * Saving APL theme properties for rendering APL template with the updated APL theme.
+ * @param context Android context
+ * @param uiMode day/night mode
+ * @param theme APL theme
+ */
+ private void saveAPLThemeProperties(Context context, String uiMode, String theme) {
+ SharedPreferences.Editor editor = context.getSharedPreferences(APL_RUNTIME_PROPERTIES, 0).edit();
+ if (theme.isEmpty()) {
+ editor.putString(THEME_NAME, uiMode);
+ } else {
+ editor.putString(THEME_NAME, uiMode + "-" + theme);
+ }
+ editor.apply();
+ }
+
+ @VisibleForTesting
+ String generateAPLThemePayload(String themeId) {
+ try {
+ mPayload = new JSONStringer()
+ .object()
+ .key(Constants.NAME)
+ .value(THEME_ID)
+ .key(Constants.VALUE)
+ .value(themeId)
+ .endObject()
+ .toString();
+ } catch (JSONException e) {
+ Log.e(TAG,"Failed to parse APL theme payload.");
+ mPayload = "";
+ }
+ return mPayload;
+ }
+}
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/fragment_apl.xml b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/fragment_apl.xml
new file mode 100644
index 000000000..42f1abca8
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/layout/fragment_apl.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/dimens.xml b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/dimens.xml
new file mode 100644
index 000000000..b023083be
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+
+
+ 25dp
+ 25dp
+
\ No newline at end of file
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/main/res/values/strings.xml b/aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/strings.xml
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/main/res/values/strings.xml
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/main/res/values/strings.xml
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/TestResourceFileReader.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/TestResourceFileReader.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/TestResourceFileReader.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/TestResourceFileReader.java
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/handler/APLHandlerTest.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/handler/APLHandlerTest.java
new file mode 100644
index 000000000..90d90bc77
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/handler/APLHandlerTest.java
@@ -0,0 +1,67 @@
+package com.amazon.alexa.auto.apl.handler;
+
+import static org.mockito.Mockito.times;
+
+import android.content.Context;
+
+import com.amazon.alexa.auto.aacs.common.AACSMessageSender;
+import com.amazon.apl.android.APLLayout;
+import com.amazon.apl.android.render.APLPresenter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.robolectric.RobolectricTestRunner;
+
+import java.lang.ref.WeakReference;
+
+@RunWith(RobolectricTestRunner.class)
+public class APLHandlerTest {
+ private Context mContext;
+ private AACSMessageSender mAACSSender;
+ private APLLayout mAPLLayout;
+ private APLPresenter mAPLPresenter;
+ private APLLocalInfoHandler mAPLLocalInfoHandler;
+
+ private APLHandler mClassUnderTest;
+
+ @Before
+ public void setup() {
+ mContext = Mockito.mock(Context.class);
+ mAACSSender = Mockito.mock(AACSMessageSender.class);
+ mAPLLayout = Mockito.mock(APLLayout.class);
+ mAPLPresenter = Mockito.mock(APLPresenter.class);
+ mAPLLocalInfoHandler = Mockito.mock(APLLocalInfoHandler.class);
+
+ mClassUnderTest = new APLHandler(new WeakReference<>(mContext), mAACSSender, mAPLLayout);
+ mClassUnderTest.mPresenter = mAPLPresenter;
+ mClassUnderTest.mAPLLocalInfoHandler = mAPLLocalInfoHandler;
+ }
+
+ @Test
+ public void renderDocumentTest() {
+ mClassUnderTest.renderDocument("samplePayload", "sampleToken", "sampleWindowId");
+ Mockito.verify(mClassUnderTest.mPresenter, times(1))
+ .onRenderDocument("samplePayload", "sampleToken", "sampleWindowId");
+ }
+
+ @Test
+ public void clearDocumentTest() {
+ mClassUnderTest.clearDocument("sampleToken");
+ Mockito.verify(mClassUnderTest.mPresenter, times(1)).onClearDocument("sampleToken");
+ Mockito.verify(mClassUnderTest.mAPLLocalInfoHandler, times(1)).clearLocalInfoData();
+ }
+
+ @Test
+ public void executeCommandTest() {
+ mClassUnderTest.executeCommands("samplePayload", "sampleToken");
+ Mockito.verify(mClassUnderTest.mPresenter, times(1)).onExecuteCommands("samplePayload", "sampleToken");
+ }
+
+ @Test
+ public void handleAPLRuntimePropertiesTest() {
+ mClassUnderTest.handleAPLRuntimeProperties("sampleAPLProperties");
+ Mockito.verify(mClassUnderTest.mPresenter, times(1)).onAPLRuntimeProperties("sampleAPLProperties");
+ }
+}
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java
similarity index 87%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java
index 530db2a3e..4e150c7b4 100644
--- a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLReceiverTest.java
@@ -68,6 +68,15 @@ public void handleClearDocumentTest() {
Assert.assertEquals(receiveMessageAction, Action.APL.CLEAR_DOCUMENT);
}
+ @Test
+ public void handleUpdateAPLRuntimePropertiesTest() {
+ Intent getClearDocumentIntent = generateIntent("aacs/UpdateAPLRuntimeProperties.json", "com.amazon.aacs.aasb.UpdateAPLRuntimeProperties");
+ mClassUnderTest.onReceive(mContext, getClearDocumentIntent);
+ Assert.assertEquals(receiveMessageTopic, Topic.APL);
+ Assert.assertEquals(receiveMessageAction, Action.APL.UPDATE_APL_RUNTIME_PROPERTIES);
+ }
+
+
private Intent generateIntent(String resPath, String action) {
Intent intent = new Intent(action);
Optional sampleAACSAPLMessage = TestResourceFileReader.readFileContent(resPath);
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiverTest.java b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiverTest.java
new file mode 100644
index 000000000..8e0bc36a6
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/java/com/amazon/alexa/auto/apl/receiver/APLThemeReceiverTest.java
@@ -0,0 +1,101 @@
+package com.amazon.alexa.auto.apl.receiver;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+
+import com.amazon.alexa.auto.apis.apl.APLTheme;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.spy;
+
+@RunWith(RobolectricTestRunner.class)
+public class APLThemeReceiverTest {
+ @Mock
+ private Context mContext;
+
+ private APLThemeReceiver mClassUnderTest;
+ private EventBus eventBus;
+
+ private SharedPreferences mSharedPrefs;
+ private SharedPreferences.Editor mEditor;
+
+ private String receiveThemePayload;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mClassUnderTest = spy(new APLThemeReceiver());
+
+ mSharedPrefs = Mockito.mock(SharedPreferences.class);
+ mEditor = Mockito.mock(SharedPreferences.Editor.class);
+ Mockito.when(mContext.getSharedPreferences(anyString(), anyInt())).thenReturn(mSharedPrefs);
+ Mockito.when(mSharedPrefs.edit()).thenReturn(mEditor);
+
+ EventBus.getDefault().register(this);
+ eventBus = spy(EventBus.getDefault());
+ }
+
+ @Test
+ public void handleValidAPLDarkThemeUpdateTest() {
+ String themeId = "gray";
+ Mockito.when(mSharedPrefs.getString("com.amazon.alexa.auto.uiMode", "")).thenReturn("dark");
+ Intent getAPLThemeUpdateIntent =
+ generateIntent(themeId);
+ mClassUnderTest.onReceive(mContext, getAPLThemeUpdateIntent);
+ Assert.assertNotNull(mClassUnderTest.mPayload);
+ Assert.assertEquals(receiveThemePayload, mClassUnderTest.generateAPLThemePayload(themeId));
+ }
+
+ @Test
+ public void handleInvalidAPLDarkThemeUpdateTest() {
+ Mockito.when(mSharedPrefs.getString("com.amazon.alexa.auto.uiMode", "")).thenReturn("dark");
+ Intent getAPLThemeUpdateIntent =
+ generateIntent("gray1");
+ mClassUnderTest.onReceive(mContext, getAPLThemeUpdateIntent);
+ Assert.assertNull(mClassUnderTest.mPayload);
+ }
+
+ @Test
+ public void handleValidAPLLightThemeUpdateTest() {
+ String themeId = "gray1";
+ Mockito.when(mSharedPrefs.getString("com.amazon.alexa.auto.uiMode", "")).thenReturn("light");
+ Intent getAPLThemeUpdateIntent =
+ generateIntent(themeId);
+ mClassUnderTest.onReceive(mContext, getAPLThemeUpdateIntent);
+ Assert.assertNotNull(mClassUnderTest.mPayload);
+ Assert.assertEquals(receiveThemePayload, mClassUnderTest.generateAPLThemePayload(themeId));
+ }
+
+ @Test
+ public void handleInvalidAPLLightThemeUpdateTest() {
+ Mockito.when(mSharedPrefs.getString("com.amazon.alexa.auto.uiMode", "")).thenReturn("light");
+ Intent getAPLThemeUpdateIntent =
+ generateIntent("black");
+ mClassUnderTest.onReceive(mContext, getAPLThemeUpdateIntent);
+ Assert.assertNull(mClassUnderTest.mPayload);
+ }
+
+ private Intent generateIntent(String themeId) {
+ Intent intent = new Intent("com.amazon.alexa.auto.apl.UpdateAPLTheme");
+ intent.putExtra("themeId", themeId);
+ return intent;
+ }
+
+ @Subscribe
+ public void testOnReceiveEvent(APLTheme theme) {
+ receiveThemePayload = theme.getThemePayload();
+ }
+}
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json
similarity index 91%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json
index 0e345cbdc..367b639e4 100644
--- a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/ClearDocument.json
@@ -6,7 +6,7 @@
"topic": "APL"
},
"messageType": "Publish",
- "version": "3.2"
+ "version": "3.3"
},
"payload": {
"payload": ""
diff --git a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json
similarity index 92%
rename from platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json
rename to aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json
index 19d1c2972..0073d905b 100644
--- a/platforms/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/RenderDocument.json
@@ -6,7 +6,7 @@
"topic": "APL"
},
"messageType": "Publish",
- "version": "3.2"
+ "version": "3.3"
},
"payload": {
"payload": "{this is a sample payload for APL}"
diff --git a/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/UpdateAPLRuntimeProperties.json b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/UpdateAPLRuntimeProperties.json
new file mode 100644
index 000000000..40137d067
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apl-renderer/src/test/resources/aacs/UpdateAPLRuntimeProperties.json
@@ -0,0 +1,14 @@
+{
+ "header": {
+ "id": "7fd5e391-572b-47ef-bf4f-34792d283e63",
+ "messageDescription": {
+ "action": "UpdateAPLRuntimeProperties",
+ "topic": "APL"
+ },
+ "messageType": "Publish",
+ "version": "3.3"
+ },
+ "payload": {
+ "properties": "{This is the sample for APL runtime properties}"
+ }
+}
\ No newline at end of file
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/.gitignore b/aacs/android/app-components/alexa-auto-apps-common-ui/.gitignore
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/.gitignore
rename to aacs/android/app-components/alexa-auto-apps-common-ui/.gitignore
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/README.md b/aacs/android/app-components/alexa-auto-apps-common-ui/README.md
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/README.md
rename to aacs/android/app-components/alexa-auto-apps-common-ui/README.md
diff --git a/aacs/android/app-components/alexa-auto-apps-common-ui/build.gradle b/aacs/android/app-components/alexa-auto-apps-common-ui/build.gradle
new file mode 100644
index 000000000..1a7e754e4
--- /dev/null
+++ b/aacs/android/app-components/alexa-auto-apps-common-ui/build.gradle
@@ -0,0 +1,66 @@
+apply plugin: 'com.android.library'
+android {
+ compileSdkVersion 28
+ defaultConfig {
+ minSdkVersion 26
+ versionCode 1
+ versionName "4.0"
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ debug {
+ testCoverageEnabled true
+ debuggable true
+ }
+ }
+ sourceSets {
+ main {
+ def restrictedAssets = new File(gradle.ext.aacsRoot, "restrictedAssets")
+ if (restrictedAssets.exists()) {
+ project.logger.lifecycle("Building alexa-auto-apps-common-ui using Alexa assets..")
+ res.srcDirs = ['src/main/res', restrictedAssets.getCanonicalPath()]
+ } else {
+ project.logger.lifecycle("Building alexa-auto-apps-common-ui using placeholders..")
+ res.srcDirs = ['src/main/res', 'src/main/res-placeholders']
+ }
+ }
+ }
+
+ testOptions {
+ // Unit Test: Make all android methods return true by default
+ unitTests.returnDefaultValues = true
+ unitTests.includeAndroidResources = true
+ }
+
+ compileOptions {
+ targetCompatibility 1.8
+ sourceCompatibility 1.8
+ }
+
+ libraryVariants.all { variant ->
+ variant.outputs.all {
+ def project = "alexa-auto-apps-common-ui"
+ def separator = "_"
+ def buildType = variant.buildType.name
+ def apkName = project + separator + buildType + ".aar"
+ outputFileName = new File(apkName)
+ }
+ }
+
+}
+
+dependencies {
+ implementation project(':alexa-auto-apps-common-util')
+ implementation deps.androidx_appcompat
+ implementation deps.androidx_constraint
+ implementation deps.eventbus
+ implementation deps.androidx_recycler_view
+
+ testImplementation deps.junit
+ testImplementation deps.mockito
+ testImplementation deps.roboelectric
+}
diff --git a/platforms/android/alexa-auto-client-service/constants/aacsconstants/proguard-rules.pro b/aacs/android/app-components/alexa-auto-apps-common-ui/proguard-rules.pro
similarity index 100%
rename from platforms/android/alexa-auto-client-service/constants/aacsconstants/proguard-rules.pro
rename to aacs/android/app-components/alexa-auto-apps-common-ui/proguard-rules.pro
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/AndroidManifest.xml b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/AndroidManifest.xml
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/AndroidManifest.xml
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/AndroidManifest.xml
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/CirclePageIndicatorDecoration.java b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/CirclePageIndicatorDecoration.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/CirclePageIndicatorDecoration.java
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/CirclePageIndicatorDecoration.java
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/LoadingDialog.java b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/LoadingDialog.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/LoadingDialog.java
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/LoadingDialog.java
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialog.java b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialog.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialog.java
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/ui/TwoChoiceDialog.java
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/PopupDialogUtil.java b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/PopupDialogUtil.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/PopupDialogUtil.java
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/PopupDialogUtil.java
diff --git a/platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/ViewUtils.java b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/ViewUtils.java
similarity index 100%
rename from platforms/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/ViewUtils.java
rename to aacs/android/app-components/alexa-auto-apps-common-ui/src/main/java/com/amazon/alexa/auto/app/common/util/ViewUtils.java
diff --git a/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/res-placeholders/drawable/alexa_bubble_small.png b/aacs/android/app-components/alexa-auto-apps-common-ui/src/main/res-placeholders/drawable/alexa_bubble_small.png
new file mode 100755
index 0000000000000000000000000000000000000000..90d47828171e236a118b0f5d6cb4f11640f241d5
GIT binary patch
literal 1424
zcmeAS@N?(olHy`uVBq!ia0vp^+CVJH!3HE(yuY3Xq*&4&eH|GXHuiJ>Nn{1`6_P!I
zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfq`2Xgc%uT
z&5>YWV2sQRi71Ki^|4CM&(%vz$xlkvtH>8?tx|+mh4pF`@A3=GT*JzX3_A~@epi_YjT
zlsNwXzwC{$8Hb(n(#+bAW_5ZLZC|}mC!6m(-_fPc+B*w$CI)4dXYEi3oYX6(cceE!
z*{AKqOo>@%{)o&JRW
z$6sfb>xG51{FRGqT5@mJS<|&?(F>)6&L*YT82k%49JYShrM{^58~0Cm{@da>?-u(7
zT-7pbm`$U&ckj%IeX&o)TYRGDR&MQuEKv&u|407`-mrS%+(O|fcXj?yX8Q*wk88dN
zMX*eMs60pgzm`?3$G5i`hpw%9>d5S&Wh?!=e`+YteQ`+23}
z)BKGe^`!H+e^mdHy?JR^q|Gf$nR^)&U$*Bb_s48jd8dUxuO)ex
z-P)lf#b$od*zx