TP-54092 | Hard / Soft Upgrade before Login (#9320)

This commit is contained in:
Shivam Goyal
2024-01-11 20:34:55 +05:30
committed by GitHub
parent aed04b6af5
commit 9df8d6677a
2 changed files with 36 additions and 4 deletions

View File

@@ -7,8 +7,8 @@
package com.naviapp.appupdate.activities
import com.navi.naviwidgets.R as WidgetsR
import com.navi.design.R as DesignR
import com.navi.naviwidgets.R as WidgetsR
import android.content.Intent
import android.net.Uri
import android.os.Bundle
@@ -111,7 +111,7 @@ class UpdateAppActivity : BaseActivity(), View.OnClickListener {
override fun onBackPressed() {
if (getAppUpgradeDataFromIntent()?.softUpgrade == true) {
navigateToHome()
if (!isTaskRoot) finish() else navigateToHome()
} else {
finish()
}

View File

@@ -32,6 +32,7 @@ import com.navi.base.sharedpref.CommonPrefConstants.WHATS_APP_LOGIN_CONFIG
import com.navi.base.sharedpref.CommonPrefConstants.WHATS_APP_LOGIN_CONFIG_PARAMETERS
import com.navi.base.sharedpref.PreferenceManager
import com.navi.base.utils.BaseUtils
import com.navi.base.utils.orTrue
import com.navi.base.utils.orZero
import com.navi.common.firebasedb.FirebaseStatusType.SUCCESS
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
@@ -75,6 +76,7 @@ import com.navi.common.utils.getWifiName
import com.navi.common.utils.isInstalledInProfile
import com.navi.common.utils.isLastLocationMocked
import com.navi.common.utils.observeNonNull
import com.navi.common.utils.observeNullable
import com.navi.guarddog.datamanagement.securityManager.SecurityManager
import com.navi.naviwidgets.models.LottieFieldData
import com.navi.naviwidgets.utils.CURRENT_VERSION_IN_STORE
@@ -85,6 +87,7 @@ import com.naviapp.analytics.utils.NaviAnalytics.Companion.PRE_LOGIN_DEVICE_ID
import com.naviapp.analytics.utils.NaviAnalytics.Companion.PRE_LOGIN_DEVICE_ID_DETAILS
import com.naviapp.analytics.utils.NaviSDKHelper
import com.naviapp.app.NaviApplication
import com.naviapp.appupdate.activities.UpdateAppActivity
import com.naviapp.common.listeners.FragmentStateListener
import com.naviapp.common.navigator.NaviDeepLinkNavigator
import com.naviapp.common.navigator.ScreenNavigator
@@ -96,6 +99,7 @@ import com.naviapp.models.TrueProfileData
import com.naviapp.models.WhatsappLoginConfig
import com.naviapp.models.request.LoginType
import com.naviapp.models.request.OtpRequest
import com.naviapp.models.response.AppUpgradeResponse
import com.naviapp.models.response.Medium
import com.naviapp.models.response.NotificationSettings
import com.naviapp.models.response.OtpResponse
@@ -210,6 +214,11 @@ class RegistrationActivity :
onFragmentOpen(null)
}
analyticsTracker.trackLoginPageLaunch(source, redirectStatus)
fetchLoginSettings()
}
private fun fetchLoginSettings() {
configVM.fetchLoginSettings()
}
override fun onNewIntent(intent: Intent?) {
@@ -315,6 +324,28 @@ class RegistrationActivity :
handleDeeplinkLogin(it, LoginType.OTP_LESS.name)
}
}
observeLoginSettings()
}
private fun observeLoginSettings() {
configVM.loginSettings.observeNullable(this) {
it?.let { loginSetting ->
loginSetting.appUpgradeSettings?.let { appUpgradeSettings ->
shouldUpdateApp(appUpgradeSettings)
}
}
}
}
private fun shouldUpdateApp(appUpgradeSettings: AppUpgradeResponse) {
if (appUpgradeSettings.hardUpgrade.orTrue() || appUpgradeSettings.softUpgrade.orTrue()) {
val intent =
Intent(this, UpdateAppActivity::class.java).apply {
putExtra(UpdateAppActivity.APP_UPGRADE_DATA, appUpgradeSettings)
}
startActivity(intent)
if (appUpgradeSettings.hardUpgrade.orTrue()) finish()
}
}
private fun getFragment(screen: String, bundle: Bundle): Fragment {
@@ -437,8 +468,9 @@ class RegistrationActivity :
val gaId = PreferenceManager.getStringPreference(GOOGLE_ADVERTISING_ID)
val fcmToken = PreferenceManager.getStringPreference(FCM_TOKEN)
NaviTrackEvent.trackEventOnClickStream(
Constants.FCM_TOKEN_SENT_TO_SERVER, mapOf(
Constants.FCM_TOKEN to fcmToken.orEmpty()))
Constants.FCM_TOKEN_SENT_TO_SERVER,
mapOf(Constants.FCM_TOKEN to fcmToken.orEmpty())
)
val deviceDetail =
DeviceDetail(
deviceId = getAndroidDeviceId(),