diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/Config.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/Config.kt index 15ec163..0fdfd93 100644 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/Config.kt +++ b/app/src/main/java/com/amazon/connect/chat/androidchatexample/Config.kt @@ -3,15 +3,10 @@ package com.amazon.connect.chat.androidchatexample import com.amazonaws.regions.Regions object Config { - data class ChatConfig( - val connectInstanceId: String, - val contactFlowId: String, - val startChatEndpoint: String, - val region: Regions, - val agentName: String, - val customerName: String - ) - - // List of available configurations - val configurations = emptyList() + val connectInstanceId: String = "" + val contactFlowId: String = "" + val startChatEndpoint: String = "https://.execute-api..amazonaws.com/Prod/" + val region: Regions = Regions.US_WEST_2 + val agentName = "AGENT" + val customerName = "CUSTOMER" } diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/MainActivity.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/MainActivity.kt index a3e928d..56efe16 100644 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/MainActivity.kt +++ b/app/src/main/java/com/amazon/connect/chat/androidchatexample/MainActivity.kt @@ -69,7 +69,6 @@ import com.amazon.connect.chat.androidchatexample.utils.FileUtils.previewFileFro import com.amazon.connect.chat.androidchatexample.viewmodel.ChatViewModel import com.amazon.connect.chat.androidchatexample.views.AttachmentTextView import com.amazon.connect.chat.androidchatexample.views.ChatMessageView -import com.amazon.connect.chat.androidchatexample.views.ConfigPicker import com.amazon.connect.chat.sdk.model.ContentType import com.amazon.connect.chat.sdk.model.Message import com.amazon.connect.chat.sdk.model.MessageDirection @@ -241,7 +240,6 @@ fun ChatScreen(activity: Activity, viewModel: ChatViewModel = hiltViewModel()) { Column { ParticipantTokenSection(activity, viewModel) Spacer(modifier = Modifier.height(16.dp)) - ConfigPicker(viewModel) // Include the configuration picker here } // ParticipantTokenSection(activity, viewModel) diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/di/AppModule.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/di/AppModule.kt index e91b9a2..ab6eeb5 100644 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/di/AppModule.kt +++ b/app/src/main/java/com/amazon/connect/chat/androidchatexample/di/AppModule.kt @@ -2,7 +2,6 @@ package com.amazon.connect.chat.androidchatexample.di import android.content.Context import android.content.SharedPreferences -import com.amazon.connect.chat.sdk.network.WebSocketManager import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -20,18 +19,4 @@ object AppModule { return context.getSharedPreferences("ConnectChat", Context.MODE_PRIVATE) } -// // Provide the Context dependency -// @Provides -// @Singleton -// fun provideContext(@ApplicationContext appContext: Context): Context { -// return appContext -// } -// -// @Provides -// @Singleton -// fun provideWebSocketManager( -// context: Context, -// ): WebSocketManager { -// return WebSocketManager(context, {}) -// } } diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/network/ChatConfigProvider.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/network/ChatConfigProvider.kt deleted file mode 100644 index ea164c8..0000000 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/network/ChatConfigProvider.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.amazon.connect.chat.androidchatexample.network - -import com.amazon.connect.chat.androidchatexample.Config -import com.amazon.connect.chat.androidchatexample.Config.ChatConfig -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class ChatConfigProvider @Inject constructor() { - - // Default configuration - var currentConfig: ChatConfig = Config.configurations[0] - - // Update the current configuration based on user selection - fun updateConfig(index: Int) { - currentConfig = Config.configurations[index] - } - - // Provide the current base URL - fun getBaseUrl(): String { - return currentConfig.startChatEndpoint - } -} diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/viewmodel/ChatViewModel.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/viewmodel/ChatViewModel.kt index 2a3151a..e884c13 100644 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/viewmodel/ChatViewModel.kt +++ b/app/src/main/java/com/amazon/connect/chat/androidchatexample/viewmodel/ChatViewModel.kt @@ -1,7 +1,6 @@ package com.amazon.connect.chat.androidchatexample.viewmodel import android.app.Activity -import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.net.Uri @@ -15,12 +14,10 @@ import com.amazon.connect.chat.androidchatexample.Config import com.amazon.connect.chat.androidchatexample.models.ParticipantDetails import com.amazon.connect.chat.androidchatexample.models.StartChatRequest import com.amazon.connect.chat.androidchatexample.models.StartChatResponse -import com.amazon.connect.chat.androidchatexample.network.ChatConfigProvider import com.amazon.connect.chat.androidchatexample.network.Resource import com.amazon.connect.chat.androidchatexample.repository.ChatRepository import com.amazon.connect.chat.androidchatexample.utils.CommonUtils import com.amazon.connect.chat.sdk.ChatSession -import com.amazon.connect.chat.sdk.ChatSessionProvider import com.amazon.connect.chat.sdk.model.ChatDetails import com.amazon.connect.chat.sdk.model.ContentType import com.amazon.connect.chat.sdk.model.Event @@ -31,77 +28,74 @@ import com.amazon.connect.chat.sdk.model.TranscriptItem import com.amazonaws.services.connectparticipant.model.ScanDirection import com.amazonaws.services.connectparticipant.model.SortKey import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.launch import java.net.URL import javax.inject.Inject @HiltViewModel class ChatViewModel @Inject constructor( - private val chatSession: ChatSession, // Injected ChatSession - private val chatRepository: ChatRepository, - private val sharedPreferences: SharedPreferences, - private val chatConfigProvider: ChatConfigProvider + private val chatSession: ChatSession, // Injected ChatSession instance + private val chatRepository: ChatRepository, // Chat repository for API calls + private val sharedPreferences: SharedPreferences // Shared preferences for storing participant token ) : ViewModel() { // If you are not using Hilt, you can initialize ChatSession like this -// private val chatSession = ChatSessionProvider.getChatSession(context) + // private val chatSession = ChatSessionProvider.getChatSession(context) + // Configuration instance for chat settings + private val chatConfiguration = Config + + // LiveData for tracking loading state private val _isLoading = MutableLiveData(false) val isLoading: MutableLiveData = _isLoading + // LiveData for tracking chat session activity state private val _isChatActive = MutableLiveData(false) val isChatActive: MutableLiveData = _isChatActive + // LiveData to hold the URI of the selected file for attachment private val _selectedFileUri = MutableLiveData(Uri.EMPTY) val selectedFileUri: MutableLiveData = _selectedFileUri + // State to store chat transcript items (messages and events) var messages = mutableStateListOf() private set + // LiveData for handling error messages private val _errorMessage = MutableLiveData() val errorMessage: LiveData = _errorMessage + // LiveData to hold participant token from shared preferences private val _liveParticipantToken = MutableLiveData(sharedPreferences.getString("participantToken", null)) val liveParticipantToken: LiveData = _liveParticipantToken - // LiveData to track the selected configuration - private val _selectedConfigIndex = MutableLiveData(0) - val selectedConfigIndex: LiveData = _selectedConfigIndex - - // Update configurations based on the selected index - val chatConfiguration: Config.ChatConfig - get() = Config.configurations[_selectedConfigIndex.value ?: 0] - - fun setSelectedConfig(index: Int) { - _selectedConfigIndex.value = index - clearParticipantToken() - chatConfigProvider.updateConfig(index) // Update the current configuration - } - - + // Property to get or set participant token in shared preferences private var participantToken: String? get() = liveParticipantToken.value set(value) { sharedPreferences.edit().putString("participantToken", value).apply() - _liveParticipantToken.value = value // Reflect the new value in LiveData + _liveParticipantToken.value = value // Update LiveData with new token } + // Clear participant token from shared preferences fun clearParticipantToken() { sharedPreferences.edit().remove("participantToken").apply() _liveParticipantToken.value = null } + // Initialize ViewModel (add additional initialization logic if needed) init { - + // Initialization logic can be added here if necessary } + // Configure the chat session with global settings private suspend fun configureChatSession() { val globalConfig = GlobalConfig(region = chatConfiguration.region) chatSession.configure(globalConfig) setupChatHandlers(chatSession) } + // Setup event handlers for the chat session private suspend fun setupChatHandlers(chatSession: ChatSession) { chatSession.onConnectionEstablished = { Log.d("ChatViewModel", "Connection established.") @@ -109,7 +103,7 @@ class ChatViewModel @Inject constructor( } chatSession.onMessageReceived = { transcriptItem -> - // Handle received websocket message + // Handle received websocket message if needed } chatSession.onTranscriptUpdated = { transcriptList -> @@ -143,24 +137,25 @@ class ChatViewModel @Inject constructor( } } + // Initiate chat either by starting a new session or reconnecting using an existing token fun initiateChat() { viewModelScope.launch { - - configureChatSession() + configureChatSession() // Configure chat session first _isLoading.value = true messages = mutableStateListOf() // Clear existing messages - if (participantToken != null) { - participantToken?.let { - val chatDetails = ChatDetails(participantToken = it) - createParticipantConnection(chatDetails) - } - } else { - startChat() // Start a fresh chat if no tokens are present + + // Check if participant token exists for reconnecting + participantToken?.let { + val chatDetails = ChatDetails(participantToken = it) + createParticipantConnection(chatDetails) + } ?: run { + startChat() // Start a fresh chat if no token is found } } } + // Start a new chat session by sending a StartChatRequest to the repository private fun startChat() { viewModelScope.launch { _isLoading.value = true @@ -189,7 +184,7 @@ class ChatViewModel @Inject constructor( } } - + // Handle the response after starting a chat session private fun handleStartChatResponse(result: StartChatResponse.Data.StartChatResult) { viewModelScope.launch { val chatDetails = ChatDetails( @@ -201,13 +196,14 @@ class ChatViewModel @Inject constructor( } } + // Create a connection to the participant chat session private fun createParticipantConnection(chatDetails: ChatDetails) { viewModelScope.launch { - _isLoading.value = true // Start loading - val result = chatSession.connect(chatDetails) - _isLoading.value = false // Stop loading + _isLoading.value = true // Set loading state + val result = chatSession.connect(chatDetails) // Attempt connection + _isLoading.value = false // Clear loading state + if (result.isSuccess) { - // Handle successful connection Log.d("ChatViewModel", "Connection successful $result") } else if (result.isFailure) { Log.e("ChatViewModel", "Connection failed: ${result.exceptionOrNull()}") @@ -216,21 +212,23 @@ class ChatViewModel @Inject constructor( } } + // Update the transcript when new messages or events are received private fun onUpdateTranscript(transcriptList: List) { messages.clear() viewModelScope.launch { - val tempTranscriptList = transcriptList.toList() - val updatedMessages = tempTranscriptList.map { transcriptItem -> + val updatedMessages = transcriptList.map { transcriptItem -> + // Customize events if needed if (transcriptItem is Event) { CommonUtils.customizeEvent(transcriptItem) } - CommonUtils.getMessageDirection(transcriptItem) + CommonUtils.getMessageDirection(transcriptItem) // Customize message direction transcriptItem } messages.addAll(updatedMessages) } } + // Send a text message through the chat session fun sendMessage(text: String) { viewModelScope.launch { if (text.isNotEmpty()) { @@ -245,6 +243,7 @@ class ChatViewModel @Inject constructor( } } + // Send an event through the chat session fun sendEvent(content: String = "", contentType: ContentType) { viewModelScope.launch { val result = chatSession.sendEvent(contentType, content) @@ -257,12 +256,13 @@ class ChatViewModel @Inject constructor( } } + // Send a read receipt for a message when it appears suspend fun sendReadEventOnAppear(message: Message) { chatSession.sendMessageReceipt(message, MessageReceiptType.MESSAGE_READ) } - // Fetches transcripts + // Fetch the chat transcript fun fetchTranscript(onCompletion: (Boolean) -> Unit) { viewModelScope.launch { chatSession.getTranscript(ScanDirection.BACKWARD, SortKey.DESCENDING, 30, null, messages?.get(0)?.id).onSuccess { @@ -275,13 +275,15 @@ class ChatViewModel @Inject constructor( } } - fun endChat(){ + // End the chat session and clear the participant token + fun endChat() { clearParticipantToken() viewModelScope.launch { - chatSession.disconnect() + chatSession.disconnect() // Disconnect from chat session } } + // Clear error messages fun clearErrorMessage() { _errorMessage.value = null } @@ -289,22 +291,23 @@ class ChatViewModel @Inject constructor( // Request code for selecting an attachment private val PICK_ATTACHMENT = 2 + // Open the file picker for selecting an attachment fun openFile(activity: Activity) { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { addCategory(Intent.CATEGORY_OPENABLE) type = "*/*" } - - activity.startActivityForResult(intent, PICK_ATTACHMENT) + activity.startActivityForResult(intent, PICK_ATTACHMENT) // Start activity for result } - + // Upload a selected attachment to the chat session fun uploadAttachment(fileUri: Uri) { viewModelScope.launch { chatSession.sendAttachment(fileUri) } } + // Download an attachment using its ID and file name suspend fun downloadAttachment(attachmentId: String, fileName: String): Result { return chatSession.downloadAttachment(attachmentId, fileName) } diff --git a/app/src/main/java/com/amazon/connect/chat/androidchatexample/views/ConfigPicker.kt b/app/src/main/java/com/amazon/connect/chat/androidchatexample/views/ConfigPicker.kt deleted file mode 100644 index 6ea7151..0000000 --- a/app/src/main/java/com/amazon/connect/chat/androidchatexample/views/ConfigPicker.kt +++ /dev/null @@ -1,134 +0,0 @@ -@file:OptIn(ExperimentalMaterial3Api::class) - -package com.amazon.connect.chat.androidchatexample.views - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.DropdownMenuItem -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.ExposedDropdownMenuBox -import androidx.compose.material3.ExposedDropdownMenuDefaults -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.MenuAnchorType -import androidx.compose.material3.Text -import androidx.compose.material3.TextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.livedata.observeAsState -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.amazon.connect.chat.androidchatexample.Config -import com.amazon.connect.chat.androidchatexample.viewmodel.ChatViewModel - -@Composable -fun ConfigPicker(viewModel: ChatViewModel) { - val configOptions = listOf( - "Micheal acc", - "Rajat acc", - "mobile-bug-bash-1", - "mobile-bug-bash-2", - "mobile-bug-bash-3", - "mobile-bug-bash-4", - "mobile-bug-bash-5", - "mobile-bug-bash-6", - "mobile-bug-bash-7", - "mobile-bug-bash-8" - ) - val selectedConfigIndex by viewModel.selectedConfigIndex.observeAsState(0) - var expanded by remember { mutableStateOf(false) } - var selectedOptionText by remember { mutableStateOf(configOptions[selectedConfigIndex]) } - - Column( - modifier = Modifier - .padding(16.dp) - .fillMaxWidth(), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text( - text = "Note: If you see Participant Token available, DO NOT change your account from dropdown, just start the chat to resume previous session", - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(bottom = 36.dp).fillMaxWidth().align(Alignment.CenterHorizontally), - color = Color.Red, - textAlign = TextAlign.Center - ) - - Text("Select Configuration", style = MaterialTheme.typography.bodyLarge) - - - // Exposed dropdown menu for selecting configuration - ExposedDropdownMenuBox( - expanded = expanded, - onExpandedChange = { expanded = it }, - ) { - TextField( - value = selectedOptionText, - onValueChange = {}, - readOnly = true, - label = { Text("Configuration") }, - trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) }, - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 8.dp) - .menuAnchor(MenuAnchorType.PrimaryNotEditable) - ) - - // The actual dropdown menu items - ExposedDropdownMenu( - expanded = expanded, - onDismissRequest = { expanded = false } // Dismiss when clicking outside - ) { - configOptions.forEachIndexed { index, option -> - DropdownMenuItem( - text = { Text(option) }, - onClick = { - selectedOptionText = option - viewModel.setSelectedConfig(index) - expanded = false // Close the dropdown after selection - } - ) - } - } - } - - val selectedConfig = Config.configurations[selectedConfigIndex] - Column( - modifier = Modifier.padding(top = 16.dp), - verticalArrangement = Arrangement.spacedBy(8.dp)) { - - DetailText(label = "Connect Instance ID", value = selectedConfig.connectInstanceId) - DetailText(label = "Contact Flow ID", value = selectedConfig.contactFlowId) - DetailText(label = "Start Chat Endpoint", value = selectedConfig.startChatEndpoint) - DetailText(label = "Region", value = selectedConfig.region.name) - DetailText(label = "Agent Name", value = selectedConfig.agentName) - DetailText(label = "Customer Name", value = selectedConfig.customerName) - } - } -} - -@Composable -fun DetailText(label: String, value: String) { - Column(modifier = Modifier.fillMaxWidth()) { - Text( - text = "$label:", - style = MaterialTheme.typography.bodyMedium, - fontWeight = FontWeight.Bold, - color = Color.Gray, - modifier = Modifier.padding(bottom = 2.dp) - ) - Text( - text = value, - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.onSurface - ) - } -} - diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSession.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSession.kt index 438247d..e3cbdd2 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSession.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSession.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk import android.net.Uri diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/MainActivity.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/MainActivity.kt deleted file mode 100644 index d486c1c..0000000 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/MainActivity.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.amazon.connect.chat.sdk - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.activity.enableEdgeToEdge -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview - -class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enableEdgeToEdge() - setContent { - MyApp { - GreetingFromSDK("from SDK") - } - } - } -} - -@Composable -fun MyApp(content: @Composable () -> Unit) { - MaterialTheme { - Surface(modifier = Modifier.fillMaxSize()) { - content() - } - } -} - -@Composable -fun GreetingFromSDK(name: String, modifier: Modifier = Modifier) { - Text( - text = "Hello $name!", - modifier = modifier - ) -} - -@Preview(showBackground = true) -@Composable -fun DefaultPreview() { - MyApp { - GreetingFromSDK("Android") - } -} diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/ChatModule.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/ChatModule.kt index cde0166..eb569db 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/ChatModule.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/ChatModule.kt @@ -1,19 +1,22 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.di import android.content.Context import com.amazon.connect.chat.sdk.ChatSession import com.amazon.connect.chat.sdk.ChatSessionImpl import com.amazon.connect.chat.sdk.network.AWSClient -import com.amazon.connect.chat.sdk.network.AttachmentsManager -import com.amazon.connect.chat.sdk.network.MessageReceiptsManager +import com.amazon.connect.chat.sdk.repository.AttachmentsManager +import com.amazon.connect.chat.sdk.repository.MessageReceiptsManager import com.amazon.connect.chat.sdk.network.WebSocketManager -import com.amazon.connect.chat.sdk.network.MetricsManager +import com.amazon.connect.chat.sdk.repository.MetricsManager import com.amazon.connect.chat.sdk.network.NetworkConnectionManager import com.amazon.connect.chat.sdk.network.WebSocketManagerImpl import com.amazon.connect.chat.sdk.repository.ChatService import com.amazon.connect.chat.sdk.repository.ChatServiceImpl -import com.amazon.connect.chat.sdk.repository.ConnectionDetailsProvider -import com.amazon.connect.chat.sdk.repository.ConnectionDetailsProviderImpl +import com.amazon.connect.chat.sdk.provider.ConnectionDetailsProvider +import com.amazon.connect.chat.sdk.provider.ConnectionDetailsProviderImpl import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/NetworkModule.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/NetworkModule.kt index bd4773d..778bdde 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/NetworkModule.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/di/NetworkModule.kt @@ -1,17 +1,20 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.di import android.content.Context -import com.amazon.connect.chat.sdk.network.APIClient +import com.amazon.connect.chat.sdk.network.api.APIClient import com.amazon.connect.chat.sdk.network.AWSClient import com.amazon.connect.chat.sdk.network.AWSClientImpl -import com.amazon.connect.chat.sdk.network.ApiUrl -import com.amazon.connect.chat.sdk.network.AttachmentsInterface -import com.amazon.connect.chat.sdk.network.MetricsInterface -import com.amazon.connect.chat.sdk.network.MetricsManager +import com.amazon.connect.chat.sdk.network.api.ApiUrl +import com.amazon.connect.chat.sdk.network.api.AttachmentsInterface +import com.amazon.connect.chat.sdk.network.api.MetricsInterface +import com.amazon.connect.chat.sdk.repository.MetricsManager import com.amazon.connect.chat.sdk.network.NetworkConnectionManager -import com.amazon.connect.chat.sdk.network.AttachmentsManager -import com.amazon.connect.chat.sdk.network.MessageReceiptsManager -import com.amazon.connect.chat.sdk.network.MessageReceiptsManagerImpl +import com.amazon.connect.chat.sdk.repository.AttachmentsManager +import com.amazon.connect.chat.sdk.repository.MessageReceiptsManager +import com.amazon.connect.chat.sdk.repository.MessageReceiptsManagerImpl import com.amazon.connect.chat.sdk.utils.MetricsUtils.getMetricsEndpoint import com.amazonaws.services.connectparticipant.AmazonConnectParticipantClient import dagger.Module diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ChatDetails.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ChatDetails.kt index fdaa902..e6fd170 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ChatDetails.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ChatDetails.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model import com.amazon.connect.chat.sdk.utils.Constants diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ConnectionDetails.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ConnectionDetails.kt index ab38e1a..aaf0324 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ConnectionDetails.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ConnectionDetails.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model data class ConnectionDetails( diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ContentType.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ContentType.kt index e6527f2..06cff1e 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ContentType.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/ContentType.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model enum class ContentType(val type: String){ diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Event.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Event.kt index 3b6a2c7..dcb8305 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Event.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Event.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model interface EventProtocol : TranscriptItemProtocol { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/GlobalConfig.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/GlobalConfig.kt index e6c0cc3..e53bb87 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/GlobalConfig.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/GlobalConfig.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model import com.amazon.connect.chat.sdk.utils.Constants diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Message.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Message.kt index f34eb29..86ad452 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Message.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Message.kt @@ -1,5 +1,9 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model +import com.amazon.connect.chat.sdk.utils.logger.SDKLogger import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json @@ -70,9 +74,11 @@ data class Message( private fun logUnsupportedContentType(templateType: String?) { // Log the unsupported content type + SDKLogger.logger.logDebug { "Unsupported content type: $templateType" } } private fun logSerializationException(e: SerializationException) { // Log the serialization exception + SDKLogger.logger.logError { "Serialization exception: ${e.message}" } } } \ No newline at end of file diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageContent.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageContent.kt index e45fb44..b4529f3 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageContent.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageContent.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model import com.amazon.connect.chat.sdk.utils.Constants diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageMetadata.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageMetadata.kt index ead8316..cb490c0 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageMetadata.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/MessageMetadata.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model enum class MessageStatus(val status: String, var customValue: String? = null) { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Metrics.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Metrics.kt index 1af3c13..dc3f4e9 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Metrics.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/Metrics.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model import kotlinx.serialization.Serializable diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptItem.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptItem.kt index ca7b236..3a5d647 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptItem.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptItem.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model interface TranscriptItemProtocol { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptResponse.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptResponse.kt index 55a114b..d426cef 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptResponse.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/TranscriptResponse.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model data class TranscriptResponse( diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/WebSocketMessageType.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/WebSocketMessageType.kt index a2298aa..1c97776 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/WebSocketMessageType.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/model/WebSocketMessageType.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.model enum class WebSocketMessageType(val type: String) { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AWSClient.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AWSClient.kt index 0c41f09..2b7a0c7 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AWSClient.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AWSClient.kt @@ -1,10 +1,12 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.network -import android.util.Log import com.amazon.connect.chat.sdk.model.ConnectionDetails import com.amazon.connect.chat.sdk.model.ContentType -import com.amazon.connect.chat.sdk.utils.Constants import com.amazon.connect.chat.sdk.model.GlobalConfig +import com.amazon.connect.chat.sdk.utils.Constants import com.amazonaws.regions.Region import com.amazonaws.services.connectparticipant.AmazonConnectParticipantClient import com.amazonaws.services.connectparticipant.model.CompleteAttachmentUploadRequest diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/NetworkConnectionManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/NetworkConnectionManager.kt index d0faabf..6b7dd75 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/NetworkConnectionManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/NetworkConnectionManager.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.network import android.content.Context diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/Resource.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/Resource.kt index 9618089..96b5124 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/Resource.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/Resource.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.network sealed class Resource(val data: T? = null, val message: String? = null) { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/WebSocketManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/WebSocketManager.kt index c749486..73abf2e 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/WebSocketManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/WebSocketManager.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.network import android.util.Log @@ -13,6 +16,7 @@ import com.amazon.connect.chat.sdk.model.MessageMetadata import com.amazon.connect.chat.sdk.model.MessageStatus import com.amazon.connect.chat.sdk.model.TranscriptItem import com.amazon.connect.chat.sdk.model.WebSocketMessageType +import com.amazon.connect.chat.sdk.repository.HeartbeatManager import com.amazon.connect.chat.sdk.utils.logger.SDKLogger import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/APIClient.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/APIClient.kt similarity index 91% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/APIClient.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/APIClient.kt index 8678795..4f2b361 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/APIClient.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/APIClient.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.network.api import com.amazon.connect.chat.sdk.model.MetricRequestBody import okhttp3.MediaType.Companion.toMediaTypeOrNull diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/ApiUrl.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/ApiUrl.kt similarity index 55% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/ApiUrl.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/ApiUrl.kt index 5c3be45..7f4278f 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/ApiUrl.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/ApiUrl.kt @@ -1,5 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +package com.amazon.connect.chat.sdk.network.api // https://thinkupsoft.com/blog/retrofit-multiples-base-urls-with-annotations/ diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsInterface.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/AttachmentsInterface.kt similarity index 67% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsInterface.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/AttachmentsInterface.kt index 00340b3..ee448cd 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsInterface.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/AttachmentsInterface.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.network.api import okhttp3.RequestBody import retrofit2.Call diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsInterface.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/MetricsInterface.kt similarity index 66% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsInterface.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/MetricsInterface.kt index 4cd06de..c7ca2ee 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsInterface.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/api/MetricsInterface.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.network.api import com.amazon.connect.chat.sdk.model.MetricRequestBody import retrofit2.Call diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSessionProvider.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ChatSessionProvider.kt similarity index 79% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSessionProvider.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ChatSessionProvider.kt index f5883e2..81cae56 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/ChatSessionProvider.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ChatSessionProvider.kt @@ -1,6 +1,10 @@ -package com.amazon.connect.chat.sdk +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.provider import android.content.Context +import com.amazon.connect.chat.sdk.ChatSession import dagger.hilt.EntryPoint import dagger.hilt.InstallIn import dagger.hilt.android.EntryPointAccessors diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ConnectionDetailProvider.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ConnectionDetailProvider.kt similarity index 91% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ConnectionDetailProvider.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ConnectionDetailProvider.kt index 1369004..71aae6e 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ConnectionDetailProvider.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/provider/ConnectionDetailProvider.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.repository +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.provider import com.amazon.connect.chat.sdk.model.ChatDetails import com.amazon.connect.chat.sdk.model.ConnectionDetails diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/AttachmentsManager.kt similarity index 96% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsManager.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/AttachmentsManager.kt index d5d967d..9c9a1d8 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/AttachmentsManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/AttachmentsManager.kt @@ -1,9 +1,14 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.repository import android.content.Context import android.net.Uri import android.provider.OpenableColumns import android.util.Log +import com.amazon.connect.chat.sdk.network.api.APIClient +import com.amazon.connect.chat.sdk.network.AWSClient import javax.inject.Inject import java.util.* import com.amazon.connect.chat.sdk.utils.Constants diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ChatService.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ChatService.kt index 94a3d37..1f8e08c 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ChatService.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/ChatService.kt @@ -1,14 +1,13 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.repository import android.content.Context import android.net.Uri -import android.util.Log import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleEventObserver -import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.OnLifecycleEvent import androidx.lifecycle.ProcessLifecycleOwner import com.amazon.connect.chat.sdk.model.ChatDetails import com.amazon.connect.chat.sdk.model.ChatEvent @@ -23,11 +22,8 @@ import com.amazon.connect.chat.sdk.model.MetricName import com.amazon.connect.chat.sdk.model.TranscriptItem import com.amazon.connect.chat.sdk.model.TranscriptResponse import com.amazon.connect.chat.sdk.network.AWSClient -import com.amazon.connect.chat.sdk.network.AttachmentsManager -import com.amazon.connect.chat.sdk.network.MessageReceiptsManager -import com.amazon.connect.chat.sdk.network.MetricsManager -import com.amazon.connect.chat.sdk.network.PendingMessageReceipts import com.amazon.connect.chat.sdk.network.WebSocketManager +import com.amazon.connect.chat.sdk.provider.ConnectionDetailsProvider import com.amazon.connect.chat.sdk.utils.CommonUtils.Companion.getMimeType import com.amazon.connect.chat.sdk.utils.CommonUtils.Companion.getOriginalFileName import com.amazon.connect.chat.sdk.utils.Constants diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/HeartbeatManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/HeartbeatManager.kt similarity index 86% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/HeartbeatManager.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/HeartbeatManager.kt index 858a12b..17022d5 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/HeartbeatManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/HeartbeatManager.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.repository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MessageReceiptsManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MessageReceiptsManager.kt similarity index 96% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MessageReceiptsManager.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MessageReceiptsManager.kt index 60312dd..a6453c0 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MessageReceiptsManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MessageReceiptsManager.kt @@ -1,6 +1,8 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.repository -import android.util.Log import com.amazon.connect.chat.sdk.model.MessageReceiptType import com.amazon.connect.chat.sdk.model.MessageReceipts import com.amazon.connect.chat.sdk.utils.logger.SDKLogger diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsManager.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MetricsManager.kt similarity index 93% rename from chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsManager.kt rename to chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MetricsManager.kt index 64182dd..3889bcc 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/network/MetricsManager.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/repository/MetricsManager.kt @@ -1,4 +1,7 @@ -package com.amazon.connect.chat.sdk.network +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazon.connect.chat.sdk.repository import com.amazon.connect.chat.sdk.model.MetricRequestBody import javax.inject.Inject @@ -9,6 +12,7 @@ import com.amazon.connect.chat.sdk.model.MetricName import com.amazon.connect.chat.sdk.model.Metric import com.amazon.connect.chat.sdk.model.Dimension import com.amazon.connect.chat.sdk.model.GlobalConfig +import com.amazon.connect.chat.sdk.network.api.APIClient class MetricsManager @Inject constructor( private var apiClient: APIClient diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/CommonUtils.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/CommonUtils.kt index f2958ff..2dfbc28 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/CommonUtils.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/CommonUtils.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils import android.content.Context diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/Constants.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/Constants.kt index 70b7d68..e51c88a 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/Constants.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/Constants.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils import com.amazonaws.regions.Regions diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/MetricsUtils.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/MetricsUtils.kt index 2c699ee..ddb9a65 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/MetricsUtils.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/MetricsUtils.kt @@ -1,5 +1,6 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils import java.text.SimpleDateFormat diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/ChatSDKLogger.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/ChatSDKLogger.kt index 8ad9885..de1c699 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/ChatSDKLogger.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/ChatSDKLogger.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils.logger // This can be used externally to create a custom logger diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLogger.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLogger.kt index 97d6620..d67741f 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLogger.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLogger.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils.logger object SDKLogger { diff --git a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLoggerImpl.kt b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLoggerImpl.kt index 4e14de8..c089723 100644 --- a/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLoggerImpl.kt +++ b/chat-sdk/src/main/java/com/amazon/connect/chat/sdk/utils/logger/SDKLoggerImpl.kt @@ -1,3 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package com.amazon.connect.chat.sdk.utils.logger import android.util.Log diff --git a/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/network/AttachmentsManagerTest.kt b/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/network/AttachmentsManagerTest.kt index 2328e32..043ac9c 100644 --- a/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/network/AttachmentsManagerTest.kt +++ b/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/network/AttachmentsManagerTest.kt @@ -3,6 +3,10 @@ package com.amazon.connect.chat.sdk.network import android.content.ContentResolver import android.content.Context import android.net.Uri +import com.amazon.connect.chat.sdk.network.api.APIClient +import com.amazon.connect.chat.sdk.network.api.AttachmentsInterface +import com.amazon.connect.chat.sdk.network.api.MetricsInterface +import com.amazon.connect.chat.sdk.repository.AttachmentsManager import com.amazon.connect.chat.sdk.utils.Constants import com.amazonaws.services.connectparticipant.AmazonConnectParticipantClient import com.amazonaws.services.connectparticipant.model.CompleteAttachmentUploadRequest diff --git a/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/repository/ChatServiceImplTest.kt b/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/repository/ChatServiceImplTest.kt index ba05967..0ca82c6 100644 --- a/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/repository/ChatServiceImplTest.kt +++ b/chat-sdk/src/test/java/com/amazon/connect/chat/sdk/repository/ChatServiceImplTest.kt @@ -13,11 +13,8 @@ import com.amazon.connect.chat.sdk.model.MessageReceiptType import com.amazon.connect.chat.sdk.model.TranscriptItem import com.amazon.connect.chat.sdk.model.TranscriptResponse import com.amazon.connect.chat.sdk.network.AWSClient -import com.amazon.connect.chat.sdk.network.AttachmentsManager -import com.amazon.connect.chat.sdk.network.MessageReceiptsManager -import com.amazon.connect.chat.sdk.network.MetricsManager -import com.amazon.connect.chat.sdk.network.PendingMessageReceipts import com.amazon.connect.chat.sdk.network.WebSocketManager +import com.amazon.connect.chat.sdk.provider.ConnectionDetailsProvider import com.amazonaws.regions.Regions import com.amazonaws.services.connectparticipant.model.DisconnectParticipantResult import com.amazonaws.services.connectparticipant.model.GetTranscriptResult diff --git a/chat-sdk/version.properties b/chat-sdk/version.properties index 9ba8b40..8e6cfd5 100644 --- a/chat-sdk/version.properties +++ b/chat-sdk/version.properties @@ -1,3 +1,3 @@ -sdkVersion=0.0.52-beta +sdkVersion=0.0.1-alpha groupId=software.aws.connect -artifactId=chat-sdk +artifactId=amazon-connect-chat-android