diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml deleted file mode 100644 index fff364f..0000000 --- a/.github/workflows/documentation.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: Documentation - -on: - pull_request: - branches: [ "main" ] - types: [opened, synchronize] - -jobs: - documentation: - runs-on: ubuntu-latest - permissions: - contents: write - packages: write - pull-requests: write - repository-projects: write - id-token: write - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.ref }} - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'zulu' - cache: gradle - - - name: Checkout external template repository - uses: actions/checkout@v4 - env: - GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} - with: - repository: HARMAN-Automotive/CSP-Documentation - path: CSP-Documentation - token: ${{ secrets.REPO_TOKEN }} - - - name: Check files in the working directory - run: | - pwd - ls - - - name: Configure Git - id: git - run: | - git config user.name "$GITHUB_ACTOR" - git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build - run: ./gradlew cyclonedxBom - env: - GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - - name: Archive SBOM - run: cp ${{ github.workspace }}/app/build/reports/bom.xml ./bom.xml - - - name: Download templates - run: | - cp ./CSP-Documentation/scripts/notice-generator.py ./notice-generator.py - cp ./CSP-Documentation/template/NOTICE.template.md ./NOTICE.template - cp ./CSP-Documentation/template/CODE_OF_CONDUCT.template.md ./CODE_OF_CONDUCT.md - cp ./CSP-Documentation/template/SECURITY.template.md ./SECURITY.md - cp ./CSP-Documentation/template/CONTRIBUTING.template.md ./CONTRIBUTING.md - sed -i "s|{{repository}}|${{ github.repository }}|g" ./NOTICE.template - sed -i "s|{{repository}}|${{ github.repository }}|g" ./CONTRIBUTING.md - - - name: Allow notice script to be executed - run: chmod +x ./notice-generator.py - - - name: Execute script - run: python ./notice-generator.py - - - name: Commit NOTICE - env: - GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} - run: | - git add NOTICE.md CODE_OF_CONDUCT.md CONTRIBUTING.md SECURITY.md - git diff-index --quiet HEAD || git commit -am "Generate Documentation" - git push - - diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3ae1717..7c7266f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,22 +2,21 @@ plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-android") - id("kotlin-kapt") id("com.google.gms.google-services") id("kotlin-parcelize") id("org.cyclonedx.bom") } android { - namespace = "com.harman.vehicleconnects" + namespace = "org.eclipse.ecsp" compileSdk = 35 defaultConfig { - applicationId = "com.harman.vehicleconnects" + applicationId = "org.eclipse.ecsp" minSdk = 24 targetSdk = 35 - versionCode = 13 - versionName = "2.5" + versionCode = 16 + versionName = "3.3" multiDexEnabled = true testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" @@ -28,14 +27,14 @@ android { buildTypes { release { - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", ) } debug { - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", @@ -45,7 +44,7 @@ android { compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 - group = "com.harman.vehicleconnects" + group = "org.eclipse.ecsp" version = 1.0 } kotlinOptions { @@ -69,8 +68,7 @@ android { dependencies { - implementation(files("libs/androidVehicleConnectSDK.aar")) - + implementation("org.eclipse.ecsp:vehicleconnectsdk:1.1.5") implementation("androidx.core:core-ktx:1.15.0") implementation("androidx.activity:activity-compose:1.8.0") implementation("androidx.compose.ui:ui:1.5.0") @@ -99,29 +97,12 @@ dependencies { implementation("androidx.multidex:multidex:2.0.1") implementation("com.google.dagger:dagger:2.55") - implementation("com.google.dagger:dagger-android:2.55") - implementation("com.google.dagger:dagger-android-support:2.55") - kapt("com.google.dagger:dagger-android-processor:2.55") - kapt("com.google.dagger:dagger-compiler:2.55") + annotationProcessor("com.google.dagger:dagger-compiler:2.55") implementation("com.squareup.retrofit2:retrofit:2.11.0") implementation("com.squareup.retrofit2:converter-gson:2.11.0") implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") implementation(kotlin("reflect")) - implementation("com.google.firebase:firebase-messaging:24.0.0"){ - exclude(group ="com.google.firebase", module="firebase-iid-interop") - exclude(group ="com.google.firebase", module="firebase-measurement-connector") - exclude(group ="com.google.firebase", module="firebase-core") - exclude(group ="com.google.firebase", module="firebase-annotations") - exclude(group ="com.google.firebase", module="firebase-installations-interop") - exclude(group ="com.google.firebase", module="firebase-installations") -// exclude(group ="com.google.android.gms", module="play-services-tasks") - exclude(group ="com.google.android.gms", module="play-services-stats") - exclude(group ="com.google.android.gms", module="play-services-cloud-messaging") -// exclude(group ="com.google.android.gms", module="play-services-basement") - exclude(group ="com.google.android.gms", module="play-services-base") - exclude(group ="com.google.android.datatransport", module="transport-api") - - } + implementation("com.google.firebase:firebase-messaging:24.0.0") } diff --git a/app/google-services.json b/app/google-services.json index ff271f9..cd1ae09 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:104347266266:android:a6d53d6921e6443bb289e3", "android_client_info": { - "package_name": "com.harman.vehicleconnects" + "package_name": "org.eclipse.ecsp" } }, "oauth_client": [], diff --git a/app/libs/androidVehicleConnectSDK.aar b/app/libs/androidVehicleConnectSDK.aar deleted file mode 100644 index 3e1b08f..0000000 Binary files a/app/libs/androidVehicleConnectSDK.aar and /dev/null differ diff --git a/app/src/androidTest/java/com/harman/vehicleconnects/ExampleInstrumentedTest.kt b/app/src/androidTest/java/org/eclipse/ecsp/ExampleInstrumentedTest.kt similarity index 84% rename from app/src/androidTest/java/com/harman/vehicleconnects/ExampleInstrumentedTest.kt rename to app/src/androidTest/java/org/eclipse/ecsp/ExampleInstrumentedTest.kt index e8f1cc4..7830ebb 100644 --- a/app/src/androidTest/java/com/harman/vehicleconnects/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/org/eclipse/ecsp/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects +package org.eclipse.ecsp import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry @@ -17,6 +17,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.harman.vehicleconnects", appContext.packageName) + assertEquals("org.eclipse.ecsp", appContext.packageName) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3ce8ffe..caf9fe1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,7 +17,7 @@ android:theme="@style/Theme.AppCompat" tools:targetApi="31"> @@ -26,11 +26,12 @@ - - - Unit -) { - val colorScheme = when { - dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { - val context = LocalContext.current - if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) - } - - darkTheme -> DarkColorScheme - else -> LightColorScheme - } - val view = LocalView.current - if (!view.isInEditMode) { - SideEffect { - val window = (view.context as Activity).window - window.statusBarColor = colorScheme.primary.toArgb() - WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme - } - } - - MaterialTheme( - colorScheme = colorScheme, - typography = Typography, - content = content - ) -} \ No newline at end of file diff --git a/app/src/main/java/com/harman/vehicleconnects/helper/AppConstants.kt b/app/src/main/java/org/eclipse/ecsp/helper/AppConstants.kt similarity index 83% rename from app/src/main/java/com/harman/vehicleconnects/helper/AppConstants.kt rename to app/src/main/java/org/eclipse/ecsp/helper/AppConstants.kt index 267de49..60c5255 100644 --- a/app/src/main/java/com/harman/vehicleconnects/helper/AppConstants.kt +++ b/app/src/main/java/org/eclipse/ecsp/helper/AppConstants.kt @@ -1,9 +1,9 @@ -package com.harman.vehicleconnects.helper +package org.eclipse.ecsp.helper import android.app.Activity import android.content.Context -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.setStateIcon +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.setStateIcon /******************************************************************************** * Copyright (c) 2023-24 Harman International @@ -24,7 +24,7 @@ import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.setSta object AppConstants { const val DEVICE_ID = "DeviceId" const val DEVICE_ASSOCIATION = "Device Installation" - const val ENTER_IMEI = "Enter IMEI" + const val ENTER_SERIAL_NUM = "Enter Serial Number" const val ASSOCIATION_INITIATED = "ASSOCIATION_INITIATED" const val ASSOCIATED = "ASSOCIATED" const val SUSPENDED = "SUSPENDED" @@ -101,12 +101,42 @@ object AppConstants { val defaultRoValuesList = listOf( - RemoteOperationItem.Window(CLOSED, WINDOWS, setStateIcon(CLOSED, WINDOWS)), - RemoteOperationItem.Light(OFF, LIGHT, setStateIcon(OFF, LIGHT)), - RemoteOperationItem.Alarm(OFF, ALARM, setStateIcon(OFF, ALARM)), - RemoteOperationItem.Door(LOCKED, DOOR, setStateIcon(LOCKED, DOOR)), - RemoteOperationItem.Engine(STOPPED, ENGINE, setStateIcon(STOPPED, ENGINE)), - RemoteOperationItem.Trunk(LOCKED, TRUNK, setStateIcon(LOCKED, TRUNK)), + RemoteOperationItem.Window( + CLOSED, + WINDOWS, setStateIcon( + CLOSED, + WINDOWS + )), + RemoteOperationItem.Light( + OFF, + LIGHT, setStateIcon( + OFF, + LIGHT + )), + RemoteOperationItem.Alarm( + OFF, + ALARM, setStateIcon( + OFF, + ALARM + )), + RemoteOperationItem.Door( + LOCKED, + DOOR, setStateIcon( + LOCKED, + DOOR + )), + RemoteOperationItem.Engine( + STOPPED, + ENGINE, setStateIcon( + STOPPED, + ENGINE + )), + RemoteOperationItem.Trunk( + LOCKED, + TRUNK, setStateIcon( + LOCKED, + TRUNK + )), ) val ALERT_TYPES = diff --git a/app/src/main/java/com/harman/vehicleconnects/helper/Helper.kt b/app/src/main/java/org/eclipse/ecsp/helper/AppHelper.kt similarity index 99% rename from app/src/main/java/com/harman/vehicleconnects/helper/Helper.kt rename to app/src/main/java/org/eclipse/ecsp/helper/AppHelper.kt index 7315da4..1dc6ca1 100644 --- a/app/src/main/java/com/harman/vehicleconnects/helper/Helper.kt +++ b/app/src/main/java/org/eclipse/ecsp/helper/AppHelper.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.helper +package org.eclipse.ecsp.helper /******************************************************************************** * Copyright (c) 2023-24 Harman International * diff --git a/app/src/main/java/com/harman/vehicleconnects/helper/FcmNotificationService.kt b/app/src/main/java/org/eclipse/ecsp/helper/FcmNotificationService.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/helper/FcmNotificationService.kt rename to app/src/main/java/org/eclipse/ecsp/helper/FcmNotificationService.kt index 60ce5cd..dcb1511 100644 --- a/app/src/main/java/com/harman/vehicleconnects/helper/FcmNotificationService.kt +++ b/app/src/main/java/org/eclipse/ecsp/helper/FcmNotificationService.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.helper +package org.eclipse.ecsp.helper /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -25,15 +25,15 @@ import androidx.compose.ui.graphics.toArgb import androidx.core.app.NotificationCompat import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage -import com.harman.androidvehicleconnectsdk.helper.AppManager -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertData -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants.EXTRA_ALERT -import com.harman.vehicleconnects.helper.AppConstants.EXTRA_MESSAGE -import com.harman.vehicleconnects.helper.AppConstants.EXTRA_VEHICLE_ID -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.view.activities.DashboardActivity -import com.harman.vehicleconnects.ui.view.activities.LoginActivity +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants.EXTRA_ALERT +import org.eclipse.ecsp.helper.AppConstants.EXTRA_MESSAGE +import org.eclipse.ecsp.helper.AppConstants.EXTRA_VEHICLE_ID +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.view.activities.DashboardActivity +import org.eclipse.ecsp.ui.view.activities.LoginActivity +import org.eclipse.ecsp.helper.AppManager +import org.eclipse.ecsp.notificationservice.model.AlertData /** * Represents the notification service listener, using firebase messaging service. diff --git a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/EnvironmentListData.kt b/app/src/main/java/org/eclipse/ecsp/models/dataclass/EnvironmentListData.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/models/dataclass/EnvironmentListData.kt rename to app/src/main/java/org/eclipse/ecsp/models/dataclass/EnvironmentListData.kt index 93ce952..b71b64b 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/EnvironmentListData.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/dataclass/EnvironmentListData.kt @@ -1,4 +1,7 @@ -package com.harman.vehicleconnects.models.dataclass +package org.eclipse.ecsp.models.dataclass + +import org.eclipse.ecsp.environment.Environment + /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -15,7 +18,6 @@ package com.harman.vehicleconnects.models.dataclass * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import com.harman.androidvehicleconnectsdk.environment.Environment /** * Data Class represents to hold the environment data list diff --git a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/ROErrorMessage.kt b/app/src/main/java/org/eclipse/ecsp/models/dataclass/ROErrorMessage.kt similarity index 95% rename from app/src/main/java/com/harman/vehicleconnects/models/dataclass/ROErrorMessage.kt rename to app/src/main/java/org/eclipse/ecsp/models/dataclass/ROErrorMessage.kt index d16e40d..8f8273f 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/ROErrorMessage.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/dataclass/ROErrorMessage.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.dataclass +package org.eclipse.ecsp.models.dataclass /******************************************************************************** * Copyright (c) 2023-24 Harman International * diff --git a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/RemoteOperationItem.kt b/app/src/main/java/org/eclipse/ecsp/models/dataclass/RemoteOperationItem.kt similarity index 98% rename from app/src/main/java/com/harman/vehicleconnects/models/dataclass/RemoteOperationItem.kt rename to app/src/main/java/org/eclipse/ecsp/models/dataclass/RemoteOperationItem.kt index 97391dc..c297d35 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/RemoteOperationItem.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/dataclass/RemoteOperationItem.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.dataclass +package org.eclipse.ecsp.models.dataclass /******************************************************************************** * Copyright (c) 2023-24 Harman International diff --git a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/VehicleProfileModel.kt b/app/src/main/java/org/eclipse/ecsp/models/dataclass/VehicleProfileModel.kt similarity index 84% rename from app/src/main/java/com/harman/vehicleconnects/models/dataclass/VehicleProfileModel.kt rename to app/src/main/java/org/eclipse/ecsp/models/dataclass/VehicleProfileModel.kt index a3f8cf0..da0c6d2 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/dataclass/VehicleProfileModel.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/dataclass/VehicleProfileModel.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.dataclass +package org.eclipse.ecsp.models.dataclass /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -16,9 +16,9 @@ package com.harman.vehicleconnects.models.dataclass * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ import android.os.Parcelable -import com.harman.androidvehicleconnectsdk.vehicleservice.model.AssociatedDevice -import com.harman.androidvehicleconnectsdk.vehicleservice.model.vehicleprofile.VehicleDetailData import kotlinx.parcelize.Parcelize +import org.eclipse.ecsp.vehicleservice.model.AssociatedDevice +import org.eclipse.ecsp.vehicleservice.model.vehicleprofile.VehicleDetailData /** * Parcelize Data class used to hold the Vehicle profile details diff --git a/app/src/main/java/com/harman/vehicleconnects/models/routes/BottomNavItem.kt b/app/src/main/java/org/eclipse/ecsp/models/routes/BottomNavItem.kt similarity index 94% rename from app/src/main/java/com/harman/vehicleconnects/models/routes/BottomNavItem.kt rename to app/src/main/java/org/eclipse/ecsp/models/routes/BottomNavItem.kt index b424ab5..6671ffb 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/routes/BottomNavItem.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/routes/BottomNavItem.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.routes +package org.eclipse.ecsp.models.routes /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -15,7 +15,7 @@ package com.harman.vehicleconnects.models.routes * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import com.harman.vehicleconnects.R +import org.eclipse.ecsp.R /** * Sealed class used to handle the Bottom navigation item diff --git a/app/src/main/java/com/harman/vehicleconnects/models/routes/DeviceAssociationRoute.kt b/app/src/main/java/org/eclipse/ecsp/models/routes/DeviceAssociationRoute.kt similarity index 80% rename from app/src/main/java/com/harman/vehicleconnects/models/routes/DeviceAssociationRoute.kt rename to app/src/main/java/org/eclipse/ecsp/models/routes/DeviceAssociationRoute.kt index 6a372c9..72af6cf 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/routes/DeviceAssociationRoute.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/routes/DeviceAssociationRoute.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.routes +package org.eclipse.ecsp.models.routes /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -15,8 +15,8 @@ package com.harman.vehicleconnects.models.routes * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import com.harman.vehicleconnects.helper.AppConstants.DEVICE_ASSOCIATION -import com.harman.vehicleconnects.helper.AppConstants.ENTER_IMEI +import org.eclipse.ecsp.helper.AppConstants.DEVICE_ASSOCIATION +import org.eclipse.ecsp.helper.AppConstants.ENTER_SERIAL_NUM /** * Sealed class used to handle the Device association screen @@ -28,5 +28,5 @@ import com.harman.vehicleconnects.helper.AppConstants.ENTER_IMEI sealed class DeviceAssociationRoute(route: String) { data object InstallDeviceScreen : DeviceAssociationRoute(DEVICE_ASSOCIATION) - data object EnterIMEIScreen : DeviceAssociationRoute(ENTER_IMEI) + data object EnterIMEIScreen : DeviceAssociationRoute(ENTER_SERIAL_NUM) } diff --git a/app/src/main/java/com/harman/vehicleconnects/models/routes/VehicleProfileRoute.kt b/app/src/main/java/org/eclipse/ecsp/models/routes/VehicleProfileRoute.kt similarity index 81% rename from app/src/main/java/com/harman/vehicleconnects/models/routes/VehicleProfileRoute.kt rename to app/src/main/java/org/eclipse/ecsp/models/routes/VehicleProfileRoute.kt index c53c5ec..3001cb3 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/routes/VehicleProfileRoute.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/routes/VehicleProfileRoute.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.routes +package org.eclipse.ecsp.models.routes /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -15,9 +15,9 @@ package com.harman.vehicleconnects.models.routes * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import com.harman.vehicleconnects.helper.AppConstants.VEHICLE_EDIT_COLOR -import com.harman.vehicleconnects.helper.AppConstants.VEHICLE_EDIT_NAME -import com.harman.vehicleconnects.helper.AppConstants.VEHICLE_PROFILE +import org.eclipse.ecsp.helper.AppConstants.VEHICLE_EDIT_COLOR +import org.eclipse.ecsp.helper.AppConstants.VEHICLE_EDIT_NAME +import org.eclipse.ecsp.helper.AppConstants.VEHICLE_PROFILE /** * Sealed class used to handle the Vehicle profile screen diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/AppViewModelFactory.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/AppViewModelFactory.kt similarity index 97% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/AppViewModelFactory.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/AppViewModelFactory.kt index bed5b8d..0e8c790 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/AppViewModelFactory.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/AppViewModelFactory.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DashboardVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/DashboardVM.kt similarity index 66% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DashboardVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/DashboardVM.kt index 2e53475..ecd5f65 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DashboardVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/DashboardVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -16,15 +16,20 @@ package com.harman.vehicleconnects.models.viewmodels * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ import android.app.Activity +import android.util.Log import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.viewModelScope import com.google.firebase.messaging.FirebaseMessaging -import com.harman.androidvehicleconnectsdk.notificationservice.model.ChannelData -import com.harman.androidvehicleconnectsdk.notificationservice.model.NotificationConfigData -import com.harman.androidvehicleconnectsdk.userservice.service.UserServiceInterface -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.repository.DashboardRepository +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.repository.DashboardRepository +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.launch +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.notificationservice.model.ChannelData +import org.eclipse.ecsp.notificationservice.model.NotificationConfigData +import org.eclipse.ecsp.userservice.service.UserServiceInterface /** * Represents the Dashboard ViewModel @@ -35,14 +40,13 @@ import com.harman.vehicleconnects.repository.DashboardRepository */ class DashboardVM(activity: Activity) : AndroidViewModel(activity.application) { private var topBarTitle = MutableLiveData("") - private var _associatedDeviceList = MutableLiveData>() + private var _associatedDeviceList = MutableLiveData>>() private val dashboardRepository: DashboardRepository by lazy { DashboardRepository() } - private val userServiceInterface: UserServiceInterface by lazy { - UserServiceInterface.authService(activity) - } private var isSignOutClicked = MutableLiveData(false) + private var _isPasswordChangeTriggered = MutableLiveData(false) + private var passwordChangeStatus = MutableLiveData>() /** * Represents to get the title value of the screens @@ -67,7 +71,7 @@ class DashboardVM(activity: Activity) : AndroidViewModel(activity.application) { * * @return [HashMap] of [VehicleProfileModel] LiveData */ - fun getAssociatedDeviceList(): LiveData> { + fun getAssociatedDeviceList(): LiveData>> { return _associatedDeviceList } @@ -83,9 +87,9 @@ class DashboardVM(activity: Activity) : AndroidViewModel(activity.application) { * Represents to do SIGN_OUT * */ - fun signOutClick() { - userServiceInterface.signOutWithAppAuth { - isSignOutClicked.postValue(it.status.requestStatus) + fun signOutClick(userServiceInterface: UserServiceInterface) { + dashboardRepository.doSignOut(userServiceInterface) { + isSignOutClicked.postValue(it) } } @@ -124,4 +128,21 @@ class DashboardVM(activity: Activity) : AndroidViewModel(activity.application) { } } } + + fun isPasswordChangeTriggered(): LiveData = _isPasswordChangeTriggered + + fun setPasswordChangeTriggerValue(value: Boolean){ + _isPasswordChangeTriggered.value = value + } + + fun changePasswordApiCall(userServiceInterface: UserServiceInterface): LiveData>{ + val exception = + CoroutineExceptionHandler { _, exception -> + Log.e("Password change request API failed: ", exception.cause.toString()) + } + viewModelScope.launch(exception) { + passwordChangeStatus.postValue(dashboardRepository.requestForChangePassword(userServiceInterface)) + } + return passwordChangeStatus + } } diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DeviceAssociationVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/DeviceAssociationVM.kt similarity index 82% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DeviceAssociationVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/DeviceAssociationVM.kt index a6aff45..dc688f9 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/DeviceAssociationVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/DeviceAssociationVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -20,11 +20,11 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.vehicleservice.model.DeviceVerificationData -import com.harman.androidvehicleconnectsdk.vehicleservice.model.deviceassociation.AssociatedDeviceInfo -import com.harman.androidvehicleconnectsdk.vehicleservice.service.VehicleServiceInterface import kotlinx.coroutines.launch +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.vehicleservice.model.DeviceVerificationData +import org.eclipse.ecsp.vehicleservice.model.deviceassociation.AssociatedDeviceInfo +import org.eclipse.ecsp.vehicleservice.service.VehicleServiceInterface /** * View Model class to handle the Device association screen @@ -38,7 +38,7 @@ class DeviceAssociationVM(activity: Activity) : AndroidViewModel(activity.applic private var isLoading = MutableLiveData(false) private val _verifyDeviceIMEI = MutableLiveData>() private val _associateDevice = MutableLiveData>() - private var verifyImei = MutableLiveData() + private var serialNumberValue = MutableLiveData() /** * Represents to get the [MutableLiveData] of title @@ -81,14 +81,14 @@ class DeviceAssociationVM(activity: Activity) : AndroidViewModel(activity.applic * * @return IMEI string value as [LiveData] */ - fun clickedOnVerifyImei(): LiveData = verifyImei + fun clickedOnSerialNumberSubmission(): LiveData = serialNumberValue /** * Function to set the IMEI value * - * @param imeiString as [String] + * @param serialNumString as [String] */ - fun triggerImeiVerification(imeiString: String) = verifyImei.postValue(imeiString) + fun triggerSerialNumberVerification(serialNumString: String) = serialNumberValue.postValue(serialNumString) /** * Function is to call IMEI Verification API @@ -113,15 +113,15 @@ class DeviceAssociationVM(activity: Activity) : AndroidViewModel(activity.applic * Function is to call association API to associate a device using IMEI * * @param vehicleServiceInterface SDK interface used to trigger the API call - * @param imeiString IMEI value in [String] format + * @param serialString IMEI value in [String] format * @return [MutableLiveData] of SDK [CustomMessage] with [AssociatedDeviceInfo] */ fun associateDevice( vehicleServiceInterface: VehicleServiceInterface, - imeiString: String, + serialString: String, ): MutableLiveData> { viewModelScope.launch { - vehicleServiceInterface.associateDevice(imeiString) { + vehicleServiceInterface.associateDevice(serialString) { _associateDevice.value = it } } diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/LoginActivityVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/LoginActivityVM.kt similarity index 79% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/LoginActivityVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/LoginActivityVM.kt index 4bb4bab..a61bd47 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/LoginActivityVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/LoginActivityVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International @@ -23,14 +23,14 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.harman.androidvehicleconnectsdk.environment.Environment -import com.harman.androidvehicleconnectsdk.environment.EnvironmentManager -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.androidvehicleconnectsdk.userservice.service.UserServiceInterface -import com.harman.vehicleconnects.models.dataclass.EnvironmentListData -import com.harman.vehicleconnects.repository.LoginRepository +import org.eclipse.ecsp.models.dataclass.EnvironmentListData +import org.eclipse.ecsp.repository.LoginRepository import kotlinx.coroutines.runBlocking +import org.eclipse.ecsp.environment.Environment +import org.eclipse.ecsp.environment.EnvironmentManager +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.userservice.service.UserServiceInterface import java.lang.ref.WeakReference /** @@ -56,22 +56,28 @@ class LoginActivityVM(activity: Activity) : AndroidViewModel(activity.applicatio requestCode: Int, launcher: ActivityResultLauncher?, ) { - userServiceInterface.signInWithAppAuth(requestCode, launcher!!) + userServiceInterface.signInWithAppAuth( + requestCode, + launcher!! + ) } /** + * Function is to do SIGN UP / User creation * - * - * @param userServiceInterface - * @param requestCode - * @param launcher + * @param userServiceInterface SDK interface to call SIGN UP API + * @param requestCode Activity result request code + * @param launcher [ActivityResultLauncher] reference object */ fun signUpRequest( userServiceInterface: UserServiceInterface, requestCode: Int, launcher: ActivityResultLauncher?, ) { - userServiceInterface.signUpWithAppAuth(requestCode, launcher!!) + userServiceInterface.signUpWithAppAuth( + requestCode, + launcher!! + ) } /** @@ -129,7 +135,7 @@ class LoginActivityVM(activity: Activity) : AndroidViewModel(activity.applicatio * @param activity Application activity obejct * @return [MutableLiveData] of [CustomMessage] */ - fun fetchUserProfileData(activity: Activity): MutableLiveData> { - return LoginRepository(activity).fetchUserProfileData() + fun fetchUserProfileData(userServiceInterface: UserServiceInterface): MutableLiveData> { + return LoginRepository().fetchUserProfileData(userServiceInterface) } } diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/NotificationVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/NotificationVM.kt similarity index 93% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/NotificationVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/NotificationVM.kt index 645e589..2cbc7af 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/NotificationVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/NotificationVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -20,10 +20,10 @@ import androidx.compose.runtime.MutableState import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LifecycleOwner import androidx.navigation.NavHostController -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertData -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.routes.BottomNavItem -import com.harman.vehicleconnects.repository.DashboardRepository +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.routes.BottomNavItem +import org.eclipse.ecsp.repository.DashboardRepository +import org.eclipse.ecsp.notificationservice.model.AlertData /** * Represents the View Model class used for Notification screen diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/RemoteOperationVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/RemoteOperationVM.kt similarity index 93% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/RemoteOperationVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/RemoteOperationVM.kt index c550608..1fb4b21 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/RemoteOperationVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/RemoteOperationVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -22,21 +22,21 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.google.gson.Gson -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.roservice.model.RemoteOperationState -import com.harman.androidvehicleconnectsdk.roservice.model.RoEventHistoryResponse -import com.harman.androidvehicleconnectsdk.roservice.model.RoStatusResponse -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.FORCED_FAILURE -import com.harman.vehicleconnects.helper.AppConstants.PENDING -import com.harman.vehicleconnects.helper.fromJson -import com.harman.vehicleconnects.helper.isRequestPendingLong -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.models.dataclass.ROErrorMessage -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.repository.DashboardRepository -import com.harman.vehicleconnects.services.RemoteOperationService -import com.harman.vehicleconnects.services.RoRequestLoopService +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.roservice.model.RemoteOperationState +import org.eclipse.ecsp.roservice.model.RoEventHistoryResponse +import org.eclipse.ecsp.roservice.model.RoStatusResponse +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.FORCED_FAILURE +import org.eclipse.ecsp.helper.AppConstants.PENDING +import org.eclipse.ecsp.helper.fromJson +import org.eclipse.ecsp.helper.isRequestPendingLong +import org.eclipse.ecsp.helper.toastError +import org.eclipse.ecsp.models.dataclass.ROErrorMessage +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.repository.DashboardRepository +import org.eclipse.ecsp.services.RemoteOperationService +import org.eclipse.ecsp.services.RoRequestLoopService /** * Represents the View Model class used by Remote operation screen diff --git a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/VehicleProfileVM.kt b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/VehicleProfileVM.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/models/viewmodels/VehicleProfileVM.kt rename to app/src/main/java/org/eclipse/ecsp/models/viewmodels/VehicleProfileVM.kt index 72d23ad..2d1302c 100644 --- a/app/src/main/java/com/harman/vehicleconnects/models/viewmodels/VehicleProfileVM.kt +++ b/app/src/main/java/org/eclipse/ecsp/models/viewmodels/VehicleProfileVM.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.models.viewmodels +package org.eclipse.ecsp.models.viewmodels /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -19,12 +19,12 @@ import android.app.Activity import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.vehicleservice.model.TerminateDeviceData -import com.harman.androidvehicleconnectsdk.vehicleservice.model.vehicleprofile.PostVehicleAttributeData -import com.harman.androidvehicleconnectsdk.vehicleservice.model.vehicleprofile.VehicleAttributeDetail -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.repository.VehicleProfileRepository +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.vehicleservice.model.TerminateDeviceData +import org.eclipse.ecsp.vehicleservice.model.vehicleprofile.PostVehicleAttributeData +import org.eclipse.ecsp.vehicleservice.model.vehicleprofile.VehicleAttributeDetail +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.repository.VehicleProfileRepository /** * ViewModel class for Vehicle profile screen diff --git a/app/src/main/java/com/harman/vehicleconnects/repository/DashboardRepository.kt b/app/src/main/java/org/eclipse/ecsp/repository/DashboardRepository.kt similarity index 73% rename from app/src/main/java/com/harman/vehicleconnects/repository/DashboardRepository.kt rename to app/src/main/java/org/eclipse/ecsp/repository/DashboardRepository.kt index 87c197e..b842986 100644 --- a/app/src/main/java/com/harman/vehicleconnects/repository/DashboardRepository.kt +++ b/app/src/main/java/org/eclipse/ecsp/repository/DashboardRepository.kt @@ -1,4 +1,5 @@ -package com.harman.vehicleconnects.repository +package org.eclipse.ecsp.repository + /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -17,24 +18,25 @@ package com.harman.vehicleconnects.repository ********************************************************************************/ import android.util.Log import androidx.lifecycle.MutableLiveData -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertAnalysisData -import com.harman.androidvehicleconnectsdk.notificationservice.model.NotificationConfigData -import com.harman.androidvehicleconnectsdk.notificationservice.service.NotificationServiceInterface -import com.harman.androidvehicleconnectsdk.roservice.model.RemoteOperationState -import com.harman.androidvehicleconnectsdk.roservice.model.RoEventHistoryResponse -import com.harman.androidvehicleconnectsdk.roservice.model.RoStatusResponse -import com.harman.androidvehicleconnectsdk.roservice.service.RoServiceInterface -import com.harman.androidvehicleconnectsdk.vehicleservice.model.AssociatedDevice -import com.harman.androidvehicleconnectsdk.vehicleservice.service.VehicleServiceInterface -import com.harman.vehicleconnects.helper.AppConstants.DISASSOCIATED -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.helper.AppConstants.DISASSOCIATED +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.launch +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.notificationservice.model.AlertAnalysisData +import org.eclipse.ecsp.notificationservice.model.NotificationConfigData +import org.eclipse.ecsp.notificationservice.service.NotificationServiceInterface +import org.eclipse.ecsp.roservice.model.RemoteOperationState +import org.eclipse.ecsp.roservice.model.RoEventHistoryResponse +import org.eclipse.ecsp.roservice.model.RoStatusResponse +import org.eclipse.ecsp.roservice.service.RoServiceInterface +import org.eclipse.ecsp.userservice.service.UserServiceInterface +import org.eclipse.ecsp.vehicleservice.model.AssociatedDevice +import org.eclipse.ecsp.vehicleservice.service.VehicleServiceInterface /** * Dashboard Repository class is to perform all network calls come from Dashboard activity @@ -164,17 +166,17 @@ class DashboardRepository { Log.e("Alert History API failed: ", exception.cause.toString()) } CoroutineScope(Dispatchers.IO).launch(exception) { - notificationServiceInterface.notificationAlertHistory( - deviceId, - alertTypes, - since, - till, - size, - page, - readStatus, - ) { - data.postValue(it) - } + data.postValue( + notificationServiceInterface.notificationAlertHistory( + deviceId, + alertTypes, + since, + till, + size, + page, + readStatus, + ) + ) } return data } @@ -184,8 +186,8 @@ class DashboardRepository { * * @return [MutableLiveData] of [HashMap] */ - fun associateDeviceList(): MutableLiveData> { - val data = MutableLiveData>() + fun associateDeviceList(): MutableLiveData>> { + val data = MutableLiveData>>() val exception = CoroutineExceptionHandler { _, exception -> Log.e( @@ -200,25 +202,34 @@ class DashboardRepository { var deviceAssociationListData: List? = null vehicleServiceInterface.associatedDeviceList { - deviceAssociationListData = - it.response?.data?.filter { deviceList -> - deviceList.mDeviceId != null && deviceList.mAssociationStatus != DISASSOCIATED - } + if (it.response != null) { + deviceAssociationListData = + it.response?.data?.filter { deviceList -> + deviceList.mDeviceId != null && deviceList.mAssociationStatus != DISASSOCIATED + } + } } return@async deviceAssociationListData } - val vehicleProfileDataCall: Deferred> = + val vehicleProfileDataCall: Deferred>> = async { + var success = false deviceCall.await()?.forEach { if (it.mDeviceId != null) { vehicleServiceInterface.getVehicleProfile(it.mDeviceId!!) { vehicleProfileData -> list[it.mDeviceId!!] = - VehicleProfileModel(it, vehicleProfileData.response?.data?.get(0)) + VehicleProfileModel( + it, + vehicleProfileData.response?.data?.get(0) + ) } + success = true } + }?.let { + success = false } - return@async list + return@async Pair(success, list) } data.postValue(vehicleProfileDataCall.await()) @@ -249,8 +260,20 @@ class DashboardRepository { null, notificationConfigDataList, ) { - Log.d("NOTIFICATION_SUBSCRIPTION API", "Notification subscription api success for $vehicleId") + Log.d( + "NOTIFICATION_SUBSCRIPTION API", + "Notification subscription api success for $vehicleId" + ) } } } + + fun doSignOut(userServiceInterface: UserServiceInterface, response: (Boolean) -> Unit) { + userServiceInterface.signOutWithAppAuth { + response(it.status.requestStatus) + } + } + + suspend fun requestForChangePassword(userServiceInterface: UserServiceInterface): CustomMessage = + userServiceInterface.changePasswordRequest() } diff --git a/app/src/main/java/com/harman/vehicleconnects/repository/LoginRepository.kt b/app/src/main/java/org/eclipse/ecsp/repository/LoginRepository.kt similarity index 74% rename from app/src/main/java/com/harman/vehicleconnects/repository/LoginRepository.kt rename to app/src/main/java/org/eclipse/ecsp/repository/LoginRepository.kt index 71d2d67..e4eaa48 100644 --- a/app/src/main/java/com/harman/vehicleconnects/repository/LoginRepository.kt +++ b/app/src/main/java/org/eclipse/ecsp/repository/LoginRepository.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.repository +package org.eclipse.ecsp.repository /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -15,12 +15,11 @@ package com.harman.vehicleconnects.repository * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import android.app.Activity import android.util.Log import androidx.lifecycle.MutableLiveData -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.androidvehicleconnectsdk.userservice.service.UserServiceInterface +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.userservice.service.UserServiceInterface import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -29,19 +28,14 @@ import kotlinx.coroutines.launch /** * Login Repository class is to perform all network calls related to login feature * - * @property activity */ -class LoginRepository(val activity: Activity) { - private val userServiceInterface: UserServiceInterface by lazy { - UserServiceInterface.authService(activity) - } - +class LoginRepository { /** * Function is to get the user profile data using SDK Api * * @return [MutableLiveData] of [UserProfile]'s [CustomMessage] */ - fun fetchUserProfileData(): MutableLiveData> { + fun fetchUserProfileData(userServiceInterface: UserServiceInterface): MutableLiveData> { val data = MutableLiveData>() val exception = CoroutineExceptionHandler { _, exception -> diff --git a/app/src/main/java/com/harman/vehicleconnects/repository/VehicleProfileRepository.kt b/app/src/main/java/org/eclipse/ecsp/repository/VehicleProfileRepository.kt similarity index 88% rename from app/src/main/java/com/harman/vehicleconnects/repository/VehicleProfileRepository.kt rename to app/src/main/java/org/eclipse/ecsp/repository/VehicleProfileRepository.kt index 5a1c5bf..5ee81bc 100644 --- a/app/src/main/java/com/harman/vehicleconnects/repository/VehicleProfileRepository.kt +++ b/app/src/main/java/org/eclipse/ecsp/repository/VehicleProfileRepository.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.repository +package org.eclipse.ecsp.repository /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -17,10 +17,10 @@ package com.harman.vehicleconnects.repository ********************************************************************************/ import android.util.Log import androidx.lifecycle.MutableLiveData -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.vehicleservice.model.TerminateDeviceData -import com.harman.androidvehicleconnectsdk.vehicleservice.model.vehicleprofile.PostVehicleAttributeData -import com.harman.androidvehicleconnectsdk.vehicleservice.service.VehicleServiceInterface +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.vehicleservice.model.TerminateDeviceData +import org.eclipse.ecsp.vehicleservice.model.vehicleprofile.PostVehicleAttributeData +import org.eclipse.ecsp.vehicleservice.service.VehicleServiceInterface import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/com/harman/vehicleconnects/services/ConnectionManager.kt b/app/src/main/java/org/eclipse/ecsp/services/ConnectionManager.kt similarity index 95% rename from app/src/main/java/com/harman/vehicleconnects/services/ConnectionManager.kt rename to app/src/main/java/org/eclipse/ecsp/services/ConnectionManager.kt index cb891cf..7e4b42f 100644 --- a/app/src/main/java/com/harman/vehicleconnects/services/ConnectionManager.kt +++ b/app/src/main/java/org/eclipse/ecsp/services/ConnectionManager.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.services +package org.eclipse.ecsp.services /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -19,7 +19,7 @@ import android.content.Context import android.net.ConnectivityManager import android.net.Network import android.net.NetworkCapabilities -import com.harman.vehicleconnects.services.ConnectionManager.ConnectionListener +import org.eclipse.ecsp.services.ConnectionManager.ConnectionListener /** * ConnectionManager class is used to get the network connectivity information diff --git a/app/src/main/java/com/harman/vehicleconnects/services/RemoteOperationService.kt b/app/src/main/java/org/eclipse/ecsp/services/RemoteOperationService.kt similarity index 93% rename from app/src/main/java/com/harman/vehicleconnects/services/RemoteOperationService.kt rename to app/src/main/java/org/eclipse/ecsp/services/RemoteOperationService.kt index f029581..2ffc90a 100644 --- a/app/src/main/java/com/harman/vehicleconnects/services/RemoteOperationService.kt +++ b/app/src/main/java/org/eclipse/ecsp/services/RemoteOperationService.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.services +package org.eclipse.ecsp.services /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -16,10 +16,10 @@ package com.harman.vehicleconnects.services * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ import android.app.Activity -import com.harman.androidvehicleconnectsdk.roservice.model.RoEventHistoryResponse -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.setStateIcon +import org.eclipse.ecsp.roservice.model.RoEventHistoryResponse +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.setStateIcon /** * RemoteOperationService class is used to handle the UI logic for remote operation screen diff --git a/app/src/main/java/com/harman/vehicleconnects/services/RoRequestLoopService.kt b/app/src/main/java/org/eclipse/ecsp/services/RoRequestLoopService.kt similarity index 88% rename from app/src/main/java/com/harman/vehicleconnects/services/RoRequestLoopService.kt rename to app/src/main/java/org/eclipse/ecsp/services/RoRequestLoopService.kt index 0e51bba..afee668 100644 --- a/app/src/main/java/com/harman/vehicleconnects/services/RoRequestLoopService.kt +++ b/app/src/main/java/org/eclipse/ecsp/services/RoRequestLoopService.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.services +package org.eclipse.ecsp.services /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -19,20 +19,20 @@ import android.app.Activity import android.util.Log import androidx.compose.runtime.MutableState import androidx.lifecycle.LifecycleOwner -import com.harman.androidvehicleconnectsdk.helper.response.CustomMessage -import com.harman.androidvehicleconnectsdk.roservice.model.RoEventHistoryResponse -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.ALARM -import com.harman.vehicleconnects.helper.AppConstants.DOOR -import com.harman.vehicleconnects.helper.AppConstants.ENGINE -import com.harman.vehicleconnects.helper.AppConstants.LIGHT -import com.harman.vehicleconnects.helper.AppConstants.TRUNK -import com.harman.vehicleconnects.helper.AppConstants.WINDOWS -import com.harman.vehicleconnects.helper.isRequestPendingLong -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.models.viewmodels.RemoteOperationVM -import com.harman.vehicleconnects.repository.DashboardRepository +import org.eclipse.ecsp.helper.response.CustomMessage +import org.eclipse.ecsp.roservice.model.RoEventHistoryResponse +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.ALARM +import org.eclipse.ecsp.helper.AppConstants.DOOR +import org.eclipse.ecsp.helper.AppConstants.ENGINE +import org.eclipse.ecsp.helper.AppConstants.LIGHT +import org.eclipse.ecsp.helper.AppConstants.TRUNK +import org.eclipse.ecsp.helper.AppConstants.WINDOWS +import org.eclipse.ecsp.helper.isRequestPendingLong +import org.eclipse.ecsp.helper.toastError +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.models.viewmodels.RemoteOperationVM +import org.eclipse.ecsp.repository.DashboardRepository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/theme/Color.kt b/app/src/main/java/org/eclipse/ecsp/ui/theme/Color.kt similarity index 96% rename from app/src/main/java/com/harman/vehicleconnects/ui/theme/Color.kt rename to app/src/main/java/org/eclipse/ecsp/ui/theme/Color.kt index 3ade4e0..e5a8041 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/theme/Color.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/theme/Color.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.theme +package org.eclipse.ecsp.ui.theme /******************************************************************************** * Copyright (c) 2023-24 Harman International * diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/theme/Type.kt b/app/src/main/java/org/eclipse/ecsp/ui/theme/Type.kt similarity index 97% rename from app/src/main/java/com/harman/vehicleconnects/ui/theme/Type.kt rename to app/src/main/java/org/eclipse/ecsp/ui/theme/Type.kt index e98daa2..716e217 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/theme/Type.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/theme/Type.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.theme +package org.eclipse.ecsp.ui.theme /******************************************************************************** * Copyright (c) 2023-24 Harman International * diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/App.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/App.kt similarity index 90% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/App.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/App.kt index 473bdef..36ff46e 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/App.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/App.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -17,7 +17,7 @@ package com.harman.vehicleconnects.ui.view.activities ********************************************************************************/ import androidx.multidex.MultiDexApplication import com.google.firebase.FirebaseApp -import com.harman.androidvehicleconnectsdk.helper.AppManager +import org.eclipse.ecsp.helper.AppManager /** * Main Application activity diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/BaseAppActivity.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/BaseAppActivity.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/BaseAppActivity.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/BaseAppActivity.kt index 049bcf0..ed99391 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/BaseAppActivity.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/BaseAppActivity.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -19,10 +19,10 @@ import android.content.Intent import android.os.Bundle import android.util.Log import androidx.activity.ComponentActivity -import com.harman.androidvehicleconnectsdk.helper.AppManager -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.services.ConnectionManager +import org.eclipse.ecsp.helper.AppManager +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.toastError +import org.eclipse.ecsp.services.ConnectionManager /** * Base activity of application, used to sign out from the session and get the network connectivity info diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DashboardActivity.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/DashboardActivity.kt similarity index 70% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DashboardActivity.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/DashboardActivity.kt index 2d80519..2cd4316 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DashboardActivity.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/DashboardActivity.kt @@ -1,4 +1,5 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities + /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -23,38 +24,46 @@ import android.os.Bundle import android.widget.Toast import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag import androidx.core.content.ContextCompat import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController import com.google.gson.Gson -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertData -import com.harman.androidvehicleconnectsdk.roservice.model.RemoteOperationState -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.defaultRoValuesList -import com.harman.vehicleconnects.helper.AppConstants.getUserProfile -import com.harman.vehicleconnects.helper.fromJson -import com.harman.vehicleconnects.helper.isInternetAvailable -import com.harman.vehicleconnects.helper.launchActivity -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.viewmodels.AppViewModelFactory -import com.harman.vehicleconnects.models.viewmodels.DashboardVM -import com.harman.vehicleconnects.models.viewmodels.NotificationVM -import com.harman.vehicleconnects.models.viewmodels.RemoteOperationVM -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.TopBar -import com.harman.vehicleconnects.ui.view.composes.dashboardcompose.BottomNavigationBar -import com.harman.vehicleconnects.ui.view.composes.dashboardcompose.ShowConfirmationDialogBox -import com.harman.vehicleconnects.ui.view.composes.dashboardcompose.mainCompose +import org.eclipse.ecsp.R +import org.eclipse.ecsp.notificationservice.model.AlertData +import org.eclipse.ecsp.roservice.model.RemoteOperationState +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.defaultRoValuesList +import org.eclipse.ecsp.helper.AppConstants.getUserProfile +import org.eclipse.ecsp.helper.fromJson +import org.eclipse.ecsp.helper.isInternetAvailable +import org.eclipse.ecsp.helper.launchActivity +import org.eclipse.ecsp.helper.toastError +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.viewmodels.AppViewModelFactory +import org.eclipse.ecsp.models.viewmodels.DashboardVM +import org.eclipse.ecsp.models.viewmodels.NotificationVM +import org.eclipse.ecsp.models.viewmodels.RemoteOperationVM +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.TopBar +import org.eclipse.ecsp.ui.view.composes.dashboardcompose.BottomNavigationBar +import org.eclipse.ecsp.ui.view.composes.dashboardcompose.ShowChangePasswordConfirmationDialogBox +import org.eclipse.ecsp.ui.view.composes.dashboardcompose.ShowConfirmationDialogBox +import org.eclipse.ecsp.ui.view.composes.dashboardcompose.mainCompose +import org.eclipse.ecsp.userservice.service.UserServiceInterface /** * Dashboard activity class used to do UI for dashboard activities, which contains all the bottom menu. @@ -71,6 +80,9 @@ class DashboardActivity : BaseAppActivity() { private val notificationVM: NotificationVM by lazy { AppViewModelFactory(this@DashboardActivity).create(NotificationVM::class.java) } + private val userServiceInterface: UserServiceInterface by lazy { + UserServiceInterface.authService(this@DashboardActivity) + } private var showBottomSheet: MutableState>? = null private var showVehicleList = mutableStateOf( @@ -80,11 +92,13 @@ class DashboardActivity : BaseAppActivity() { ), ) private lateinit var navController: NavHostController - private var isProgressBarLoading: MutableState? = null + private val isProgressBarLoading = mutableStateOf(false) private var lazyStaggeredGridList = mutableStateOf(ArrayList(defaultRoValuesList)) private var selectedVehicleId: MutableState>? = null private var openDialog: MutableState>? = null private var openConfirmationDialog: MutableState? = null + private lateinit var passwordChangeDialog: MutableState + private val dialogMS = mutableStateOf(Pair(false, "")) private var userId: String? = null private var vehicleProfileDataList = mutableStateOf(HashMap()) private val alertList = mutableStateOf>(arrayListOf()) @@ -99,6 +113,23 @@ class DashboardActivity : BaseAppActivity() { remoteOperationVM.updateRoStatusData().observe(this@DashboardActivity) { if (it != null) updateROState(it.first, it.second, it.third) } + + dashboardVM.isPasswordChangeTriggered().observe(this@DashboardActivity) { + if (it) { + isProgressBarLoading.value = true + dashboardVM.changePasswordApiCall(userServiceInterface) + .observe(this@DashboardActivity) { customMessage -> + isProgressBarLoading.value = false + if (customMessage.status.requestStatus) { + dialogMS.value = + Pair(true, getString(R.string.password_change_success_status_text)) + } else { + dialogMS.value = + Pair(true, getString(R.string.password_change_failure_status_text)) + } + } + } + } // askNotificationPermission() } @@ -118,8 +149,8 @@ class DashboardActivity : BaseAppActivity() { selectedVehicleId = remember { mutableStateOf(Triple("", "", "")) } openDialog = remember { mutableStateOf(Triple(false, "", "")) } showBottomSheet = remember { mutableStateOf(Triple(false, "", "")) } - isProgressBarLoading = remember { mutableStateOf(true) } openConfirmationDialog = remember { mutableStateOf(false) } + passwordChangeDialog = remember { mutableStateOf(false) } navController = rememberNavController() selectedVehicleIndex = remember { @@ -176,6 +207,7 @@ class DashboardActivity : BaseAppActivity() { lazyStaggeredGridList, showVehicleList, openConfirmationDialog, + passwordChangeDialog, alertList, notifyRoUpdate, selectedVehicleIndex, @@ -185,7 +217,41 @@ class DashboardActivity : BaseAppActivity() { ) } if (openConfirmationDialog != null && openConfirmationDialog!!.value) { - ShowConfirmationDialogBox(dashboardVM, openConfirmationDialog) + ShowConfirmationDialogBox( + userServiceInterface, + dashboardVM, + openConfirmationDialog, + getString(R.string.sign_out_text), + getString(R.string.sign_out_sub_text) + ) + } + if (passwordChangeDialog.value) { + ShowChangePasswordConfirmationDialogBox( + dashboardVM = dashboardVM, + confirmationDialog = passwordChangeDialog, + title = getString(R.string.password_change_title_text), + message = getString(R.string.password_change_sub_text) + ) + } + if (dialogMS.value.first) { + AlertDialog( + onDismissRequest = { + dialogMS.value = Pair(false, "") + }, + title = { + Text(text = dialogMS.value.second) + }, + confirmButton = { + Button( + modifier = Modifier.testTag("confirm_btn_tag"), + onClick = { + dialogMS.value = Pair(false, "") + }, + ) { + Text("Close") + } + } + ) } } } @@ -210,13 +276,13 @@ class DashboardActivity : BaseAppActivity() { } private fun triggerDeviceAssociationListApi() { - isProgressBarLoading?.value = true +// isProgressBarLoading.value = true dashboardVM.getAssociatedDeviceList().observe(this@DashboardActivity) { // dashboardVM.subscribeNotificationConfig(emailId?:"", it) - isProgressBarLoading?.value = false + isProgressBarLoading.value = false it.let { AppConstants.setVehicleList(this@DashboardActivity, Gson().toJson(it)) - processVehicleList(it) + processVehicleList(it.second) } } } diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DeviceAssociationActivity.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/DeviceAssociationActivity.kt similarity index 80% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DeviceAssociationActivity.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/DeviceAssociationActivity.kt index 61deaac..e747021 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/DeviceAssociationActivity.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/DeviceAssociationActivity.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -25,14 +25,14 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import com.harman.androidvehicleconnectsdk.vehicleservice.service.VehicleServiceInterface -import com.harman.vehicleconnects.helper.AppConstants.DEVICE_ASSOCIATION -import com.harman.vehicleconnects.helper.AppConstants.ENTER_IMEI -import com.harman.vehicleconnects.models.viewmodels.AppViewModelFactory -import com.harman.vehicleconnects.models.viewmodels.DeviceAssociationVM -import com.harman.vehicleconnects.ui.view.composes.TopBar -import com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose.EnterImeiScreenCompose -import com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose.InstallDeviceMainScreenCompose +import org.eclipse.ecsp.vehicleservice.service.VehicleServiceInterface +import org.eclipse.ecsp.helper.AppConstants.DEVICE_ASSOCIATION +import org.eclipse.ecsp.helper.AppConstants.ENTER_SERIAL_NUM +import org.eclipse.ecsp.models.viewmodels.AppViewModelFactory +import org.eclipse.ecsp.models.viewmodels.DeviceAssociationVM +import org.eclipse.ecsp.ui.view.composes.TopBar +import org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose.EnterSerialNumberScreenCompose +import org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose.InstallDeviceMainScreenCompose /** * Device association activity contains the device association feature @@ -47,8 +47,8 @@ class DeviceAssociationActivity : BaseAppActivity() { super.onCreate(savedInstanceState) deviceAssociationVM = AppViewModelFactory(this).create(DeviceAssociationVM::class.java) - deviceAssociationVM?.clickedOnVerifyImei()?.observe(this) { - triggerIMEIVerificationApi(it) + deviceAssociationVM?.clickedOnSerialNumberSubmission()?.observe(this) { + triggerAssociateDevice(it) } setContent { @@ -67,8 +67,8 @@ class DeviceAssociationActivity : BaseAppActivity() { composable(DEVICE_ASSOCIATION) { InstallDeviceMainScreenCompose(content, navController, deviceAssociationVM) } - composable(ENTER_IMEI) { - EnterImeiScreenCompose(content = content, deviceAssociationVM) + composable(ENTER_SERIAL_NUM) { + EnterSerialNumberScreenCompose(content = content, deviceAssociationVM) } } } @@ -94,8 +94,8 @@ class DeviceAssociationActivity : BaseAppActivity() { } } - private fun triggerAssociateDevice(imeiNumber: String) { - deviceAssociationVM?.associateDevice(vehicleServiceInterface, imeiNumber) + private fun triggerAssociateDevice(serialNumber: String) { + deviceAssociationVM?.associateDevice(vehicleServiceInterface, serialNumber) ?.observe(this@DeviceAssociationActivity) { deviceAssociationVM?.setLoadingStatus(false) val successStatus = it?.status?.requestStatus ?: false diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/LoginActivity.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/LoginActivity.kt similarity index 73% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/LoginActivity.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/LoginActivity.kt index 6f09231..b0def73 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/LoginActivity.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/LoginActivity.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities /******************************************************************************** * Copyright (c) 2023-24 Harman International @@ -35,26 +35,31 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import com.google.gson.Gson -import com.harman.androidvehicleconnectsdk.helper.AppManager -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.androidvehicleconnectsdk.userservice.service.UserServiceInterface -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.dataToJson -import com.harman.vehicleconnects.models.dataclass.EnvironmentListData -import com.harman.vehicleconnects.models.viewmodels.AppViewModelFactory -import com.harman.vehicleconnects.models.viewmodels.LoginActivityVM -import com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose.ProgressBar -import com.harman.vehicleconnects.ui.view.composes.logincompose.EnvironmentSpinner -import com.harman.vehicleconnects.ui.view.composes.logincompose.ImageLogoCompose -import com.harman.vehicleconnects.ui.view.composes.logincompose.SignInButton +import org.eclipse.ecsp.helper.AppManager +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.userservice.service.UserServiceInterface +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.dataToJson +import org.eclipse.ecsp.models.dataclass.EnvironmentListData +import org.eclipse.ecsp.models.viewmodels.AppViewModelFactory +import org.eclipse.ecsp.models.viewmodels.LoginActivityVM +import org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose.ProgressBar +import org.eclipse.ecsp.ui.view.composes.logincompose.EnvironmentSpinner +import org.eclipse.ecsp.ui.view.composes.logincompose.ImageLogoCompose +import org.eclipse.ecsp.ui.view.composes.logincompose.SignInButton +import org.eclipse.ecsp.ui.view.composes.logincompose.SignUpButton /** * LoginActivity Class is to display login UI and perform the login actions * */ class LoginActivity : ComponentActivity() { - private var loginActivityVM: LoginActivityVM? = null - private var userServiceInterface: UserServiceInterface? = null + private val loginActivityVM: LoginActivityVM by lazy { + AppViewModelFactory(this@LoginActivity).create(LoginActivityVM::class.java) + } + private val userServiceInterface: UserServiceInterface by lazy { + UserServiceInterface.authService(this@LoginActivity) + } private var launcher: ActivityResultLauncher? = null private var isProgressBarLoading: MutableState? = null @@ -66,14 +71,11 @@ class LoginActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (!AppManager.isLoggedIn()) { - userServiceInterface = UserServiceInterface.authService(this) - loginActivityVM = - AppViewModelFactory(this@LoginActivity).create(LoginActivityVM::class.java) var envList = EnvironmentListData(arrayListOf()) - loginActivityVM?.getEnvironmentList()?.observe(this) { envData -> + loginActivityVM.getEnvironmentList().observe(this) { envData -> envList = envData envList.environmentList.first() - .let { loginActivityVM?.configureEnvironment(it) } + .let { loginActivityVM.configureEnvironment(it) } } launcher = @@ -97,7 +99,7 @@ class LoginActivity : ComponentActivity() { SIGN_UP_REQUEST_CODE -> { val customMessage = result.data?.let { AppManager.authResponseFromIntent(it) } - Toast.makeText( + /*Toast.makeText( this@LoginActivity, if (customMessage?.status!!.requestStatus) { "Signed Up successfully" @@ -105,7 +107,7 @@ class LoginActivity : ComponentActivity() { customMessage.error?.message }, Toast.LENGTH_LONG, - ).show() + ).show()*/ } } } @@ -120,17 +122,16 @@ class LoginActivity : ComponentActivity() { envList, preselected = envList.environmentList.first(), onSelectionChanged = { - loginActivityVM?.configureEnvironment(it) + loginActivityVM.configureEnvironment(it) }, ) isProgressBarLoading?.value?.let { ProgressBar(loading = it) } SignInAndUpButtonCompose() } } - } else - { - launchActivity() - } + } else { + launchActivity() + } } @Composable @@ -143,18 +144,18 @@ class LoginActivity : ComponentActivity() { SignInButton { launchSignInRequest() } - /*SignUpButton { + SignUpButton { launchSignUpRequest() - }*/ + } } } - private fun launchSignInRequest() { - loginActivityVM?.signInRequest(userServiceInterface!!, SIGN_IN_REQUEST_CODE, launcher) + private fun launchSignInRequest() { + loginActivityVM.signInRequest(userServiceInterface, SIGN_IN_REQUEST_CODE, launcher) } - private fun launchSignUpRequest() { - loginActivityVM?.signUpRequest(userServiceInterface!!, SIGN_UP_REQUEST_CODE, launcher) + private fun launchSignUpRequest() { + loginActivityVM.signUpRequest(userServiceInterface, SIGN_UP_REQUEST_CODE, launcher) } private fun launchActivity() { @@ -164,8 +165,8 @@ class LoginActivity : ComponentActivity() { } private fun fetchUserProfileData() { - loginActivityVM?.fetchUserProfileData(this@LoginActivity) - ?.observe(this@LoginActivity) { + loginActivityVM.fetchUserProfileData(userServiceInterface) + .observe(this@LoginActivity) { if (it?.response != null) { isProgressBarLoading?.value = false val response = it.response as UserProfile diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/VehicleProfileActivity.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/VehicleProfileActivity.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/activities/VehicleProfileActivity.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/activities/VehicleProfileActivity.kt index 401d0df..7851ebe 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/activities/VehicleProfileActivity.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/activities/VehicleProfileActivity.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.activities +package org.eclipse.ecsp.ui.view.activities /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -38,18 +38,18 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import com.harman.androidvehicleconnectsdk.vehicleservice.model.vehicleprofile.PostVehicleAttributeData -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.parcelable -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.routes.VehicleProfileRoute -import com.harman.vehicleconnects.models.viewmodels.AppViewModelFactory -import com.harman.vehicleconnects.models.viewmodels.VehicleProfileVM -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.TextFieldState -import com.harman.vehicleconnects.ui.view.composes.TopBar -import com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose.ProgressBar -import com.harman.vehicleconnects.ui.view.composes.vehicleprofilecompose.VehicleProfileMainCompose +import org.eclipse.ecsp.vehicleservice.model.vehicleprofile.PostVehicleAttributeData +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.parcelable +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.routes.VehicleProfileRoute +import org.eclipse.ecsp.models.viewmodels.AppViewModelFactory +import org.eclipse.ecsp.models.viewmodels.VehicleProfileVM +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.TextFieldState +import org.eclipse.ecsp.ui.view.composes.TopBar +import org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose.ProgressBar +import org.eclipse.ecsp.ui.view.composes.vehicleprofilecompose.VehicleProfileMainCompose /** * Vehicle Profile activity is used to hold the vehicle profile screen and actions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/AppCommonCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/AppCommonCompose.kt similarity index 92% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/AppCommonCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/AppCommonCompose.kt index 3d151d1..fc4c524 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/AppCommonCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/AppCommonCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes +package org.eclipse.ecsp.ui.view.composes /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -33,10 +33,10 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.White +import org.eclipse.ecsp.R +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.White /** * AppCommonCompose contains common compose functions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardMainCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardMainCompose.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardMainCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardMainCompose.kt index a32e3de..cfe9cc8 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardMainCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardMainCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.dashboardcompose +package org.eclipse.ecsp.ui.view.composes.dashboardcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -40,23 +40,23 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertData -import com.harman.androidvehicleconnectsdk.roservice.model.RemoteOperationState -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.AJAR -import com.harman.vehicleconnects.helper.AppConstants.PARTIAL_OPENED -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.routes.BottomNavItem -import com.harman.vehicleconnects.models.viewmodels.DashboardVM -import com.harman.vehicleconnects.models.viewmodels.NotificationVM -import com.harman.vehicleconnects.models.viewmodels.RemoteOperationVM -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose.ProgressBar -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.BottomSheetOptionsRoCompose -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.RemoteOperationScreen +import org.eclipse.ecsp.notificationservice.model.AlertData +import org.eclipse.ecsp.roservice.model.RemoteOperationState +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.AJAR +import org.eclipse.ecsp.helper.AppConstants.PARTIAL_OPENED +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.routes.BottomNavItem +import org.eclipse.ecsp.models.viewmodels.DashboardVM +import org.eclipse.ecsp.models.viewmodels.NotificationVM +import org.eclipse.ecsp.models.viewmodels.RemoteOperationVM +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose.ProgressBar +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.BottomSheetOptionsRoCompose +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.RemoteOperationScreen /** * DashboardMainCompose file is used to handle the Bottom Navigation items compose @@ -117,6 +117,7 @@ fun Activity.NavHostContainer( openConfirmationDialog: MutableState?, notifyRoUpdate: MutableState, lifecycleOwner: LifecycleOwner, + passwordChangeDialog: MutableState? ) { NavHost( navController, @@ -144,6 +145,7 @@ fun Activity.NavHostContainer( vehicleProfileList, openConfirmationDialog, showVehicleList, + passwordChangeDialog ) } // disabled for current iteration @@ -177,6 +179,7 @@ fun mainCompose( lazyStaggeredGridList: MutableState>?, showVehicleList: MutableState>>, openConfirmationDialog: MutableState?, + passwordChangeDialog: MutableState?, alertList: MutableState>, notifyRoUpdate: MutableState, selectedVehicleIndex: MutableState?, @@ -192,7 +195,7 @@ fun mainCompose( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Top, ) { - if (showVehicleList.value.first) { +// if (showVehicleList.value.first) { VehicleSelectionListView( vehicleList = showVehicleList.value.second, selectedVehicleId?.value!!.first, @@ -214,13 +217,13 @@ fun mainCompose( ) { launchActivity() } - } +// } activity.NavHostContainer( activity, navController = navController, dashboardVM, remoteOperationVM, notificationVM, vehicleProfileList = vehicleProfileList, isProgressBarLoading, showBottomSheet, openDialog, selectedVehicleId, lazyStaggeredGridList, - showVehicleList, openConfirmationDialog, notifyRoUpdate, lifecycleOwner, + showVehicleList, openConfirmationDialog, notifyRoUpdate, lifecycleOwner,passwordChangeDialog ) isProgressBarLoading?.value?.let { diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt similarity index 94% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt index e0f6e16..7267e39 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/DashboardVehicleListCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.dashboardcompose +package org.eclipse.ecsp.ui.view.composes.dashboardcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -45,11 +45,12 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.MildWhite -import com.harman.vehicleconnects.ui.theme.White +import org.eclipse.ecsp.R +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.MildWhite +import org.eclipse.ecsp.ui.theme.White /** * DashboardVehicleListCompose file contains compose functions, which is used to handle the dashboard @@ -64,9 +65,9 @@ fun VehicleSelectionListView( onVehicleSelection: (VehicleProfileModel?, Int) -> Unit, onAddNewClick: () -> Unit, ) { - val isSelectViewVisible = remember { mutableStateOf(false) } - val isSelectedViewVisible = remember { mutableStateOf(true) } - val isListViewVisible = remember { mutableStateOf(false) } + val isSelectViewVisible = remember { mutableStateOf(vehicleList.isEmpty()) } + val isSelectedViewVisible = remember { mutableStateOf(vehicleList.isNotEmpty()) } + val isListViewVisible = remember { mutableStateOf(vehicleList.isEmpty()) } val selectedItem = remember { mutableStateOf(selectedVehicleId) @@ -131,7 +132,7 @@ fun VehicleSelectionListView( } } - /*Text( + Text( text = "ADD NEW", color = LightBlue, modifier = Modifier .fillMaxHeight() @@ -140,7 +141,7 @@ fun VehicleSelectionListView( .clickable { onAddNewClick() }, - )*/ + ) } } } diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/SettingsCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/SettingsCompose.kt similarity index 80% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/SettingsCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/SettingsCompose.kt index 7b1e912..706dd85 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/dashboardcompose/SettingsCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/dashboardcompose/SettingsCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.dashboardcompose +package org.eclipse.ecsp.ui.view.composes.dashboardcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -48,21 +48,21 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.google.gson.Gson -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.SELECTED_DEVICE -import com.harman.vehicleconnects.helper.fromJson -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.viewmodels.DashboardVM -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightGray -import com.harman.vehicleconnects.ui.theme.Orange -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.activities.VehicleProfileActivity -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.ShowAlertDialog +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.SELECTED_DEVICE +import org.eclipse.ecsp.helper.fromJson +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.viewmodels.DashboardVM +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightGray +import org.eclipse.ecsp.ui.theme.Orange +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.activities.VehicleProfileActivity +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.ShowAlertDialog +import org.eclipse.ecsp.userservice.service.UserServiceInterface /** * SettingsCompose file contains the compose UI function used to handle the setting screen @@ -77,6 +77,7 @@ fun SettingsMainCompose( vehicleProfileList: MutableState>?, openConfirmationDialog: MutableState?, showVehicleList: MutableState>>, + passwordChangeDialog: MutableState? ) { LaunchedEffect(Unit) { dashboardVM.setTopBarTitle(activity.getString(R.string.settings_text)) @@ -140,6 +141,38 @@ fun SettingsMainCompose( ) } + Row( + modifier = + Modifier + .background(White) + .fillMaxWidth() + .padding(top = 5.dp, start = 20.dp, end = 5.dp) + .heightIn(50.dp) + .clickable { + passwordChangeDialog?.value = true + }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Icon( + modifier = Modifier.padding(end = 10.dp), + imageVector = ImageVector.vectorResource(R.drawable.ic_account), + contentDescription = "password_change_ic", + tint = DarkGray, + ) + + Text( + modifier = + Modifier + .fillMaxWidth() + .padding(top = 13.dp) + .fillMaxHeight().testTag("password_change_text_tag"), + text = "Change Password", + color = Black, + fontSize = 16.sp, + ) + } + Text( modifier = Modifier @@ -164,14 +197,14 @@ fun SettingsMainCompose( .height(50.dp).testTag("vehicle_profile_tag") .clickable { showVehicleList.value = Pair(false, showVehicleList.value.second) - if (!deviceId.isNullOrEmpty()) { +// if (!deviceId.isNullOrEmpty()) { val intent = Intent(activity, VehicleProfileActivity::class.java) intent.putExtra(SELECTED_DEVICE, vehicleProfileList?.value?.get(deviceId)) activity.startActivity(intent) - } else - { - toastError(activity, "Please wait till the vehicle details are fetching.") - } +// } else +// { +// toastError(activity, "Please wait till the vehicle details are fetching.") +// } }, verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, @@ -416,18 +449,56 @@ fun SettingsMainCompose( } @Composable -fun Activity.ShowConfirmationDialogBox( +fun ShowConfirmationDialogBox( + userServiceInterface: UserServiceInterface, dashboardVM: DashboardVM, - openConfirmationDialog: MutableState?, + confirmationDialog: MutableState?, + title: String, message: String +) { + ShowAlertDialog( + title = title, + message = message, + onDismiss = { + confirmationDialog?.value = false + }, + ) { + dashboardVM.signOutClick(userServiceInterface) + confirmationDialog?.value = false + } +} + +@Composable +fun ShowChangePasswordConfirmationDialogBox( + dashboardVM: DashboardVM, + confirmationDialog: MutableState?, + title: String, message: String ) { ShowAlertDialog( - title = getString(R.string.sign_out_text), - message = getString(R.string.sign_out_sub_text), + title = title, + message = message, onDismiss = { - openConfirmationDialog?.value = false + confirmationDialog?.value = false }, ) { - dashboardVM.signOutClick() - openConfirmationDialog?.value = false + dashboardVM.setPasswordChangeTriggerValue(true) + confirmationDialog?.value = false } } + +@Composable +fun ShowPasswordChangeStatusDialogBox( + dialogMS: MutableState?, + title: String, message: String +) { + ShowAlertDialog( + title = title, + message = message, + onDismiss = { + dialogMS?.value = false + }, + ) { + dialogMS?.value = false + } +} + + diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt similarity index 87% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt index e7f439c..9a1edb0 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/EnterIMEICompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose +package org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -31,7 +31,6 @@ import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TextField @@ -50,13 +49,13 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.core.text.isDigitsOnly -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.MildGray -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.TextFieldState +import org.eclipse.ecsp.R +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.MildGray +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.TextFieldState /** * EnterIMEICompose file contains all the compose function related to IMEI entering screen @@ -65,7 +64,7 @@ import com.harman.vehicleconnects.ui.view.composes.TextFieldState @Composable fun Activity.TextFieldCompose(inputValue: TextFieldState = remember { TextFieldState() }) { Text( - text = getString(R.string.enter_imei_sub_text), + text = getString(R.string.enter_serial_sub_text), color = DarkGray, modifier = Modifier @@ -76,8 +75,8 @@ fun Activity.TextFieldCompose(inputValue: TextFieldState = remember { TextFieldS val textFieldPadding = 6.dp TextField( value = inputValue.textInput, - onValueChange = { if (it.isDigitsOnly()) inputValue.textInput = it }, - placeholder = { Text("IMEI", color = MildGray) }, + onValueChange = { inputValue.textInput = it }, + placeholder = { Text("Serial Number", color = MildGray) }, colors = TextFieldDefaults.colors( focusedTextColor = Black, @@ -98,7 +97,6 @@ fun Activity.TextFieldCompose(inputValue: TextFieldState = remember { TextFieldS Offset(size.width - textFieldPadding.toPx(), y), ) }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), ) } @@ -138,7 +136,7 @@ fun EnterIMEIDotImageCompose() { } @Composable -fun Activity.EnterIMEINextButtonCompose(onClick: () -> Unit) { +fun Activity.EnterSerialNumberNextButtonCompose(onClick: () -> Unit) { TextButton( onClick = { onClick() }, colors = diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt similarity index 89% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt index 4a99703..66b2158 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/deviceinstallationcompose/InstallationDeviceCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.deviceinstallationcompose +package org.eclipse.ecsp.ui.view.composes.deviceinstallationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -48,15 +48,15 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.navigation.NavController -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.models.viewmodels.DeviceAssociationVM -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.LightGray -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.TextFieldState +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.models.viewmodels.DeviceAssociationVM +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.LightGray +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.TextFieldState /** * InstallationDeviceCompose file contains device installation screen compose functions @@ -96,7 +96,7 @@ fun Activity.InstallDeviceMainScreenCompose( FindObdPortCompose() NextButtonCompose { // do click action - navController.navigate(AppConstants.ENTER_IMEI) { + navController.navigate(AppConstants.ENTER_SERIAL_NUM) { popUpTo(navController.graph.startDestinationId) launchSingleTop = true } @@ -169,12 +169,12 @@ fun DotImageCompose() { } @Composable -fun Activity.EnterImeiScreenCompose( +fun Activity.EnterSerialNumberScreenCompose( content: PaddingValues, deviceAssociationVM: DeviceAssociationVM?, ) { LaunchedEffect(Unit) { - deviceAssociationVM?.setTopBarTitle(getString(R.string.enter_imei_text)) + deviceAssociationVM?.setTopBarTitle(getString(R.string.enter_serial_text)) } val loading = deviceAssociationVM?.getLoadingStatus()?.observeAsState() Column( @@ -198,14 +198,14 @@ fun Activity.EnterImeiScreenCompose( verticalArrangement = Arrangement.Bottom, horizontalAlignment = Alignment.CenterHorizontally, ) { - EnterIMEINextButtonCompose { + EnterSerialNumberNextButtonCompose { if (inputValue.textInput.isNotEmpty()) { deviceAssociationVM?.setLoadingStatus(true) - deviceAssociationVM?.triggerImeiVerification(inputValue.textInput) + deviceAssociationVM?.triggerSerialNumberVerification(inputValue.textInput) } else { Toast.makeText( - this@EnterImeiScreenCompose, - "Enter IMEI number", + this@EnterSerialNumberScreenCompose, + "Enter Serial number", Toast.LENGTH_LONG, ).show() } diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/logincompose/LoginCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/logincompose/LoginCompose.kt similarity index 95% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/logincompose/LoginCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/logincompose/LoginCompose.kt index ba502c8..9607e62 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/logincompose/LoginCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/logincompose/LoginCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.logincompose +package org.eclipse.ecsp.ui.view.composes.logincompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -46,11 +46,11 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp -import com.harman.androidvehicleconnectsdk.environment.Environment -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.models.dataclass.EnvironmentListData -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.White +import org.eclipse.ecsp.environment.Environment +import org.eclipse.ecsp.R +import org.eclipse.ecsp.models.dataclass.EnvironmentListData +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.White /** * LoginCompose contains all the login screen related compose functions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/notificationcompose/NotificationCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/notificationcompose/NotificationCompose.kt similarity index 81% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/notificationcompose/NotificationCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/notificationcompose/NotificationCompose.kt index 3408740..4885362 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/notificationcompose/NotificationCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/notificationcompose/NotificationCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.notificationcompose +package org.eclipse.ecsp.ui.view.composes.notificationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -44,37 +44,37 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.LifecycleOwner -import com.harman.androidvehicleconnectsdk.notificationservice.model.AlertData -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.ALERT_ACCIDENT -import com.harman.vehicleconnects.helper.AppConstants.ALERT_AIRBAG_DEPLOY -import com.harman.vehicleconnects.helper.AppConstants.ALERT_BOUNDARY -import com.harman.vehicleconnects.helper.AppConstants.ALERT_BREAK_WARNING -import com.harman.vehicleconnects.helper.AppConstants.ALERT_CURFEW -import com.harman.vehicleconnects.helper.AppConstants.ALERT_DISTURBANCE -import com.harman.vehicleconnects.helper.AppConstants.ALERT_DONGLE_STATUS -import com.harman.vehicleconnects.helper.AppConstants.ALERT_FIRMWARE_DOWNLOADED -import com.harman.vehicleconnects.helper.AppConstants.ALERT_FIRMWARE_UPGRADE -import com.harman.vehicleconnects.helper.AppConstants.ALERT_IDLE -import com.harman.vehicleconnects.helper.AppConstants.ALERT_IMPACT_DETECTION -import com.harman.vehicleconnects.helper.AppConstants.ALERT_LOW_BATTERY -import com.harman.vehicleconnects.helper.AppConstants.ALERT_LOW_FUEL -import com.harman.vehicleconnects.helper.AppConstants.ALERT_OIL_PRESSURE_WARNING -import com.harman.vehicleconnects.helper.AppConstants.ALERT_SPEED -import com.harman.vehicleconnects.helper.AppConstants.ALERT_TIRE_PRESSURE_WARNING -import com.harman.vehicleconnects.helper.AppConstants.ALERT_TOW -import com.harman.vehicleconnects.helper.AppConstants.EPID_TPMS_ALERT -import com.harman.vehicleconnects.helper.AppConstants.GLOBAL_DOOR_LOCK -import com.harman.vehicleconnects.helper.AppConstants.SEATBELT_ALERT -import com.harman.vehicleconnects.helper.convertISO8601TimeToMillis -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.viewmodels.DashboardVM -import com.harman.vehicleconnects.models.viewmodels.NotificationVM -import com.harman.vehicleconnects.ui.theme.Gray -import com.harman.vehicleconnects.ui.theme.LightGray -import com.harman.vehicleconnects.ui.theme.MildGray -import com.harman.vehicleconnects.ui.theme.MildWhite +import org.eclipse.ecsp.notificationservice.model.AlertData +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.ALERT_ACCIDENT +import org.eclipse.ecsp.helper.AppConstants.ALERT_AIRBAG_DEPLOY +import org.eclipse.ecsp.helper.AppConstants.ALERT_BOUNDARY +import org.eclipse.ecsp.helper.AppConstants.ALERT_BREAK_WARNING +import org.eclipse.ecsp.helper.AppConstants.ALERT_CURFEW +import org.eclipse.ecsp.helper.AppConstants.ALERT_DISTURBANCE +import org.eclipse.ecsp.helper.AppConstants.ALERT_DONGLE_STATUS +import org.eclipse.ecsp.helper.AppConstants.ALERT_FIRMWARE_DOWNLOADED +import org.eclipse.ecsp.helper.AppConstants.ALERT_FIRMWARE_UPGRADE +import org.eclipse.ecsp.helper.AppConstants.ALERT_IDLE +import org.eclipse.ecsp.helper.AppConstants.ALERT_IMPACT_DETECTION +import org.eclipse.ecsp.helper.AppConstants.ALERT_LOW_BATTERY +import org.eclipse.ecsp.helper.AppConstants.ALERT_LOW_FUEL +import org.eclipse.ecsp.helper.AppConstants.ALERT_OIL_PRESSURE_WARNING +import org.eclipse.ecsp.helper.AppConstants.ALERT_SPEED +import org.eclipse.ecsp.helper.AppConstants.ALERT_TIRE_PRESSURE_WARNING +import org.eclipse.ecsp.helper.AppConstants.ALERT_TOW +import org.eclipse.ecsp.helper.AppConstants.EPID_TPMS_ALERT +import org.eclipse.ecsp.helper.AppConstants.GLOBAL_DOOR_LOCK +import org.eclipse.ecsp.helper.AppConstants.SEATBELT_ALERT +import org.eclipse.ecsp.helper.convertISO8601TimeToMillis +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.viewmodels.DashboardVM +import org.eclipse.ecsp.models.viewmodels.NotificationVM +import org.eclipse.ecsp.ui.theme.Gray +import org.eclipse.ecsp.ui.theme.LightGray +import org.eclipse.ecsp.ui.theme.MildGray +import org.eclipse.ecsp.ui.theme.MildWhite import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale @@ -238,7 +238,7 @@ private fun getAlertHistoryData( lifecycleOwner, isProgressBarLoading, deviceId, - AppConstants.ALERT_TYPES, + org.eclipse.ecsp.helper.AppConstants.ALERT_TYPES, alertList, since, until, diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt similarity index 83% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt index f4b28dc..3894a55 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationGridViewCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose +package org.eclipse.ecsp.ui.view.composes.remoteoperationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -31,27 +31,28 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.harman.vehicleconnects.helper.AppConstants.AJAR -import com.harman.vehicleconnects.helper.AppConstants.CLOSED -import com.harman.vehicleconnects.helper.AppConstants.LOCKED -import com.harman.vehicleconnects.helper.AppConstants.OFF -import com.harman.vehicleconnects.helper.AppConstants.ON -import com.harman.vehicleconnects.helper.AppConstants.OPENED -import com.harman.vehicleconnects.helper.AppConstants.PARTIAL_OPENED -import com.harman.vehicleconnects.helper.AppConstants.PLEASE_WAIT -import com.harman.vehicleconnects.helper.AppConstants.STARTED -import com.harman.vehicleconnects.helper.AppConstants.STOPPED -import com.harman.vehicleconnects.helper.AppConstants.UNLOCKED -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.MildGray +import org.eclipse.ecsp.helper.AppConstants.AJAR +import org.eclipse.ecsp.helper.AppConstants.CLOSED +import org.eclipse.ecsp.helper.AppConstants.LOCKED +import org.eclipse.ecsp.helper.AppConstants.OFF +import org.eclipse.ecsp.helper.AppConstants.ON +import org.eclipse.ecsp.helper.AppConstants.OPENED +import org.eclipse.ecsp.helper.AppConstants.PARTIAL_OPENED +import org.eclipse.ecsp.helper.AppConstants.PLEASE_WAIT +import org.eclipse.ecsp.helper.AppConstants.STARTED +import org.eclipse.ecsp.helper.AppConstants.STOPPED +import org.eclipse.ecsp.helper.AppConstants.UNLOCKED +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.MildGray /** * RemoteOperationGridViewCompose file contains RO grid view related compose functions @@ -59,6 +60,7 @@ import com.harman.vehicleconnects.ui.theme.MildGray */ @Composable fun RemoteOperationGridViewCompose( + isEnabled: Boolean, itemList: ArrayList?, onClickedItem: (RemoteOperationItem) -> Unit, ) { @@ -66,6 +68,7 @@ fun RemoteOperationGridViewCompose( columns = StaggeredGridCells.Fixed(3), Modifier .padding(10.dp) + .alpha(if (isEnabled) 1f else 0.5f) .testTag("lazy_grid_view_tag"), verticalItemSpacing = 10.dp, horizontalArrangement = Arrangement.spacedBy(10.dp), @@ -89,7 +92,7 @@ fun RemoteOperationGridViewCompose( .wrapContentSize() .testTag("grid_item_click_tag") .clickable { - if (item.statusText.lowercase() != PLEASE_WAIT.lowercase()) { + if (isEnabled && item.statusText.lowercase() != PLEASE_WAIT.lowercase()) { onClickedItem(item) } }, diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt similarity index 83% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt index 952f555..a73ca8e 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationMainScreen.kt @@ -1,4 +1,5 @@ -package com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose +package org.eclipse.ecsp.ui.view.composes.remoteoperationcompose + /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -22,16 +23,16 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.lifecycle.LifecycleOwner import com.google.gson.Gson -import com.harman.androidvehicleconnectsdk.roservice.model.RemoteOperationState -import com.harman.androidvehicleconnectsdk.userservice.model.UserProfile -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.fromJson -import com.harman.vehicleconnects.helper.isInternetAvailable -import com.harman.vehicleconnects.helper.toastError -import com.harman.vehicleconnects.models.dataclass.RemoteOperationItem -import com.harman.vehicleconnects.models.viewmodels.DashboardVM -import com.harman.vehicleconnects.models.viewmodels.RemoteOperationVM +import org.eclipse.ecsp.roservice.model.RemoteOperationState +import org.eclipse.ecsp.userservice.model.UserProfile +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.fromJson +import org.eclipse.ecsp.helper.isInternetAvailable +import org.eclipse.ecsp.helper.toastError +import org.eclipse.ecsp.models.dataclass.RemoteOperationItem +import org.eclipse.ecsp.models.viewmodels.DashboardVM +import org.eclipse.ecsp.models.viewmodels.RemoteOperationVM /** * RemoteOperationMainScreen contains RO main screen compose functions @@ -59,7 +60,10 @@ fun Activity.RemoteOperationScreen( Log.e("RO UPDATED", "Ro list updated") } - RemoteOperationGridViewCompose(lazyStaggeredGridList?.value) { + RemoteOperationGridViewCompose( + (selectedVehicleId?.value?.first != null && selectedVehicleId.value.first.isNotEmpty()), + lazyStaggeredGridList?.value + ) { if (isInternetAvailable(activity)) { if (selectedVehicleId?.value?.first != null && selectedVehicleId.value.first.isNotEmpty() && isProgressBarLoading?.value == false @@ -81,11 +85,11 @@ fun Activity.RemoteOperationScreen( AppConstants.ALARM -> { ShowAlertDialog( title = - if (openDialog.value.second.lowercase() == AppConstants.OFF.lowercase()) { - getString(R.string.alarm_confirm_activation_text) - } else { - getString(R.string.alarm_confirm_deactivation_text) - }, + if (openDialog.value.second.lowercase() == AppConstants.OFF.lowercase()) { + getString(R.string.alarm_confirm_activation_text) + } else { + getString(R.string.alarm_confirm_deactivation_text) + }, onDismiss = { closeAlertDialog(openDialog) }, @@ -120,11 +124,11 @@ fun Activity.RemoteOperationScreen( AppConstants.DOOR -> { ShowAlertDialog( title = - if (openDialog.value.second.lowercase() == AppConstants.LOCKED.lowercase()) { - getString(R.string.door_unlock_confirm_text) - } else { - getString(R.string.door_lock_confirm_text) - }, + if (openDialog.value.second.lowercase() == AppConstants.LOCKED.lowercase()) { + getString(R.string.door_unlock_confirm_text) + } else { + getString(R.string.door_lock_confirm_text) + }, onDismiss = { closeAlertDialog(openDialog) }, @@ -159,15 +163,15 @@ fun Activity.RemoteOperationScreen( AppConstants.ENGINE -> { ShowAlertDialog( title = - if (openDialog.value.second.lowercase() == - AppConstants.STOPPED.lowercase() - ) { - getString( - R.string.engin_start_confirm_text, - ) - } else { - getString(R.string.engin_stop_confirm_text) - }, + if (openDialog.value.second.lowercase() == + AppConstants.STOPPED.lowercase() + ) { + getString( + R.string.engin_start_confirm_text, + ) + } else { + getString(R.string.engin_stop_confirm_text) + }, onDismiss = { closeAlertDialog(openDialog) }, @@ -202,13 +206,13 @@ fun Activity.RemoteOperationScreen( AppConstants.TRUNK -> { ShowAlertDialog( title = - if (openDialog.value.second.lowercase() == AppConstants.LOCKED.lowercase()) { - getString( - R.string.trunk_opening_text, - ) - } else { - getString(R.string.trunk_closing_text) - }, + if (openDialog.value.second.lowercase() == AppConstants.LOCKED.lowercase()) { + getString( + R.string.trunk_opening_text, + ) + } else { + getString(R.string.trunk_closing_text) + }, onDismiss = { closeAlertDialog(openDialog) }, diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt similarity index 96% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt index 77be009..ad75b69 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/RemoteOperationPopUpCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose +package org.eclipse.ecsp.ui.view.composes.remoteoperationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -42,9 +42,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.White +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.White /** * RemoteOperationPopUpCompose contains RO pop compose functions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt similarity index 95% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt index 4bda8d3..a7cba69 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/remoteoperationcompose/WindowAndLightStateOptionCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose +package org.eclipse.ecsp.ui.view.composes.remoteoperationcompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -34,11 +34,11 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants -import com.harman.vehicleconnects.helper.AppConstants.PARTIAL_OPENED -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.LightBlue +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants +import org.eclipse.ecsp.helper.AppConstants.PARTIAL_OPENED +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.LightBlue /** * WindowsAndLightStateOptionCompose contains RO's Windows and Light state related compose functions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt similarity index 90% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt index 25234d4..1a5a027 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleNameEditCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.vehicleprofilecompose +package org.eclipse.ecsp.ui.view.composes.vehicleprofilecompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -28,7 +28,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TextField @@ -47,15 +46,15 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.viewmodels.VehicleProfileVM -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.LightBlue -import com.harman.vehicleconnects.ui.theme.LightGray -import com.harman.vehicleconnects.ui.theme.MildGray -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.TextFieldState +import org.eclipse.ecsp.R +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.viewmodels.VehicleProfileVM +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.LightBlue +import org.eclipse.ecsp.ui.theme.LightGray +import org.eclipse.ecsp.ui.theme.MildGray +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.TextFieldState /** * VehicleNameEditCompose contains Vehicle profile editing screen related compose functions diff --git a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt similarity index 94% rename from app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt rename to app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt index a670727..21f569f 100644 --- a/app/src/main/java/com/harman/vehicleconnects/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt +++ b/app/src/main/java/org/eclipse/ecsp/ui/view/composes/vehicleprofilecompose/VehicleProfileCompose.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects.ui.view.composes.vehicleprofilecompose +package org.eclipse.ecsp.ui.view.composes.vehicleprofilecompose /******************************************************************************** * Copyright (c) 2023-24 Harman International * @@ -37,17 +37,17 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavHostController -import com.harman.vehicleconnects.R -import com.harman.vehicleconnects.helper.AppConstants.ASSOCIATED -import com.harman.vehicleconnects.helper.AppConstants.ASSOCIATION_INITIATED -import com.harman.vehicleconnects.models.dataclass.VehicleProfileModel -import com.harman.vehicleconnects.models.viewmodels.VehicleProfileVM -import com.harman.vehicleconnects.ui.theme.Black -import com.harman.vehicleconnects.ui.theme.DarkGray -import com.harman.vehicleconnects.ui.theme.LightGray -import com.harman.vehicleconnects.ui.theme.MildWhite -import com.harman.vehicleconnects.ui.theme.White -import com.harman.vehicleconnects.ui.view.composes.remoteoperationcompose.ShowAlertDialog +import org.eclipse.ecsp.R +import org.eclipse.ecsp.helper.AppConstants.ASSOCIATED +import org.eclipse.ecsp.helper.AppConstants.ASSOCIATION_INITIATED +import org.eclipse.ecsp.models.dataclass.VehicleProfileModel +import org.eclipse.ecsp.models.viewmodels.VehicleProfileVM +import org.eclipse.ecsp.ui.theme.Black +import org.eclipse.ecsp.ui.theme.DarkGray +import org.eclipse.ecsp.ui.theme.LightGray +import org.eclipse.ecsp.ui.theme.MildWhite +import org.eclipse.ecsp.ui.theme.White +import org.eclipse.ecsp.ui.view.composes.remoteoperationcompose.ShowAlertDialog /** * VehicleProfileCompose contains vehicle profile screen related compose functions @@ -329,7 +329,7 @@ fun Activity.VehicleProfileMainCompose( .fillMaxWidth() .padding(top = 15.dp, start = 20.dp, end = 20.dp) .height(20.dp), - text = "IMEI", + text = "Serial Number", color = Black, fontSize = 17.sp, ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e8983f8..ffa5db0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,8 +6,8 @@ HELP ME FIND OBDII PORT IN MY VEHICLE Next Add Device - Enter IMEI - The IMEI number can be found on the back side of your device, or on the card included inside the packaging box. + Enter Serial Number + The Serial number can be found on the back side of your device, or on the card included inside the packaging box. SIGN IN SIGN UP Remote Control @@ -28,4 +28,8 @@ Save Remove Vehicle Remove all data received from the vehicle + Change Password + Confirm to trigger change password request + Successfully triggered password change request, you will get link on your email to change the password + Failed to trigger password change request \ No newline at end of file diff --git a/app/src/test/java/com/harman/vehicleconnects/ExampleUnitTest.kt b/app/src/test/java/org/eclipse/ecsp/ExampleUnitTest.kt similarity index 90% rename from app/src/test/java/com/harman/vehicleconnects/ExampleUnitTest.kt rename to app/src/test/java/org/eclipse/ecsp/ExampleUnitTest.kt index 86d8b7c..8b2ef0a 100644 --- a/app/src/test/java/com/harman/vehicleconnects/ExampleUnitTest.kt +++ b/app/src/test/java/org/eclipse/ecsp/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package com.harman.vehicleconnects +package org.eclipse.ecsp import org.junit.Assert.assertEquals import org.junit.Test diff --git a/build.gradle.kts b/build.gradle.kts index 2ffb45b..96a8bda 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,7 @@ buildscript { } } -group = "com.harman.androidvehicleconnectsdk" +group = "org.eclipse.ecsp" version = 1.0 project.allprojects { tasks.cyclonedxBom { diff --git a/eclipse-dash/dash.sh b/eclipse-dash/dash.sh index a6797b8..289a46c 100644 --- a/eclipse-dash/dash.sh +++ b/eclipse-dash/dash.sh @@ -6,7 +6,7 @@ chmod +x 'gradlew' echo 'Checking dependencies for SDK implemented sample app Module' -'./gradlew' 'app:dependencies' | 'grep' '-Poh' "(?<=\-\-\- ).*" | 'grep' '-Pv' "\([c\*]\)" | 'grep' '-Pv' "\([n\*]\)" | 'perl' '-pe' 's/([\w\.\-]+):([\w\.\-]+):(?:[\w\.\-]+ -> )?([\w\.\-]+).*$/$1:$2:$3/gmi;t' | 'sort' -u | 'grep' '-v' 'project :androidVehicleConnectSDK' | 'grep' '-v' 'com.google.android.gms:play-services-basement:16.0.1' | 'grep' '-v' 'com.google.android.gms:play-services-basement:18.3.0' | 'grep' '-v' 'com.google.android.gms:play-services-tasks:16.0.1' | 'grep' '-v' 'com.google.android.gms:play-services-tasks:18.1.0' > 'AppDependencies' +'./gradlew' 'app:dependencies' | 'grep' '-Poh' "(?<=\-\-\- ).*" | 'grep' '-Pv' "\([c\*]\)" | 'grep' '-Pv' "\([n\*]\)" | 'perl' '-pe' 's/([\w\.\-]+):([\w\.\-]+):(?:[\w\.\-]+ -> )?([\w\.\-]+).*$/$1:$2:$3/gmi;t' | 'sort' -u | 'grep' '-v' 'project :androidVehicleConnectSDK' | 'grep' '-v' 'com.google.android.gms:play-services-basement:16.0.1' | 'grep' '-v' 'com.google.android.gms:play-services-basement:18.3.0' | 'grep' '-v' 'com.google.android.gms:play-services-tasks:16.0.1' | 'grep' '-v' 'com.google.android.gms:play-services-tasks:18.1.0' | 'grep' '-v' 'com.google.android.datatransport:transport-api:3.0.0' | 'grep' '-v' 'com.google.android.gms:play-services-base:18.0.1' | 'grep' '-v' 'com.google.android.gms:play-services-basement:18.0.0' | 'grep' '-v' 'com.google.android.gms:play-services-cloud-messaging:17.2.0' | 'grep' '-v' 'com.google.android.gms:play-services-stats:17.0.2' | 'grep' '-v' 'com.google.android.gms:play-services-tasks:18.0.1' | 'grep' '-v' 'com.google.firebase:firebase-annotations:16.2.0' | 'grep' '-v' 'com.google.firebase:firebase-iid-interop:17.1.0' | 'grep' '-v' 'com.google.firebase:firebase-measurement-connector:19.0.0' > 'AppDependencies' echo 'Tool checking for SDK dependencies'