From e994ac80b826d7c370bb8fe4b572a4d4e4f67ffc Mon Sep 17 00:00:00 2001 From: Naman Khurmi Date: Wed, 5 Feb 2025 16:47:14 +0530 Subject: [PATCH] NTP-34505 | Naman Khurmi | oe crash fix with safety checks. (#14817) --- .../java/com/navi/base/utils/BaseUtils.kt | 64 ++++++++++--------- 1 file changed, 35 insertions(+), 29 deletions(-) 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 9240536d81..d432ff11dd 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 @@ -102,18 +102,22 @@ object BaseUtils { PreferenceManager.saveStringSecurely(CommonPrefConstants.EMAIL, email) } - fun isNetworkAvailable(context: Context): Boolean { - val connectivityManager = - context.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager - 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 - activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true - else -> false - } - } + fun isNetworkAvailable(context: Context?): Boolean = + context?.let { + runCatching { + val connectivityManager = + it.getSystemService(ConnectivityManager::class.java) ?: return false + val activeNetwork = + connectivityManager.getNetworkCapabilities( + connectivityManager.activeNetwork + ) ?: return false + + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || + activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) + } + .getOrDefault(false) + } ?: false fun isFirebaseTokenRefreshed(): Boolean { return PreferenceManager.getBooleanPreferenceApp( @@ -177,9 +181,9 @@ object BaseUtils { return decimalString } - fun stripTrailingCharacters(str: String, char: Char): String { + private fun stripTrailingCharacters(str: String, char: Char): String { val sb: StringBuilder = StringBuilder(str) - while (sb.length > 0 && sb[sb.length - 1] == char) { + while (sb.isNotEmpty() && sb[sb.length - 1] == char) { sb.setLength(sb.length - 1) } return sb.toString() @@ -274,20 +278,22 @@ object BaseUtils { numberInWords = numberInWords.plus(twoDigitNumberToWords(lastDigits)) } } - if (numberInStringFormat.length > 3) { - numberInStringFormat = numberInStringFormat.drop(2) - } else if (numberInStringFormat.length > 2) { - numberInStringFormat = numberInStringFormat.drop(1) - } else { - numberInStringFormat = "" - } + numberInStringFormat = + if (numberInStringFormat.length > 3) { + numberInStringFormat.drop(2) + } else if (numberInStringFormat.length > 2) { + numberInStringFormat.drop(1) + } else { + "" + } } numberInWords = numberInWords.trim().replaceFirstChar { it.uppercase() } - if (numberInWords == "One") { - numberInWords = numberInWords.plus(" $unitSingular") - } else { - numberInWords = numberInWords.plus(" $unitPlural") - } + numberInWords = + if (numberInWords == "One") { + numberInWords.plus(" $unitSingular") + } else { + numberInWords.plus(" $unitPlural") + } return numberInWords } else { return EMPTY @@ -367,7 +373,7 @@ object BaseUtils { context?.startActivity(mainIntent) try { Runtime.getRuntime().exit(0) - } catch (e: Exception) {} + } catch (_: Exception) {} } /** @@ -413,12 +419,12 @@ object BaseUtils { } fun saveUpdatedVersionCodeAndRestart(updatedVersionCode: String?, context: Context?) { - val updatedVersionCode = + val isVersionCodeUpdated = checkDiffAndSaveDataInSharedPreference( sharedPrefKey = UPDATED_VERSION_CODE, updatedValue = updatedVersionCode, ) - if (updatedVersionCode) { + if (isVersionCodeUpdated) { triggerAppRestart(context = context) } }