-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
143 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,93 @@ | ||
# voximplant-android-sdk-demo | ||
Voximplant SDK Demo for Android | ||
# Voximplant Android SDK v3 Demo (beta) | ||
|
||
This repository contains a sample Android application demonstrating the integration and use of the | ||
Voximplant Android SDK 3.x. | ||
The application is developed using Kotlin and Jetpack Compose and also uses App Modularization and | ||
Hilt for a more user-friendly | ||
dependency management. | ||
|
||
The application is currently in development. | ||
|
||
## Features | ||
|
||
- **Audio calls**: Demonstration of the capabilities of Voximplant Android SDK for making audio | ||
calls. | ||
- **Jetpack Compose UI**: The application's user interface is built using Jetpack Compose for more | ||
convenient and | ||
declarative UI development. | ||
- **App Modularization**: The project is divided into modules to make the code extensible and easier to maintain. | ||
- **Hilt DI (Dependency Injection)**: Using Hilt provides a cleaner architecture. | ||
|
||
## Project structure | ||
|
||
The project is divided into several modules: | ||
|
||
- **:app**: The main application module containing screen navigation and user interface. | ||
- **:feature:audiocall**: Audio call main screen. | ||
- **:feature:audiocall-incoming**: Module responsible for incoming audio calls. | ||
- **:feature:audiocall-ongoing**: Module responsible for managing an ongoing call. | ||
- **:feature:catalog**: Module responsible for switching between functional features of the | ||
Voximplant Android SDK. | ||
- **:feature:login**: Module responsible for authorization in the demo application. | ||
- **:core**: Multiple small independent modules, each implementing its own functionality: | ||
- Business logic implemented using Voximplant Android SDK | ||
- UI components | ||
- Data and domain layers | ||
- Resources | ||
- Helpers and utils | ||
|
||
## Requirements | ||
|
||
- Android Studio Arctic Fox (or newer) | ||
- Gradle 8.0 (or newer) | ||
- Java 17 (or newer) | ||
- Android API 21 (or newer) | ||
|
||
## Installing | ||
|
||
1. Clone the repository with this command: | ||
```bash | ||
git clone https://github.com/voximplant/android-sdk-v3-demo.git | ||
``` | ||
2. Open the project in Android Studio. | ||
3. Sync the project with Gradle. | ||
4. Run the app on a real device or an emulator. | ||
|
||
## How to use | ||
|
||
Make sure you have a Voximplant account to make calls. [Register](https://voximplant.com/). | ||
|
||
Your Voximplant account should be configured with the following setup: | ||
|
||
- Voximplant application | ||
- at least two Voximplant users | ||
- VoxEngine scenario | ||
- routing setup | ||
|
||
Push notifications require additional | ||
configuration. [Set up](https://voximplant.com/docs/howtos/sdks/push_notifications/android_sdk). | ||
|
||
1. Launch the application on a real device or an emulator. | ||
2. Log in to your account by clicking "Login". | ||
3. Select the desired functionality, such as audio calling. | ||
|
||
## Dependencies | ||
|
||
Voximplant Android SDK is available on `mavenCentral()`. | ||
|
||
``` | ||
implementation(platform("com.voximplant:android-sdk-bom:3.0.0-beta1")) | ||
implementation("com.voximplant:android-sdk-core") | ||
implementation("com.voximplant:android-sdk-calls") | ||
``` | ||
|
||
## Useful links | ||
|
||
1. [Quickstart](https://voximplant.com/docs/introduction) | ||
2. [HowTo's](https://voximplant.com/docs/howtos) | ||
|
||
## Have a question? | ||
|
||
- Contact us via [support@voximplant.com](mailto:support@voximplant.com). | ||
- Create a new [issue](https://github.com/voximplant/android-sdk-v3-demo/issues). | ||
- join our developer [Discord](https://discord.gg/sfCbT5u) community. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# :feature:audiocall-incoming module | ||
|
||
## Features | ||
|
||
This module provides the UI to handle incoming audio calls. | ||
|
||
Incoming call screen allows the user to see the caller name, accept, or decline the call. | ||
|
||
A call can be started only if the microphone permission is granted. | ||
|
||
Once a call is started, the application navigates to `:feature:audiocall-ongoing`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# :feature:audiocall-ongoing module | ||
|
||
## Features | ||
|
||
This module provides the UI to manage an ongoing call. | ||
|
||
- Switch audio devices; | ||
- Toggle microphone mute state; | ||
- Put a call on hold; | ||
- Hang up; | ||
|
||
It also starts a foreground service that keeps the access to the microphone | ||
in any application state and posts a notification with call details to the system tray. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# :feature:audiocall module | ||
|
||
## Features | ||
|
||
This module provides the UI to make outgoing and receive incoming audio calls. | ||
|
||
To make a call, the user must be logged in and provide access to the microphone. | ||
When a call starts, the application navigates to `:feature:audiocall-ongoing`. | ||
|
||
The application navigates to `:feature:audiocall-incoming` when it receives an incoming call. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# :feature:catalog module | ||
|
||
## Features | ||
|
||
This module provides the catalog of different communication solutions and navigation between them: | ||
|
||
- `:feature:audiocall` | ||
- `:feature:videocall` (Under development) | ||
- `:feature:conference` (Under development) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# :feature:login module | ||
|
||
## Features | ||
|
||
This module provides UI to authorize a Voximplant user. | ||
|
||
Authorization is required for all functionality this demo application contains. |