diff --git a/CODEOWNERS b/CODEOWNERS index 6cf9adc266..ff62925578 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -5,7 +5,7 @@ /android/navi-mqtt/ @navi-android/personalisation-experience-codeowners /android/navi-money-manager/ @navi-android/personalisation-experience-codeowners /android/navi-analytics/ @navi-android/arc-codeowners -/android/application-platform/ @navi-android/arc-codeowners +/android/navi-ap/ @navi-android/arc-codeowners /android/benchmark/ @navi-android/arc-codeowners /android/navi-base/ @navi-android/arc-codeowners /android/navi-code/ @navi-android/arc-codeowners diff --git a/android/application-platform/.gitignore b/android/application-platform/.gitignore deleted file mode 100644 index aa724b7707..0000000000 --- a/android/application-platform/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -/build -/captures -.externalNativeBuild -.cxx -local.properties diff --git a/android/application-platform/app/build.gradle b/android/application-platform/app/build.gradle deleted file mode 100644 index f07693ea36..0000000000 --- a/android/application-platform/app/build.gradle +++ /dev/null @@ -1,76 +0,0 @@ -plugins { - alias libs.plugins.android.application - alias libs.plugins.firebase.crashlytics - alias libs.plugins.google.services - alias libs.plugins.hilt.android - alias libs.plugins.kotlin.android - alias libs.plugins.ksp -} - -android { - namespace 'com.applicationplatform' - compileSdk 35 - - defaultConfig { - applicationId "com.applicationplatform" - minSdk 24 - targetSdk 34 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - vectorDrawables { - useSupportLibrary true - } - } - - buildFeatures { - compose true - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - kotlinOptions { - jvmTarget = '17' - } - packaging { - resources { - excludes += '/META-INF/{AL2.0,LGPL2.1}' - } - } -} - -dependencies { - implementation project(":navi-ap") - implementation project(":navi-common") - implementation platform(libs.androidx.compose.bom) - implementation libs.androidx.activity.activityCompose - implementation libs.androidx.compose.material3 - implementation libs.androidx.compose.ui.graphics - implementation libs.androidx.compose.ui.toolingPreview - implementation libs.androidx.compose.ui.ui - implementation libs.androidx.core.ktx - implementation libs.androidx.lifecycle.runtime.ktx - implementation libs.androidx.multidex - implementation libs.dagger.hiltAndroid - - debugImplementation libs.androidx.compose.ui.test.manifest - debugImplementation libs.androidx.compose.ui.tooling - - androidTestImplementation platform(libs.androidx.compose.bom) - androidTestImplementation libs.androidx.compose.ui.test.junit4 - androidTestImplementation libs.androidx.test.espresso.core - androidTestImplementation libs.androidx.test.junit - - testImplementation libs.junit - - ksp libs.androidx.hilt.compiler - ksp libs.dagger.hiltCompiler -} diff --git a/android/application-platform/app/proguard-rules.pro b/android/application-platform/app/proguard-rules.pro deleted file mode 100644 index 481bb43481..0000000000 --- a/android/application-platform/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/android/application-platform/app/src/androidTest/java/com/applicationplatform/ExampleInstrumentedTest.kt b/android/application-platform/app/src/androidTest/java/com/applicationplatform/ExampleInstrumentedTest.kt deleted file mode 100644 index 1d0fe7eb0c..0000000000 --- a/android/application-platform/app/src/androidTest/java/com/applicationplatform/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * * Copyright © 2024 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform - -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.platform.app.InstrumentationRegistry -import org.junit.Assert.* -import org.junit.Test -import org.junit.runner.RunWith - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.applicationplatform", appContext.packageName) - } -} diff --git a/android/application-platform/app/src/google-services.json b/android/application-platform/app/src/google-services.json deleted file mode 100644 index f376443efd..0000000000 --- a/android/application-platform/app/src/google-services.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "project_info": { - "project_number": "679085041776", - "firebase_url": "https://navi-qa-default-rtdb.asia-southeast1.firebasedatabase.app", - "project_id": "navi-qa", - "storage_bucket": "navi-qa.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:679085041776:android:a1be795c0b472af6546cb5", - "android_client_info": { - "package_name": "com.applicationplatform" - } - }, - "oauth_client": [ - { - "client_id": "679085041776-433aj023nobf5g9u08ggpqfhg4q9flm1.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyDNSiKfkive7IietLqcsnoNLVER3OvHwrc" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "679085041776-433aj023nobf5g9u08ggpqfhg4q9flm1.apps.googleusercontent.com", - "client_type": 3 - }, - { - "client_id": "679085041776-5e456o4prchtmblcl6r2vs7nrtuo5tvc.apps.googleusercontent.com", - "client_type": 2, - "ios_info": { - "bundle_id": "com.gonavi.app.debug" - } - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:679085041776:android:e2fdb172f0bd6df6546cb5", - "android_client_info": { - "package_name": "com.naviapp.fps.dev" - } - }, - "oauth_client": [ - { - "client_id": "679085041776-433aj023nobf5g9u08ggpqfhg4q9flm1.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyDNSiKfkive7IietLqcsnoNLVER3OvHwrc" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "679085041776-433aj023nobf5g9u08ggpqfhg4q9flm1.apps.googleusercontent.com", - "client_type": 3 - }, - { - "client_id": "679085041776-5e456o4prchtmblcl6r2vs7nrtuo5tvc.apps.googleusercontent.com", - "client_type": 2, - "ios_info": { - "bundle_id": "com.gonavi.app.debug" - } - } - ] - } - } - } - ], - "configuration_version": "1" -} \ No newline at end of file diff --git a/android/application-platform/app/src/main/AndroidManifest.xml b/android/application-platform/app/src/main/AndroidManifest.xml deleted file mode 100644 index 5912c98a13..0000000000 --- a/android/application-platform/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/android/application-platform/app/src/main/assets/navi_new_loader.json b/android/application-platform/app/src/main/assets/navi_new_loader.json deleted file mode 100644 index d87a154623..0000000000 --- a/android/application-platform/app/src/main/assets/navi_new_loader.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.9.0","fr":30,"ip":0,"op":30,"w":40,"h":40,"nm":"Loader_40*40px","ddd":0,"assets":[{"id":"comp_0","nm":"Loader 500x500","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":29,"s":[360]}],"ix":10},"p":{"a":0,"k":[250.125,249.875,0],"ix":2,"l":2},"a":{"a":0,"k":[241.545,241.544,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.359,0],[0,14.359],[104.446,0],[0,14.359],[-14.359,0],[-45.599,-45.599],[0,-64.485]],"o":[[-14.359,0],[0,-104.446],[-14.359,0],[0,-14.359],[64.485,0],[45.598,45.598],[0,14.359]],"v":[[107.71,133.71],[81.71,107.71],[-107.71,-81.71],[-133.71,-107.71],[-107.71,-133.71],[63,-62.999],[133.71,107.71]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.122,0,0.165,0.164,0.122,0,0.165,0.327,0.122,0,0.165,0.664,0.122,0,0.165,1,0.122,0,0.165,0,0,0.5,0.5,1,1],"ix":9}},"s":{"a":0,"k":[-120.719,-108.977],"ix":5},"e":{"a":0,"k":[111.406,131.836],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[349.13,133.96],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[104.446,0],[0,-104.446],[-104.446,0],[0,104.446]],"o":[[-104.446,0],[0,104.446],[104.446,0],[0,-104.446]],"v":[[0,-189.419],[-189.42,0.001],[0,189.42],[189.42,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[64.485,0],[45.598,45.598],[0,64.485],[-45.599,45.599],[-64.485,0],[-45.598,-45.598],[0,-64.485],[45.599,-45.598]],"o":[[-64.485,0],[-45.599,-45.598],[0,-64.485],[45.598,-45.598],[64.485,0],[45.599,45.599],[0,64.485],[-45.598,45.598]],"v":[[0,241.42],[-170.709,170.71],[-241.42,0.001],[-170.709,-170.709],[0,-241.419],[170.709,-170.709],[241.42,0.001],[170.709,170.71]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627656,0,0.164705887437,1],"ix":4},"o":{"a":0,"k":25,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[241.42,241.67],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 3 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.125,249.875,0],"ix":2,"l":2},"a":{"a":0,"k":[241.545,241.544,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[104.446,0],[0,-104.446],[-104.446,0],[0,104.446]],"o":[[-104.446,0],[0,104.446],[104.446,0],[0,-104.446]],"v":[[0,-189.419],[-189.42,0.001],[0,189.42],[189.42,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[64.485,0],[45.598,45.598],[0,64.485],[-45.599,45.599],[-64.485,0],[-45.598,-45.598],[0,-64.485],[45.599,-45.598]],"o":[[-64.485,0],[-45.599,-45.598],[0,-64.485],[45.598,-45.598],[64.485,0],[45.599,45.599],[0,64.485],[-45.598,45.598]],"v":[[0,241.42],[-170.709,170.71],[-241.42,0.001],[-170.709,-170.709],[0,-241.419],[170.709,-170.709],[241.42,0.001],[170.709,170.71]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[241.42,241.67],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":25,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Loader 500x500","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20,20,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[7.7,7.7,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":30,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/MainActivity.kt b/android/application-platform/app/src/main/java/com/applicationplatform/MainActivity.kt deleted file mode 100644 index e9f3e3ec41..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/MainActivity.kt +++ /dev/null @@ -1,190 +0,0 @@ -/* - * - * * Copyright © 2024-2025 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform - -import android.Manifest -import android.content.Intent -import android.os.Build -import android.os.Bundle -import android.widget.Toast -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.annotation.RequiresApi -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.Button -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import com.applicationplatform.ui.theme.ApplicationPlatformTheme -import com.navi.ap.common.ui.ApplicationPlatformActivity -import com.navi.ap.network.model.ApplicationRequestBody -import com.navi.ap.utils.retrofitService -import com.navi.base.sharedpref.PreferenceManager -import com.navi.base.utils.BaseUtils -import com.navi.common.managers.PermissionsManager -import kotlinx.coroutines.launch - -class MainActivity : ComponentActivity() { - - private var permissionsManager: PermissionsManager? = null - private val notificationPermissionShown = "NOTIFICATION_PERMISSION_SHOWN" - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - ApplicationPlatformTheme { - var showProgressBar by remember { mutableStateOf(false) } - var applicationType = remember { "PL" } - var sessionToken = remember { BaseUtils.getSessionToken().orEmpty() } - val coroutineScope = rememberCoroutineScope() - - if (showProgressBar) { - Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { - CircularProgressIndicator() - } - } else { - Content( - applicationType, - sessionToken, - onApplicationTypeChanged = { applicationType = it }, - onSessionTokenChanged = { sessionToken = it }, - onButtonClick = { - if (sessionToken.isEmpty()) { - Toast.makeText( - applicationContext, - "Enter Session Token", - Toast.LENGTH_LONG, - ) - .show() - } else if (applicationType.isEmpty()) { - Toast.makeText( - applicationContext, - "Enter Application Type", - Toast.LENGTH_LONG, - ) - .show() - } else { - coroutineScope.launch { - BaseUtils.saveSessionToken(sessionToken) - showProgressBar = true - val response = - retrofitService() - .createApplicationAndGetCta( - applicationType = applicationType, - verticalType = applicationType, - applicationRequestBody = - ApplicationRequestBody( - "CUSTOMER", - applicationType, - isScreenCtaRequired = true, - isScreenDefinitionRequired = false, - applicationFields = null, - ), - ) - showProgressBar = false - if (response.isSuccessful) { - response.body()?.data?.currentScreenCta?.cta?.let { - val intent = - Intent( - this@MainActivity, - ApplicationPlatformActivity::class.java, - ) - it.parameters?.forEach { keyValue -> - intent.putExtra(keyValue.key, keyValue.value) - } - startActivity(intent) - } - } else { - Toast.makeText( - applicationContext, - "Something went wrong", - Toast.LENGTH_SHORT, - ) - .show() - } - } - } - }, - ) - } - } - } - permissionsManager = PermissionsManager(this) - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - showNotificationPermission() - } - } - - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - private fun showNotificationPermission() { - val listOfPermission = java.util.ArrayList() - listOfPermission.add(Manifest.permission.POST_NOTIFICATIONS) - - if ( - permissionsManager?.hasPermissions(listOfPermission.toTypedArray()) == false && - BaseUtils.isUserLoggedIn() && - PreferenceManager.getBooleanPreference(notificationPermissionShown, false).not() - ) { - PreferenceManager.setBooleanPreference(notificationPermissionShown, true) - permissionsManager?.requestPermissions(listOfPermission.toTypedArray()) - } - } -} - -@Composable -fun Content( - appType: String, - appId: String, - onButtonClick: () -> Unit, - onApplicationTypeChanged: (value: String) -> Unit, - onSessionTokenChanged: (value: String) -> Unit, -) { - - var applicationType by remember { mutableStateOf(appType) } - var applicationId by remember { mutableStateOf(appId) } - - Column( - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(16.dp, Alignment.CenterVertically), - modifier = Modifier.fillMaxSize(), - ) { - OutlinedTextField( - value = applicationId, - placeholder = { Text(text = "Enter Application Id", color = Color.Gray) }, - onValueChange = { - applicationId = it - onSessionTokenChanged(it) - }, - ) - - OutlinedTextField( - value = applicationType, - placeholder = { Text(text = "Application Type") }, - onValueChange = { - applicationType = it - onApplicationTypeChanged(it) - }, - ) - - Button(onClick = { onButtonClick() }) { Text(text = "Next") } - } -} diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/MainApplication.kt b/android/application-platform/app/src/main/java/com/applicationplatform/MainApplication.kt deleted file mode 100644 index 96248bdfe1..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/MainApplication.kt +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * * Copyright © 2024-2025 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform - -import androidx.multidex.MultiDexApplication -import com.google.firebase.Firebase -import com.google.firebase.FirebaseApp -import com.google.firebase.remoteconfig.remoteConfig -import com.navi.alfred.utils.AlfredConstants -import com.navi.analytics.model.AnalyticsConfiguration -import com.navi.analytics.model.AppInfo -import com.navi.analytics.utils.NaviTrackEvent -import com.navi.base.sharedpref.CommonPrefConstants -import com.navi.base.sharedpref.PreferenceManager -import com.navi.base.utils.BaseUtils -import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper -import com.navi.common.uitron.util.UiTronDependencyProvider -import com.navi.uitron.UiTronSdkManager -import dagger.hilt.android.HiltAndroidApp -import java.lang.reflect.Modifier - -@HiltAndroidApp -class MainApplication : MultiDexApplication() { - - val userId = "e1acee0d-931f-4720-b867-c9096a713299" - - val refreshToken = "20231019135555206319525462016000" - - val versionName = "4.0.17" - val versionCode = "354" - - override fun onCreate() { - super.onCreate() - UiTronSdkManager.init(UiTronDependencyProvider(this)) - instance = this - FirebaseApp.initializeApp(this) - initializeRemoteConfig() - - PreferenceManager.init(this) - NaviSDKHelper.init(this) - try { - NaviTrackEvent.appInit( - this, - AnalyticsConfiguration( - appInfo = AppInfo("getAppName()", versionName, appVersionCode = versionCode), - appsFlyerKey = "BuildConfig.APPSFLYER_KEY", - flavor = "BuildConfig.FLAVOR", - alfredKey = "BuildConfig.ALFRED_API_KEY", - disableAlfredLogs = - FirebaseRemoteConfigHelper.getBoolean(AlfredConstants.DISABLE_ALFRED_LOGS), - ), - ) - - PreferenceManager.setStringPreference(CommonPrefConstants.USER_EXTERNAL_ID, userId) - BaseUtils.saveRefreshToken(refreshToken) - } catch (e: Exception) { - e.printStackTrace() - } - } - - private fun initializeRemoteConfig() { - val field = FirebaseRemoteConfigHelper::class.java.getDeclaredField("remoteConfig") - field.isAccessible = true // Make the field accessible - - if (Modifier.isPrivate(field.modifiers)) { - field.isAccessible = true // Set accessibility if it's a private field - } - - field.set(null, Firebase.remoteConfig) // null because it's a static field - } - - companion object { - lateinit var instance: MainApplication - } -} diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/NaviSDKHelper.kt b/android/application-platform/app/src/main/java/com/applicationplatform/NaviSDKHelper.kt deleted file mode 100644 index 79033975b3..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/NaviSDKHelper.kt +++ /dev/null @@ -1,158 +0,0 @@ -/* - * - * * Copyright © 2024-2025 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform - -import android.app.Activity -import android.app.ActivityManager -import android.app.Application -import android.content.Context -import android.os.Build -import android.os.Bundle -import android.os.Process -import android.webkit.WebView -import com.google.firebase.auth.FirebaseAuth -import com.navi.analytics.model.AnalyticsConfiguration -import com.navi.analytics.model.AppInfo -import com.navi.analytics.utils.NaviTrackEvent -import com.navi.base.deeplink.listener.DeepLinkListener -import com.navi.base.model.CtaData -import com.navi.base.sharedpref.CommonPrefConstants -import com.navi.base.sharedpref.PreferenceManager -import com.navi.base.utils.BaseUtils -import com.navi.common.CommonLibManager -import com.navi.common.managers.UserManager -import com.navi.common.utils.CommonUtils -import com.navi.common.utils.getSessionId -import com.navi.common.utils.updateSessionId -import timber.log.Timber - -object NaviSDKHelper { - fun init(naviApplication: MainApplication) { - val currentProcess = getCurrentProcess(naviApplication) - if (currentProcess != naviApplication.packageName) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - WebView.setDataDirectorySuffix(Application.getProcessName()) - } - } else { - NaviTrackEvent.appInit( - naviApplication, - AnalyticsConfiguration( - appInfo = - AppInfo( - "getAppName()", - "BuildConfig.VERSION_NAME", - appVersionCode = "10000", - ), - appsFlyerKey = "BuildConfig.APPSFLYER_KEY", - alfredKey = "BuildConfig.ALFRED_API_KEY", - flavor = "BuildConfig.FLAVOR", - disableAlfredLogs = true, - ), - ) - CommonLibManager.init( - application = naviApplication, - listener = - object : DeepLinkListener { - override fun fetchBranchSDKData( - activity: Activity, - deeplink: String, - clearTask: Boolean?, - finish: Boolean?, - onRedirectListener: () -> Unit, - ) {} - - override fun navigateTo( - activity: Activity?, - ctaData: CtaData, - finish: Boolean?, - bundle: Bundle?, - needsResult: Boolean?, - requestCode: Int?, - clearTask: Boolean?, - ) {} - }, - baseUrl = getBaseUrl(), - appVersionName = "4.0.3", - appVersionCode = "10000", - applicationId = "navi-ap", - flavor = "QA", - sslPinningKey = "sha256/nUU7NjGrGo/mxijjsX+MHerUbpIHBidF8LAYOEPFWA8=", - ) - setupAnalyticsData(naviApplication) - } - } - - fun getBaseUrl(): String { - return "https://qa-sa.navi.com/" - } - - private fun setupAnalyticsData(naviApplication: MainApplication) { - setDeviceIdIfUserNotLoggedIn() - setSessionId(naviApplication) - CommonUtils.getUserLocation()?.let { userLocation -> - userLocation.latitude?.toDoubleOrNull()?.let { latitude -> - userLocation.longitude?.toDoubleOrNull()?.let { longitude -> - setLocation(latitude, longitude) - } - } - } - } - - fun setUserId(id: String) { - // DeeplinkManager.setCustomerId(id) - NaviTrackEvent.setUserId(id) - } - - fun setSessionId(naviApplication: MainApplication) { - updateSessionId(naviApplication) - NaviTrackEvent.setSessionId(getSessionId().orEmpty()) - } - - private fun setDeviceIdIfUserNotLoggedIn() { - try { - val externalCustomerId = - PreferenceManager.getStringPreference(CommonPrefConstants.USER_EXTERNAL_ID) - if (externalCustomerId.isNullOrEmpty()) { - setUserId(BaseUtils.getDeviceId(MainApplication.instance.applicationContext)) - } else { - setUserId(externalCustomerId) - } - } catch (ex: Exception) { - Timber.e(ex) - } - } - - fun logoutUser(context: Context) { - NaviTrackEvent.logoutUser() - FirebaseAuth.getInstance().signOut() - UserManager.clearUser() - } - - fun setLocation(latitude: Double, longitude: Double) { - NaviTrackEvent.trackLocation(latitude, longitude) - } - - fun setAdvertisingId(googleAdvertisingId: String) { - NaviTrackEvent.setAdvertisingId(googleAdvertisingId) - } - - private fun getCurrentProcess(context: Context): String? { - try { - val am = - context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager ?: return null - val processInfos = am.runningAppProcesses ?: emptyList() - val myPid = Process.myPid() - for (info in processInfos) { - if (info.pid == myPid) { - return info.processName - } - } - } catch (e: Exception) {} - return null - } -} diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Color.kt b/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Color.kt deleted file mode 100644 index f70c9fa950..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Color.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - * * Copyright © 2024 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform.ui.theme - -import androidx.compose.ui.graphics.Color - -val Purple80 = Color(0xFFD0BCFF) -val PurpleGrey80 = Color(0xFFCCC2DC) -val Pink80 = Color(0xFFEFB8C8) - -val Purple40 = Color(0xFF6650a4) -val PurpleGrey40 = Color(0xFF625b71) -val Pink40 = Color(0xFF7D5260) diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Theme.kt b/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Theme.kt deleted file mode 100644 index 2a1990432a..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Theme.kt +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * * Copyright © 2024-2025 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform.ui.theme - -import android.app.Activity -import android.os.Build -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.darkColorScheme -import androidx.compose.material3.dynamicDarkColorScheme -import androidx.compose.material3.dynamicLightColorScheme -import androidx.compose.material3.lightColorScheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect -import androidx.compose.ui.graphics.toArgb -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalView -import androidx.core.view.WindowCompat - -private val DarkColorScheme = - darkColorScheme(primary = Purple80, secondary = PurpleGrey80, tertiary = Pink80) - -private val LightColorScheme = - lightColorScheme( - primary = Purple40, - secondary = PurpleGrey40, - tertiary = Pink40, - - /* Other default colors to override - background = Color(0xFFFFFBFE), - surface = Color(0xFFFFFBFE), - onPrimary = Color.White, - onSecondary = Color.White, - onTertiary = Color.White, - onBackground = Color(0xFF1C1B1F), - onSurface = Color(0xFF1C1B1F), - */ - ) - -@Composable -fun ApplicationPlatformTheme( - darkTheme: Boolean = isSystemInDarkTheme(), - // Dynamic color is available on Android 12+ - dynamicColor: Boolean = true, - content: @Composable () -> 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) -} diff --git a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Type.kt b/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Type.kt deleted file mode 100644 index 0ba5bf7fff..0000000000 --- a/android/application-platform/app/src/main/java/com/applicationplatform/ui/theme/Type.kt +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * * Copyright © 2024-2025 by Navi Technologies Limited - * * All rights reserved. Strictly confidential - * - */ - -package com.applicationplatform.ui.theme - -import androidx.compose.material3.Typography -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp - -// Set of Material typography styles to start with -val Typography = - Typography( - bodyLarge = - TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp, - ) - /* Other default text styles to override - titleLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp - ), - labelSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp - ) - */ - ) diff --git a/android/application-platform/app/src/main/res/drawable/ic_launcher_background.xml b/android/application-platform/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cbf..0000000000 --- a/android/application-platform/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/android/application-platform/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/application-platform/app/src/main/res/drawable/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d1146..0000000000 --- a/android/application-platform/app/src/main/res/drawable/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 6f3b755bf5..0000000000 --- a/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 6f3b755bf5..0000000000 --- a/android/application-platform/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c209e78ecd..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index b2dfe3d1ba..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 4f0f1d64e5..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp deleted file mode 100644 index 62b611da08..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index 948a3070fe..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index 1b9a6956b3..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index 28d4b77f9f..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9287f50836..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d6427e6..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9126ae37cb..0000000000 Binary files a/android/application-platform/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/android/application-platform/app/src/main/res/values/colors.xml b/android/application-platform/app/src/main/res/values/colors.xml deleted file mode 100644 index f8c6127d32..0000000000 --- a/android/application-platform/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF - \ No newline at end of file diff --git a/android/application-platform/app/src/main/res/values/strings.xml b/android/application-platform/app/src/main/res/values/strings.xml deleted file mode 100644 index 6280dfb45b..0000000000 --- a/android/application-platform/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Application Platform - \ No newline at end of file diff --git a/android/application-platform/app/src/main/res/values/themes.xml b/android/application-platform/app/src/main/res/values/themes.xml deleted file mode 100644 index e7da425eb2..0000000000 --- a/android/application-platform/app/src/main/res/values/themes.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - -