diff --git a/android/app/build.gradle b/android/app/build.gradle index de42d6641b..311b86ed53 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -23,7 +23,7 @@ android { defaultConfig { applicationId "com.naviapp" - minSdk 21 + minSdk 23 targetSdk 33 versionCode VERSION_CODE versionName VERSION_NAME diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index d605af6ac1..8d1c3f56b2 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -12,7 +12,7 @@ - diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 93d4e0ea76..1019996bef 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -10,9 +10,6 @@ - diff --git a/android/app/src/main/java/com/naviapp/common/customview/NewProgressHeader.kt b/android/app/src/main/java/com/naviapp/common/customview/NewProgressHeader.kt index 44fc9d3930..ee412cbbfd 100644 --- a/android/app/src/main/java/com/naviapp/common/customview/NewProgressHeader.kt +++ b/android/app/src/main/java/com/naviapp/common/customview/NewProgressHeader.kt @@ -9,7 +9,6 @@ package com.naviapp.common.customview import com.navi.common.R as CommonR import android.content.Context -import android.os.Build import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -81,9 +80,7 @@ class NewProgressHeader(context: Context, attrs: AttributeSet?) : ConstraintLayo IconUtils.updateIcon(it, binding.backIv) } styleResId?.let { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - binding.titleTv.setTextAppearance(it) - } + binding.titleTv.setTextAppearance(it) } val constraintSet = ConstraintSet() diff --git a/android/app/src/main/java/com/naviapp/common/customview/NoteView.kt b/android/app/src/main/java/com/naviapp/common/customview/NoteView.kt index bbe62a7757..4d93e0585d 100644 --- a/android/app/src/main/java/com/naviapp/common/customview/NoteView.kt +++ b/android/app/src/main/java/com/naviapp/common/customview/NoteView.kt @@ -8,7 +8,6 @@ package com.naviapp.common.customview import android.content.Context -import android.os.Build import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -35,9 +34,7 @@ class NoteView(context: Context, attrs: AttributeSet?) : ConstraintLayout(contex binding.infoTv.text = it } styleResId?.let { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - binding.infoTv.setTextAppearance(it) - } + binding.infoTv.setTextAppearance(it) } iconCode?.let { IconUtils.updateIcon(it, binding.iconIv) diff --git a/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt b/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt index 6297a0a766..55917fd988 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/activity/HomePageActivity.kt @@ -650,7 +650,7 @@ class HomePageActivity : } private fun observeNetworkConnectivity() { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { homeVM.connectivityObserverHolder.collect { diff --git a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeVM.kt b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeVM.kt index 9427ed9056..f42b9acf2e 100644 --- a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeVM.kt +++ b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeVM.kt @@ -218,7 +218,7 @@ constructor( viewModelScope.launch { getActionCallback().collect { onActionTriggered(it) } } - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { viewModelScope.launch(Dispatchers.IO) { connectivityObserver.observe().collect { _connectivityObserverHolder.emit(it) } } @@ -587,7 +587,7 @@ constructor( if (!response.isValidResponse()) { if ( - Build.VERSION.SDK_INT > Build.VERSION_CODES.M && + Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && !connectivityObserver.isInternetConnected() ) { _connectivityObserverHolder.emit(ConnectivityObserver.Status.Unavailable) diff --git a/android/app/src/main/java/com/naviapp/personalloan/getloan/creditAssignment/adapters/ContactListAdapter.kt b/android/app/src/main/java/com/naviapp/personalloan/getloan/creditAssignment/adapters/ContactListAdapter.kt index 4f266d2536..9dd5c6abbb 100644 --- a/android/app/src/main/java/com/naviapp/personalloan/getloan/creditAssignment/adapters/ContactListAdapter.kt +++ b/android/app/src/main/java/com/naviapp/personalloan/getloan/creditAssignment/adapters/ContactListAdapter.kt @@ -9,12 +9,10 @@ package com.naviapp.personalloan.getloan.creditAssignment.adapters import android.content.Context import android.content.res.ColorStateList -import android.os.Build import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import androidx.core.widget.CompoundButtonCompat import androidx.recyclerview.widget.RecyclerView import com.navi.base.utils.isNull import com.navi.base.utils.isValidIndex @@ -120,15 +118,8 @@ class ContactListAdapter( } private fun changeCheckboxColor(holder: ContactListVH, color: Int) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - CompoundButtonCompat.setButtonTintList( - holder.binding.itemCheckbox, - ColorStateList.valueOf(color) - ) - } else { - holder.binding.itemCheckbox.buttonTintList = - ColorStateList.valueOf(color) - } + holder.binding.itemCheckbox.buttonTintList = + ColorStateList.valueOf(color) } override fun getItemCount(): Int { diff --git a/android/app/src/main/java/com/naviapp/react_native/ReactActivity.kt b/android/app/src/main/java/com/naviapp/react_native/ReactActivity.kt index e3c6b64b27..3be3b25d7f 100644 --- a/android/app/src/main/java/com/naviapp/react_native/ReactActivity.kt +++ b/android/app/src/main/java/com/naviapp/react_native/ReactActivity.kt @@ -3,7 +3,6 @@ package com.naviapp.react_native import android.annotation.SuppressLint import android.content.Intent import android.net.Uri -import android.os.Build import android.os.Bundle import android.provider.Settings import android.text.TextUtils @@ -39,7 +38,7 @@ class ReactActivity : BaseActivity(), DefaultHardwareBackBtnHandler, RequestToCa override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(null) overridePendingTransition(0, 0) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && BuildConfig.DEBUG && !TextUtils.equals( + if (BuildConfig.DEBUG && !TextUtils.equals( CommonLibManager.buildConfigDetails.flavor, PROD ).orFalse() @@ -76,10 +75,8 @@ class ReactActivity : BaseActivity(), DefaultHardwareBackBtnHandler, RequestToCa override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == OVERLAY_PERMISSION_REQ_CODE) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (!Settings.canDrawOverlays(this)) { - // SYSTEM_ALERT_WINDOW permission not granted - } + if (!Settings.canDrawOverlays(this)) { + // SYSTEM_ALERT_WINDOW permission not granted } } reactInstanceManager.onActivityResult(this, requestCode, resultCode, data) diff --git a/android/app/src/main/java/com/naviapp/receiver/WifiTrackerBaseActivity.kt b/android/app/src/main/java/com/naviapp/receiver/WifiTrackerBaseActivity.kt index a2aab1515a..583a690db2 100644 --- a/android/app/src/main/java/com/naviapp/receiver/WifiTrackerBaseActivity.kt +++ b/android/app/src/main/java/com/naviapp/receiver/WifiTrackerBaseActivity.kt @@ -10,9 +10,7 @@ package com.naviapp.receiver import android.Manifest import android.content.Context import android.content.IntentFilter -import android.content.pm.PackageManager import android.net.wifi.WifiManager -import android.os.Build import android.os.Bundle import com.navi.base.sharedpref.PreferenceManager import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper @@ -62,33 +60,25 @@ abstract class WifiTrackerBaseActivity : BaseActivity() { if(this !is PermissionV2LocExpActivity){ return } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if ( - permissionsManager.hasPermissions( - arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) - ) || - permissionsManager.hasPermissions( - arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION) - ) - ) { - wifiManager?.startScan() - } - } else { + if ( + permissionsManager.hasPermissions( + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) + ) || + permissionsManager.hasPermissions( + arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION) + ) + ) { wifiManager?.startScan() } } else { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if ( - permissionsManager.hasPermissions( - arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) - ) || - permissionsManager.hasPermissions( - arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION) - ) - ) { - wifiManager?.startScan() - } - } else { + if ( + permissionsManager.hasPermissions( + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) + ) || + permissionsManager.hasPermissions( + arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION) + ) + ) { wifiManager?.startScan() } } diff --git a/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt b/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt index be07fb35f3..036993658b 100644 --- a/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt +++ b/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt @@ -533,7 +533,7 @@ class RegistrationActivity : } override fun onFragmentOpen(type: String?) { - if (getOsVersion() <= Build.VERSION_CODES.M) { + if (getOsVersion() < Build.VERSION_CODES.N) { registrationSharedVM.setLoginViaMobile(true) return } diff --git a/android/application-platform/app/build.gradle b/android/application-platform/app/build.gradle index 75c5ac6d5b..6a90158954 100644 --- a/android/application-platform/app/build.gradle +++ b/android/application-platform/app/build.gradle @@ -13,7 +13,7 @@ android { defaultConfig { applicationId "com.applicationplatform" - minSdk 24 + minSdk 23 targetSdk 33 versionCode 1 versionName "1.0" diff --git a/android/application-platform/navi-ap/build.gradle b/android/application-platform/navi-ap/build.gradle index 50e71a3e37..a08c520e1b 100644 --- a/android/application-platform/navi-ap/build.gradle +++ b/android/application-platform/navi-ap/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/benchmark/build.gradle b/android/benchmark/build.gradle index 40fb18ca09..8a2ed4abbd 100644 --- a/android/benchmark/build.gradle +++ b/android/benchmark/build.gradle @@ -30,7 +30,7 @@ android { } defaultConfig { - minSdk 24 + minSdk 23 targetSdk 34 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/android/build.gradle b/android/build.gradle index e386d2ab1b..ed8f238286 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { ext { compileSdkVersion = 34 - minSdkVersion = 21 + minSdkVersion = 23 targetSdkVersion = 33 } subprojects { subproject -> diff --git a/android/navi-amc/build.gradle b/android/navi-amc/build.gradle index 72f5391da1..19303621e1 100644 --- a/android/navi-amc/build.gradle +++ b/android/navi-amc/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-analytics/build.gradle b/android/navi-analytics/build.gradle index a15d786408..952e50694c 100644 --- a/android/navi-analytics/build.gradle +++ b/android/navi-analytics/build.gradle @@ -9,7 +9,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-base/build.gradle b/android/navi-base/build.gradle index e7f591b861..43b4bbc3fe 100644 --- a/android/navi-base/build.gradle +++ b/android/navi-base/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-base/src/main/java/com/navi/base/sharedpref/PreferenceManager.kt b/android/navi-base/src/main/java/com/navi/base/sharedpref/PreferenceManager.kt index 883a507464..b87cfe5878 100644 --- a/android/navi-base/src/main/java/com/navi/base/sharedpref/PreferenceManager.kt +++ b/android/navi-base/src/main/java/com/navi/base/sharedpref/PreferenceManager.kt @@ -10,7 +10,6 @@ package com.navi.base.sharedpref import android.app.Application import android.content.Context import android.content.SharedPreferences -import android.os.Build import androidx.security.crypto.EncryptedSharedPreferences import androidx.security.crypto.MasterKey import com.google.gson.Gson @@ -42,36 +41,32 @@ object PreferenceManager { application.getSharedPreferences(PREFS_FILENAME_SESSION, Context.MODE_PRIVATE) sharedPreferencesForApp = application.getSharedPreferences(PREFS_FILENAME, Context.MODE_PRIVATE) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - try { - val masterKey = - MasterKey.Builder(application) - .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) - .build() - secureSharedPreferencesForSession = - EncryptedSharedPreferences.create( - application, - PREFS_FILENAME_SECURE_SESSION, - masterKey, - EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, - EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM - ) + try { + val masterKey = + MasterKey.Builder(application).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build() + secureSharedPreferencesForSession = + EncryptedSharedPreferences.create( + application, + PREFS_FILENAME_SECURE_SESSION, + masterKey, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) - secureSharedPreferencesForApp = - EncryptedSharedPreferences.create( - application, - PREFS_FILENAME_SECURE_APP, - masterKey, - EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, - EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM - ) - } catch (e: Exception) { - // NaviTrackEvent.trackEventOnClickStream( - // "secure_shared_pref_crash", - // mapOf(Pair("reason", e.message.orEmpty())) - // ) - Timber.e(e) - } + secureSharedPreferencesForApp = + EncryptedSharedPreferences.create( + application, + PREFS_FILENAME_SECURE_APP, + masterKey, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) + } catch (e: Exception) { + // NaviTrackEvent.trackEventOnClickStream( + // "secure_shared_pref_crash", + // mapOf(Pair("reason", e.message.orEmpty())) + // ) + Timber.e(e) } } @@ -350,8 +345,7 @@ object PreferenceManager { } private fun shouldUseEncryptedSharedPref(): Boolean { - return secureSharedPreferencesForSession != null && - (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + return secureSharedPreferencesForSession != null } fun clearKeyBasedSessionPreferenceData(keys: List) { diff --git a/android/navi-base/src/main/java/com/navi/base/utils/BaseUtils.kt b/android/navi-base/src/main/java/com/navi/base/utils/BaseUtils.kt index f124f015bd..128dad40f2 100644 --- a/android/navi-base/src/main/java/com/navi/base/utils/BaseUtils.kt +++ b/android/navi-base/src/main/java/com/navi/base/utils/BaseUtils.kt @@ -93,16 +93,12 @@ object BaseUtils { fun isNetworkAvailable(context: Context): Boolean { val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val network = connectivityManager?.activeNetwork ?: return false - val activeNetwork = connectivityManager.getNetworkCapabilities(network) ?: return false - return when { - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true - else -> false - } - } else { - return connectivityManager?.activeNetworkInfo?.isConnected.orFalse() + val network = connectivityManager?.activeNetwork ?: return false + val activeNetwork = connectivityManager.getNetworkCapabilities(network) ?: return false + return when { + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true + else -> false } } @@ -567,12 +563,7 @@ object BaseUtils { val packageManager = activity.packageManager val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse(UPI_APP_INTENT_URL) - val activities = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL) - } else { - packageManager.queryIntentActivities(intent, INT_ZERO) - } + val activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL) return activities.map { it.activityInfo.packageName } } diff --git a/android/navi-base/src/main/java/com/navi/base/utils/ConnectivityObserver.kt b/android/navi-base/src/main/java/com/navi/base/utils/ConnectivityObserver.kt index 20b2305e11..4e2ed45433 100644 --- a/android/navi-base/src/main/java/com/navi/base/utils/ConnectivityObserver.kt +++ b/android/navi-base/src/main/java/com/navi/base/utils/ConnectivityObserver.kt @@ -12,7 +12,6 @@ import android.net.ConnectivityManager import android.net.Network import android.net.NetworkCapabilities import android.net.NetworkRequest -import android.os.Build import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import kotlinx.coroutines.channels.awaitClose @@ -81,31 +80,16 @@ class ConnectivityObserverImpl @Inject constructor(@ApplicationContext val conte } override fun isInternetConnected(): Boolean { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val networkCapabilities = connectivityManager.activeNetwork ?: return false + val networkCapabilities = connectivityManager.activeNetwork ?: return false - val activeNetwork = - connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false + val activeNetwork = + connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false - return when { - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true - else -> false - } - } else { - connectivityManager.run { - connectivityManager.activeNetworkInfo?.run { - return when (type) { - ConnectivityManager.TYPE_WIFI -> true - ConnectivityManager.TYPE_MOBILE -> true - ConnectivityManager.TYPE_ETHERNET -> true - else -> false - } - } - } + return when { + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true + else -> false } - - return false } } diff --git a/android/navi-base/src/main/java/com/navi/base/utils/NaviNetworkConnectivity.kt b/android/navi-base/src/main/java/com/navi/base/utils/NaviNetworkConnectivity.kt index 1e39429333..a60b45b8e1 100644 --- a/android/navi-base/src/main/java/com/navi/base/utils/NaviNetworkConnectivity.kt +++ b/android/navi-base/src/main/java/com/navi/base/utils/NaviNetworkConnectivity.kt @@ -10,7 +10,6 @@ package com.navi.base.utils import android.content.Context import android.net.ConnectivityManager import android.net.NetworkCapabilities -import android.os.Build import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject @@ -27,30 +26,15 @@ class NaviNetworkConnectivityImpl @Inject constructor(@ApplicationContext val co var result = false val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val networkCapabilities = connectivityManager.activeNetwork ?: return false - val actNw = - connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false - result = - when { - actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || - actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || - actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true - else -> false - } - } else { - connectivityManager.run { - connectivityManager.activeNetworkInfo?.run { - result = - when (type) { - ConnectivityManager.TYPE_WIFI -> true - ConnectivityManager.TYPE_MOBILE -> true - ConnectivityManager.TYPE_ETHERNET -> true - else -> false - } - } + val networkCapabilities = connectivityManager.activeNetwork ?: return false + val actNw = connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false + result = + when { + actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || + actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || + actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true + else -> false } - } return result } @@ -58,13 +42,11 @@ class NaviNetworkConnectivityImpl @Inject constructor(@ApplicationContext val co var ipAddress = "" val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) if (connectivityManager is ConnectivityManager) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val link = connectivityManager.getLinkProperties(connectivityManager.activeNetwork) - try { - ipAddress = link?.linkAddresses?.get(1)?.address?.hostAddress.toString() - } catch (e: Exception) { - // ignore - } + val link = connectivityManager.getLinkProperties(connectivityManager.activeNetwork) + try { + ipAddress = link?.linkAddresses?.get(1)?.address?.hostAddress.toString() + } catch (e: Exception) { + // ignore } } return ipAddress.ifBlank { "0.0.0.0" } diff --git a/android/navi-bbps/build.gradle b/android/navi-bbps/build.gradle index 048aad5543..438d0e4414 100644 --- a/android/navi-bbps/build.gradle +++ b/android/navi-bbps/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-chat/build.gradle b/android/navi-chat/build.gradle index c3353aea81..0085dc9e79 100644 --- a/android/navi-chat/build.gradle +++ b/android/navi-chat/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-chat/src/main/java/com/navi/chat/ui/fragments/NaviChatFragment.kt b/android/navi-chat/src/main/java/com/navi/chat/ui/fragments/NaviChatFragment.kt index be1b6c7523..ddc205c04e 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/ui/fragments/NaviChatFragment.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/ui/fragments/NaviChatFragment.kt @@ -645,7 +645,7 @@ class NaviChatFragment : BaseFragment(), WidgetCallback, MessageOperation, Toolb } private fun observeNetworkConnectivity() { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { viewLifecycleOwner.lifecycleScope.launchWhenStarted { launch { naviChatViewModel.connectivityObserverHolder.collect { diff --git a/android/navi-chat/src/main/java/com/navi/chat/viewmodels/NaviChatViewModel.kt b/android/navi-chat/src/main/java/com/navi/chat/viewmodels/NaviChatViewModel.kt index 6552d22985..6a6f9a343c 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/viewmodels/NaviChatViewModel.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/viewmodels/NaviChatViewModel.kt @@ -132,7 +132,7 @@ constructor( } init { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { viewModelScope.launch(Dispatchers.IO) { connectivityObserver.observe().collectLatest { _connectivityObserverHolder.emit(it) diff --git a/android/navi-coin/build.gradle b/android/navi-coin/build.gradle index c7d0910e91..4e7d50820d 100644 --- a/android/navi-coin/build.gradle +++ b/android/navi-coin/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-common/build.gradle b/android/navi-common/build.gradle index 98757f2825..5ac3c2fbd4 100644 --- a/android/navi-common/build.gradle +++ b/android/navi-common/build.gradle @@ -13,7 +13,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 buildConfigField 'String', 'YOUTUBE_KEY', formatString('AIzaSyDlbxag2dCc-a9ac8JTfH3nnVw41pdI-1U') diff --git a/android/navi-common/src/main/AndroidManifest.xml b/android/navi-common/src/main/AndroidManifest.xml index 716147e2ff..ee3136052d 100644 --- a/android/navi-common/src/main/AndroidManifest.xml +++ b/android/navi-common/src/main/AndroidManifest.xml @@ -19,9 +19,6 @@ - = Build.VERSION_CODES.LOLLIPOP_MR1) { - arrayOf( - Telephony.Sms._ID, - Telephony.Sms.DATE, - Telephony.Sms.DATE_SENT, - Telephony.Sms.ADDRESS, - Telephony.Sms.BODY, - Telephony.Sms.READ, - Telephony.Sms.CREATOR, - Telephony.Sms.SERVICE_CENTER, - Telephony.Sms.SUBJECT, - Telephony.Sms.TYPE, - Telephony.Sms.LOCKED, - Telephony.Sms.SUBSCRIPTION_ID - ) - } else { - arrayOf( - Telephony.Sms._ID, - Telephony.Sms.DATE, - Telephony.Sms.DATE_SENT, - Telephony.Sms.ADDRESS, - Telephony.Sms.BODY, - Telephony.Sms.READ, - Telephony.Sms.CREATOR, - Telephony.Sms.SERVICE_CENTER, - Telephony.Sms.SUBJECT, - Telephony.Sms.TYPE, - Telephony.Sms.LOCKED - ) - } + arrayOf( + Telephony.Sms._ID, + Telephony.Sms.DATE, + Telephony.Sms.DATE_SENT, + Telephony.Sms.ADDRESS, + Telephony.Sms.BODY, + Telephony.Sms.READ, + Telephony.Sms.CREATOR, + Telephony.Sms.SERVICE_CENTER, + Telephony.Sms.SUBJECT, + Telephony.Sms.TYPE, + Telephony.Sms.LOCKED, + Telephony.Sms.SUBSCRIPTION_ID + ) fun Cursor.getUserSmsFromCursorData() = - if (getVersionSDKInt() >= Build.VERSION_CODES.LOLLIPOP_MR1) { - UserSms( - getString(0), // SMS ID Column - getString(1), // SMS DATE Column - getString(2), // SMS DATE_SENT Column - getString(3), // SMS ADDRESS Column - getString(4), // SMS BODY Column - getString(5), // SMS READ Column - getLong(1), // TIME_STAMP - getString(6), // CREATOR - getString(7), // SERVICE_CENTER - getString(8), // SUBJECT - getString(9), // TYPE - getString(10), // LOCKED - getString(11) // SUBSCRIPTION_ID - ) - } else { - UserSms( - getString(0), // SMS ID Column - getString(1), // SMS DATE Column - getString(2), // SMS DATE_SENT Column - getString(3), // SMS ADDRESS Column - getString(4), // SMS BODY Column - getString(5), // SMS READ Column - getLong(1), // TIME_STAMP - getString(6), // CREATOR - getString(7), // SERVICE_CENTER - getString(8), // SUBJECT - getString(9), // TYPE - getString(10) // LOCKED - ) - } + UserSms( + getString(0), // SMS ID Column + getString(1), // SMS DATE Column + getString(2), // SMS DATE_SENT Column + getString(3), // SMS ADDRESS Column + getString(4), // SMS BODY Column + getString(5), // SMS READ Column + getLong(1), // TIME_STAMP + getString(6), // CREATOR + getString(7), // SERVICE_CENTER + getString(8), // SUBJECT + getString(9), // TYPE + getString(10), // LOCKED + getString(11) // SUBSCRIPTION_ID + ) diff --git a/android/navi-design/build.gradle b/android/navi-design/build.gradle index 8fedecb433..50406a2d9d 100644 --- a/android/navi-design/build.gradle +++ b/android/navi-design/build.gradle @@ -11,7 +11,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-design/src/main/java/com/navi/design/editview/NaviEditText.kt b/android/navi-design/src/main/java/com/navi/design/editview/NaviEditText.kt index 00846313ef..0f0f8d27aa 100644 --- a/android/navi-design/src/main/java/com/navi/design/editview/NaviEditText.kt +++ b/android/navi-design/src/main/java/com/navi/design/editview/NaviEditText.kt @@ -9,7 +9,6 @@ package com.navi.design.editview import android.content.Context import android.graphics.Typeface -import android.os.Build import android.util.AttributeSet import android.view.View import android.view.ViewGroup @@ -90,13 +89,7 @@ class NaviEditText(context: Context, attrs: AttributeSet) : AppCompatEditText(co } fun setStyle(@StyleRes style: Int?) { - style?.let { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - setTextAppearance(it) - } else { - setTextAppearance(context, it) - } - } + style?.let { setTextAppearance(it) } } fun setBackground( diff --git a/android/navi-design/src/main/java/com/navi/design/textview/NaviTextView.kt b/android/navi-design/src/main/java/com/navi/design/textview/NaviTextView.kt index bd5d22363a..1c6f0f322c 100644 --- a/android/navi-design/src/main/java/com/navi/design/textview/NaviTextView.kt +++ b/android/navi-design/src/main/java/com/navi/design/textview/NaviTextView.kt @@ -9,7 +9,6 @@ package com.navi.design.textview import android.content.Context import android.graphics.Typeface -import android.os.Build import android.util.AttributeSet import android.view.View import android.view.ViewGroup @@ -88,13 +87,7 @@ class NaviTextView(context: Context, attrs: AttributeSet? = null) : } fun setStyle(@StyleRes style: Int?) { - style?.let { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - setTextAppearance(it) - } else { - setTextAppearance(context, it) - } - } + style?.let { setTextAppearance(it) } } fun setBgColor(colorId: Int) { diff --git a/android/navi-gold/build.gradle b/android/navi-gold/build.gradle index c8d9a6de34..174e02369f 100644 --- a/android/navi-gold/build.gradle +++ b/android/navi-gold/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-hl/build.gradle b/android/navi-hl/build.gradle index f50893e183..0569e24073 100644 --- a/android/navi-hl/build.gradle +++ b/android/navi-hl/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-insurance/build.gradle b/android/navi-insurance/build.gradle index 70b1139c99..dd2858a76d 100644 --- a/android/navi-insurance/build.gradle +++ b/android/navi-insurance/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/common/fragment/WebViewFragment.kt b/android/navi-insurance/src/main/java/com/navi/insurance/common/fragment/WebViewFragment.kt index a48d5ab651..31f3c18f23 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/common/fragment/WebViewFragment.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/common/fragment/WebViewFragment.kt @@ -296,7 +296,6 @@ class WebViewFragment : BaseFragment() { binding.pbLoading.visibility = View.GONE } - @RequiresApi(Build.VERSION_CODES.M) override fun onReceivedError( view: WebView?, request: WebResourceRequest?, diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/common/widgets/SelectionWithPillGridItemView.kt b/android/navi-insurance/src/main/java/com/navi/insurance/common/widgets/SelectionWithPillGridItemView.kt index c2dcc3393a..3b915a52a7 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/common/widgets/SelectionWithPillGridItemView.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/common/widgets/SelectionWithPillGridItemView.kt @@ -22,7 +22,6 @@ import com.navi.insurance.common.models.PillData import com.navi.insurance.common.models.PillItem import com.navi.insurance.common.models.PillWithGridItem import com.navi.insurance.databinding.SelectionWithPillGridItemBinding -import com.navi.insurance.util.isMinimumOsVersionM import com.navi.naviwidgets.extensions.getScreenWidth import kotlin.math.ceil import kotlin.math.max @@ -70,21 +69,13 @@ class SelectionWithPillGridItemView( binding.pillGrid.visibility = View.VISIBLE } binding.selectorImage.setImageResource(WidgetsR.drawable.radio_button_checked_blue) - if (isMinimumOsVersionM()) { - binding.title.setTextAppearance(WidgetsR.style.MediumTextFontBoldStyle) - } else { - binding.title.setTextAppearance(context, WidgetsR.style.MediumTextFontBoldStyle) - } + binding.title.setTextAppearance(WidgetsR.style.MediumTextFontBoldStyle) } private fun setRadioUnselected(binding: SelectionWithPillGridItemBinding) { binding.pillGrid.visibility = View.GONE binding.selectorImage.setImageResource(WidgetsR.drawable.radio_button_unchecked_grey) - if (isMinimumOsVersionM()) { - binding.title.setTextAppearance(WidgetsR.style.MediumTextFontStyle) - } else { - binding.title.setTextAppearance(context, WidgetsR.style.MediumTextFontStyle) - } + binding.title.setTextAppearance(WidgetsR.style.MediumTextFontStyle) } private fun setPillGridData(binding: SelectionWithPillGridItemBinding, pillData: PillData) { diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt b/android/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt index ee663d73af..19e094f754 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt @@ -9,6 +9,7 @@ package com.navi.insurance.formbase.pre_purchase import android.graphics.Color import android.graphics.drawable.ColorDrawable +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -173,14 +174,8 @@ class FormBasedFragment : } private fun setScrollListener() { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - binding.formRootLayout.apply { - setOnScrollChangeListener { _, _, _, _, _ -> formAdapter?.doActionOnScroll() } - } - } else { - binding.formRootLayout.viewTreeObserver.addOnScrollChangedListener { - formAdapter?.doActionOnScroll() - } + binding.formRootLayout.apply { + setOnScrollChangeListener { _, _, _, _, _ -> formAdapter?.doActionOnScroll() } } } diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/HealthCardsFragment.kt b/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/HealthCardsFragment.kt index e975e24802..525944d5b0 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/HealthCardsFragment.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/HealthCardsFragment.kt @@ -239,9 +239,7 @@ class HealthCardsFragment : BaseFragment(), View.OnClickListener { viewBinding?.viewPolicyMemberShareBtn?.visibility = View.GONE Handler(Looper.getMainLooper()).post { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - viewBinding?.clContent?.foreground = null - } + viewBinding?.clContent?.foreground = null val member = healthCard.tag as PolicyMemberDetails val b = Bitmap.createBitmap(healthCard.width, healthCard.height, Bitmap.Config.ARGB_8888) diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/PaymentMethodSelectionFragment.kt b/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/PaymentMethodSelectionFragment.kt index 686f8aff14..030a573d69 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/PaymentMethodSelectionFragment.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/health/fragment/PaymentMethodSelectionFragment.kt @@ -692,16 +692,9 @@ class PaymentMethodSelectionFragment : private fun selectFull(isSelected: Boolean) { if (isSelected) { binding.layoutPaymentMethod.itemSelectedFullPayment.isChecked = true - if (isMinimumOsVersionM()) { - binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( - WidgetsR.style.MediumTextFontBoldStyle - ) - } else { - binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( - context, - WidgetsR.style.MediumTextFontBoldStyle - ) - } + binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( + WidgetsR.style.MediumTextFontBoldStyle + ) paymentMode = binding.layoutPaymentMethod.itemSelectedFullPayment.tag as String binding.continueBtn.text = payUsingFullPaymentText val yearlyPaymentDetails = checkoutOptions?.paymentFooter?.yearlyPaymentDetails @@ -721,32 +714,18 @@ class PaymentMethodSelectionFragment : } } else { binding.layoutPaymentMethod.itemSelectedFullPayment.isChecked = false - if (isMinimumOsVersionM()) { - binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( - WidgetsR.style.MediumTextFontStyle - ) - } else { - binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( - context, - WidgetsR.style.MediumTextFontStyle - ) - } + binding.layoutPaymentMethod.paymentInfoTypeFullPaymentTxt.setTextAppearance( + WidgetsR.style.MediumTextFontStyle + ) } } private fun selectEMI(isSelected: Boolean) { if (isSelected) { binding.layoutPaymentMethod.itemSelectedEmi.isChecked = true - if (isMinimumOsVersionM()) { - binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( - WidgetsR.style.MediumTextFontBoldStyle - ) - } else { - binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( - context, - WidgetsR.style.MediumTextFontBoldStyle - ) - } + binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( + WidgetsR.style.MediumTextFontBoldStyle + ) paymentMode = binding.layoutPaymentMethod.itemSelectedEmi.tag as String binding.continueBtn.text = payUsingEmiText val monthlyEmiDetails = checkoutOptions?.paymentFooter?.monthlyPaymentDetails @@ -760,16 +739,9 @@ class PaymentMethodSelectionFragment : } } else { binding.layoutPaymentMethod.itemSelectedEmi.isChecked = false - if (isMinimumOsVersionM()) { - binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( - WidgetsR.style.MediumTextFontStyle - ) - } else { - binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( - context, - WidgetsR.style.MediumTextFontStyle - ) - } + binding.layoutPaymentMethod.paymentInfoTypeEmiTxt.setTextAppearance( + WidgetsR.style.MediumTextFontStyle + ) } } diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/notifications/AppNotification.kt b/android/navi-insurance/src/main/java/com/navi/insurance/notifications/AppNotification.kt index f842b20fb0..1832cd414c 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/notifications/AppNotification.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/notifications/AppNotification.kt @@ -159,21 +159,12 @@ class AppNotification { private fun createPendingIntent(intent: Intent, notificationId: Int): PendingIntent { intent.action = notificationId.toString() val pendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getActivity( - CommonLibManager.application.applicationContext, - 0, - intent, - PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - } else { - PendingIntent.getActivity( - CommonLibManager.application.applicationContext, - 0, - intent, - PendingIntent.FLAG_CANCEL_CURRENT - ) - } + PendingIntent.getActivity( + CommonLibManager.application.applicationContext, + 0, + intent, + PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) return pendingIntent } diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/sharedpref/NaviPreferenceManager.kt b/android/navi-insurance/src/main/java/com/navi/insurance/sharedpref/NaviPreferenceManager.kt index cadbb952b1..7f070c9b51 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/sharedpref/NaviPreferenceManager.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/sharedpref/NaviPreferenceManager.kt @@ -25,18 +25,13 @@ object NaviPreferenceManager { private const val ENCRYPTED_PREFS_FILENAME = "com.navi.insurance.preferences_encrypted" - @RequiresApi(Build.VERSION_CODES.M) val masterKeyAlias = getMasterKey() private fun getMasterKey(): String { - try { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - return MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) - } else { - return "" - } + return try { + MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) } catch (e: Exception) { - return "" + "" } } @@ -50,23 +45,16 @@ object NaviPreferenceManager { private val encryptedSharedPreferences = getEncryptedSharedPref() private fun getEncryptedSharedPref(): SharedPreferences? { - try { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - return EncryptedSharedPreferences.create( - ENCRYPTED_PREFS_FILENAME, - masterKeyAlias, - CommonLibManager.application.applicationContext, - EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, - EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM - ) - } else { - return CommonLibManager.application.getSharedPreferences( - PREFS_FILENAME, - Context.MODE_PRIVATE - ) - } + return try { + EncryptedSharedPreferences.create( + ENCRYPTED_PREFS_FILENAME, + masterKeyAlias, + CommonLibManager.application.applicationContext, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) } catch (e: Exception) { - return CommonLibManager.application.getSharedPreferences( + CommonLibManager.application.getSharedPreferences( PREFS_FILENAME, Context.MODE_PRIVATE ) @@ -74,26 +62,18 @@ object NaviPreferenceManager { } fun getSecureStringPreference(key: String): String? { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - getEncryptedStringPreference(key) - } else { - getStringPreference(key) - } + return getEncryptedStringPreference(key) } fun setSecureStringPreference(key: String, value: String) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - setEncryptedStringPreference(key, value) - } else { - setStringPreference(key, value) - } + setEncryptedStringPreference(key, value) } - fun getEncryptedStringPreference(key: String): String? { + private fun getEncryptedStringPreference(key: String): String? { return encryptedSharedPreferences?.getString(key, "") } - fun setEncryptedStringPreference(key: String, value: String) { + private fun setEncryptedStringPreference(key: String, value: String) { val editor = encryptedSharedPreferences?.edit() editor?.putString(key, value) editor?.apply() diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/util/Utility.kt b/android/navi-insurance/src/main/java/com/navi/insurance/util/Utility.kt index ffd1ed87a9..cf69f58801 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/util/Utility.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/util/Utility.kt @@ -186,10 +186,6 @@ fun convertObjectToJson(type: T): JSONObject? { return null } -fun isMinimumOsVersionM(): Boolean { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -} - fun getBitmap(context: Context, drawableId: Int): Bitmap? { return when (val drawable: Drawable? = ContextCompat.getDrawable(context, drawableId)) { is BitmapDrawable -> BitmapFactory.decodeResource(context.resources, drawableId) diff --git a/android/navi-mqtt/build.gradle b/android/navi-mqtt/build.gradle index 23d6665f10..b2addf5ffe 100644 --- a/android/navi-mqtt/build.gradle +++ b/android/navi-mqtt/build.gradle @@ -9,7 +9,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/android/navi-pay/build.gradle b/android/navi-pay/build.gradle index ca32f5af70..049129c7a1 100644 --- a/android/navi-pay/build.gradle +++ b/android/navi-pay/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/connectivity/NaviPayNetworkConnectivity.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/connectivity/NaviPayNetworkConnectivity.kt index 5e7d20ac6f..3b95f0040d 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/connectivity/NaviPayNetworkConnectivity.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/connectivity/NaviPayNetworkConnectivity.kt @@ -10,7 +10,6 @@ package com.navi.pay.common.connectivity import android.content.Context import android.net.ConnectivityManager import android.net.NetworkCapabilities -import android.os.Build import com.navi.pay.common.model.view.SimInfo import com.navi.pay.common.utils.NaviPayCommonUtils import dagger.hilt.android.qualifiers.ApplicationContext @@ -31,30 +30,15 @@ class NaviPayNetworkConnectivityImpl @Inject constructor(@ApplicationContext val var result = false val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val networkCapabilities = connectivityManager.activeNetwork ?: return false - val actNw = - connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false - result = - when { - actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true - actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true - actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true - else -> false - } - } else { - connectivityManager.run { - connectivityManager.activeNetworkInfo?.run { - result = - when (type) { - ConnectivityManager.TYPE_WIFI -> true - ConnectivityManager.TYPE_MOBILE -> true - ConnectivityManager.TYPE_ETHERNET -> true - else -> false - } - } + val networkCapabilities = connectivityManager.activeNetwork ?: return false + val actNw = connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false + result = + when { + actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true + actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true + actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true + else -> false } - } return result } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayWidget.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayWidget.kt index 883829374a..dbf4204010 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayWidget.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayWidget.kt @@ -13,7 +13,6 @@ import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent import android.net.Uri -import android.os.Build import android.widget.RemoteViews import com.navi.pay.R import com.navi.pay.common.model.view.NaviPayScreenType @@ -60,16 +59,12 @@ internal fun updateAppWidget( } val pendingIntent: PendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getActivity( - context, - 0, - intent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - } else { - PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT) - } + PendingIntent.getActivity( + context, + 0, + intent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) val views: RemoteViews = RemoteViews(context.packageName, R.layout.navi_pay_widget).apply { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt index 855f142367..f2d03f1e3e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt @@ -108,10 +108,6 @@ object NaviPayCommonUtils { fun getCurrentSimInfoList(context: Context): List { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { - return emptyList() - } - if ( ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED @@ -187,10 +183,6 @@ object NaviPayCommonUtils { subscriptionId: Int, activityContext: Context ) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { - return - } - if ( ActivityCompat.checkSelfPermission(activityContext, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED @@ -212,38 +204,20 @@ object NaviPayCommonUtils { } val sentPendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getBroadcast( - activityContext, - (0..1000).random(), - Intent(INTENT_ACTION_SMS_SENT), - PendingIntent.FLAG_IMMUTABLE - ) - } else { - PendingIntent.getBroadcast( - activityContext, - (0..1000).random(), - Intent(INTENT_ACTION_SMS_SENT), - 0 - ) - } + PendingIntent.getBroadcast( + activityContext, + (0..1000).random(), + Intent(INTENT_ACTION_SMS_SENT), + PendingIntent.FLAG_IMMUTABLE + ) val deliveredPendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getBroadcast( - activityContext, - (0..1000).random(), - Intent(INTENT_ACTION_SMS_DELIVERED), - PendingIntent.FLAG_IMMUTABLE - ) - } else { - PendingIntent.getBroadcast( - activityContext, - (0..1000).random(), - Intent(INTENT_ACTION_SMS_DELIVERED), - 0 - ) - } + PendingIntent.getBroadcast( + activityContext, + (0..1000).random(), + Intent(INTENT_ACTION_SMS_DELIVERED), + PendingIntent.FLAG_IMMUTABLE + ) try { NaviTrackEvent.trackEventOnClickStream( @@ -283,11 +257,6 @@ object NaviPayCommonUtils { isNaviPayAccessible = false, context.getString(R.string.please_login_to_access_navi_pay) ) - } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - NaviPayAccessEligibility( - isNaviPayAccessible = false, - context.getString(R.string.navi_pay_android_version_error) - ) } else if (CommonRootDeviceUtil.instance.isDeviceRooted()) { NaviPayAccessEligibility( isNaviPayAccessible = false, diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayNotificationHandler.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayNotificationHandler.kt index ac70c8370d..d3c62a2ede 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayNotificationHandler.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayNotificationHandler.kt @@ -48,21 +48,12 @@ object NaviPayNotificationHandler { } } val pendingIntent = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getActivity( - context, - NAVI_PAY_NOTIFICATION_PENDING_INTENT_REQUEST_CODE, - intent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - } else { - PendingIntent.getActivity( - context, - NAVI_PAY_NOTIFICATION_PENDING_INTENT_REQUEST_CODE, - intent, - PendingIntent.FLAG_UPDATE_CURRENT - ) - } + PendingIntent.getActivity( + context, + NAVI_PAY_NOTIFICATION_PENDING_INTENT_REQUEST_CODE, + intent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) val notificationContentTitle = remoteMessage.data[NAVI_PAY_NOTIFICATION_TITLE] diff --git a/android/navi-pay/src/main/res/values/strings.xml b/android/navi-pay/src/main/res/values/strings.xml index 815fb76029..7dff158e6c 100644 --- a/android/navi-pay/src/main/res/values/strings.xml +++ b/android/navi-pay/src/main/res/values/strings.xml @@ -350,7 +350,6 @@ Please stay on the app until verification process is done. Closing the app can stop the verification process. Please login to access Navi UPI You cannot use Navi UPI on a rooted device - Navi UPI is not available on android version 5.1 and below Unable to access Navi UPI Pause start date Pause end date diff --git a/android/navi-payment/build.gradle b/android/navi-payment/build.gradle index 7389b22596..f0ae8a8c41 100644 --- a/android/navi-payment/build.gradle +++ b/android/navi-payment/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-rr/build.gradle b/android/navi-rr/build.gradle index 90ca34eeec..f97a77ee05 100644 --- a/android/navi-rr/build.gradle +++ b/android/navi-rr/build.gradle @@ -12,7 +12,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-vkyc/build.gradle b/android/navi-vkyc/build.gradle index 33e40b6a78..0bfa39d458 100644 --- a/android/navi-vkyc/build.gradle +++ b/android/navi-vkyc/build.gradle @@ -11,7 +11,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-widgets/build.gradle b/android/navi-widgets/build.gradle index be1ee8eb0e..5260cd4eed 100644 --- a/android/navi-widgets/build.gradle +++ b/android/navi-widgets/build.gradle @@ -11,7 +11,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 targetSdk 33 consumerProguardFiles "consumer-rules.pro" diff --git a/android/navi-widgets/src/main/java/com/navi/naviwidgets/extensions/WidgetExt.kt b/android/navi-widgets/src/main/java/com/navi/naviwidgets/extensions/WidgetExt.kt index 66aa51080e..d3fb712a23 100644 --- a/android/navi-widgets/src/main/java/com/navi/naviwidgets/extensions/WidgetExt.kt +++ b/android/navi-widgets/src/main/java/com/navi/naviwidgets/extensions/WidgetExt.kt @@ -460,19 +460,11 @@ fun TextView.setTextFieldData( } fun TextView.setPrimaryButtonStyle() { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - this.setTextAppearance(R.style.ButtonFontStylePurple) - } else { - this.setTextAppearance(context, R.style.ButtonFontStylePurple) - } + this.setTextAppearance(R.style.ButtonFontStylePurple) } fun TextView.setSecondaryButtonStyle() { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - this.setTextAppearance(R.style.ButtonFontStyleGreyBlack) - } else { - this.setTextAppearance(context, R.style.ButtonFontStyleGreyBlack) - } + this.setTextAppearance(R.style.ButtonFontStyleGreyBlack) } private fun TextView.setTextGravity(alignment: String) { diff --git a/android/navi_hl_dynamic/build.gradle b/android/navi_hl_dynamic/build.gradle index de33897aa8..8182c452fa 100644 --- a/android/navi_hl_dynamic/build.gradle +++ b/android/navi_hl_dynamic/build.gradle @@ -11,7 +11,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/android/navi_hl_dynamic/src/main/java/com/navi/hl/common/ui/fragment/HomeLoanBaseFragment.kt b/android/navi_hl_dynamic/src/main/java/com/navi/hl/common/ui/fragment/HomeLoanBaseFragment.kt index e25740d99b..705f57516f 100644 --- a/android/navi_hl_dynamic/src/main/java/com/navi/hl/common/ui/fragment/HomeLoanBaseFragment.kt +++ b/android/navi_hl_dynamic/src/main/java/com/navi/hl/common/ui/fragment/HomeLoanBaseFragment.kt @@ -7,7 +7,6 @@ package com.navi.hl.common.ui.fragment -import android.os.Build import android.os.Bundle import android.view.View import androidx.core.widget.NestedScrollView @@ -63,53 +62,47 @@ abstract class HomeLoanBaseFragment : BaseFragment() { } internal fun addScrollListener(recyclerBinding: RecyclerView) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - (activity as? HomeLoanStepsActivity)?.addHeaderShadow( - recyclerBinding.computeVerticalScrollOffset() - ) - recyclerBinding.addOnScrollListener( - object : RecyclerView.OnScrollListener() { - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { - super.onScrolled(recyclerView, dx, dy) - if (recyclerBinding.computeVerticalScrollOffset() == 0) { - (activity as? HomeLoanStepsActivity)?.removeHeaderShadow() - } else if (!(dx == 0 && dy == 0)) { - (activity as? HomeLoanStepsActivity)?.addHeaderShadow( - recyclerBinding.computeVerticalScrollOffset() - ) - } + (activity as? HomeLoanStepsActivity)?.addHeaderShadow( + recyclerBinding.computeVerticalScrollOffset() + ) + recyclerBinding.addOnScrollListener( + object : RecyclerView.OnScrollListener() { + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + super.onScrolled(recyclerView, dx, dy) + if (recyclerBinding.computeVerticalScrollOffset() == 0) { + (activity as? HomeLoanStepsActivity)?.removeHeaderShadow() + } else if (!(dx == 0 && dy == 0)) { + (activity as? HomeLoanStepsActivity)?.addHeaderShadow( + recyclerBinding.computeVerticalScrollOffset() + ) } } - ) - } + } + ) } internal fun addScrollListener(scrollView: NestedScrollView) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - (activity as? HomeLoanStepsActivity)?.addHeaderShadow(scrollView.scrollY) - scrollView.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY -> - if (scrollY == 0) { - (activity as? HomeLoanStepsActivity)?.removeHeaderShadow() - } else { - if ( - (activity as? HomeLoanStepsActivity) - ?.supportFragmentManager - ?.backStackEntryCount - .orZero() <= 0 - ) { - (activity as? HomeLoanStepsActivity)?.addHeaderShadow( - scrollY * WEIGHTED_SCROLL_VIEW_OFFSET.toInt() - ) - } + (activity as? HomeLoanStepsActivity)?.addHeaderShadow(scrollView.scrollY) + scrollView.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY -> + if (scrollY == 0) { + (activity as? HomeLoanStepsActivity)?.removeHeaderShadow() + } else { + if ( + (activity as? HomeLoanStepsActivity) + ?.supportFragmentManager + ?.backStackEntryCount + .orZero() <= 0 + ) { + (activity as? HomeLoanStepsActivity)?.addHeaderShadow( + scrollY * WEIGHTED_SCROLL_VIEW_OFFSET.toInt() + ) } } } } internal fun removeScrollListener(scrollView: NestedScrollView) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - scrollView.setOnScrollChangeListener(null as NestedScrollView.OnScrollChangeListener?) - } + scrollView.setOnScrollChangeListener(null as NestedScrollView.OnScrollChangeListener?) } internal fun setDataToLatencyMapper(eventName: String? = null, action: String? = null) { diff --git a/android/navi_pl_dynamic/build.gradle b/android/navi_pl_dynamic/build.gradle index c2e0d0b7ed..59d44e9761 100644 --- a/android/navi_pl_dynamic/build.gradle +++ b/android/navi_pl_dynamic/build.gradle @@ -10,7 +10,7 @@ android { compileSdk 34 defaultConfig { - minSdk 21 + minSdk 23 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }