From de1a51420cced68d7a1812b6087a0881f193f088 Mon Sep 17 00:00:00 2001 From: Robert Alimbekov Date: Tue, 24 Oct 2023 18:01:37 +0500 Subject: [PATCH 1/5] updating deprecated method --- .../java/cloud/mindbox/mobile_sdk/managers/LifecycleManager.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/managers/LifecycleManager.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/managers/LifecycleManager.kt index 888262647..e9f0ff49d 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/managers/LifecycleManager.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/managers/LifecycleManager.kt @@ -118,7 +118,7 @@ internal class LifecycleManager( } fun onNewIntent(newIntent: Intent?) = newIntent?.let { intent -> - if (intent.data != null || intent.extras?.get(IS_OPENED_FROM_PUSH_BUNDLE_KEY) == true) { + if (intent.data != null || intent.extras?.getBoolean(IS_OPENED_FROM_PUSH_BUNDLE_KEY) == true) { isIntentChanged = updateHashesList(intent.hashCode()) sendTrackVisit(intent) skipSendingTrackVisit = isAppInBackground From dee0ce6b69139af2ca4d8ca51f85211caeb66b71 Mon Sep 17 00:00:00 2001 From: Robert Alimbekov Date: Wed, 25 Oct 2023 17:49:42 +0500 Subject: [PATCH 2/5] updating signature --- .../java/cloud/mindbox/mobile_sdk/Extensions.kt | 16 +++++++++++++++- .../mindbox/mobile_sdk/MindboxConfiguration.kt | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt index 338037923..e338eaad0 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt @@ -4,6 +4,9 @@ import android.app.Activity import android.app.ActivityManager import android.app.Application import android.content.Context +import android.content.pm.PackageInfo +import android.content.pm.PackageManager +import android.content.pm.PackageManager.PackageInfoFlags import android.content.res.Resources import android.os.Build import android.os.Process @@ -164,8 +167,19 @@ internal fun Activity.postDelayedAnimation(action: Runnable) { this.root?.postDelayed(action, duration) } -internal inline fun Queue.addUnique(item: T, predicate: (T) -> Boolean = { it == item }): Boolean { +internal inline fun Queue.addUnique( + item: T, + predicate: (T) -> Boolean = { it == item } +): Boolean { if (any(predicate)) return false add(item) return true +} + +internal fun PackageManager.getPackageInfoCompat(context: Context, flags: Int): PackageInfo { + return if (Build.VERSION_CODES.TIRAMISU <= Build.VERSION.SDK_INT) { + getPackageInfo(context.packageName, PackageInfoFlags.of(flags.toLong())) + } else { + getPackageInfo(context.packageName, flags) + } } \ No newline at end of file diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/MindboxConfiguration.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/MindboxConfiguration.kt index 7959ce12d..d1f2dc0ae 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/MindboxConfiguration.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/MindboxConfiguration.kt @@ -162,7 +162,7 @@ class MindboxConfiguration private constructor( try { val packageManager = context.packageManager //noinspection deprecation - val packageInfo = packageManager.getPackageInfo(context.packageName, 0) + val packageInfo = packageManager.getPackageInfoCompat(context, 0) packageName = packageInfo.packageName.trim() this.versionName = packageInfo.versionName?.trim() ?: PLACEHOLDER_APP_PACKAGE_NAME From 8fd67a6762d7fe68e44ee61108f86c3f5a75f595 Mon Sep 17 00:00:00 2001 From: Robert Alimbekov Date: Tue, 21 Nov 2023 21:48:51 +0500 Subject: [PATCH 3/5] update comments --- .../java/cloud/mindbox/mindbox_firebase/MindboxFirebase.kt | 5 ++++- .../main/java/cloud/mindbox/mindbox_huawei/MindboxHuawei.kt | 5 ++++- .../cloud/mindbox/mobile_sdk/InitializeMindboxException.kt | 4 +++- .../java/cloud/mindbox/mobile_sdk/abtests/CustomerAbMixer.kt | 2 +- sdk/src/main/java/cloud/mindbox/mobile_sdk/di/Modules.kt | 0 .../cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt | 4 +++- .../java/cloud/mindbox/mobile_sdk/models/MindboxError.kt | 5 ++++- .../cloud/mindbox/mobile_sdk/models/MindboxErrorAdapter.kt | 2 +- .../cloud/mindbox/mobile_sdk/models/ValidationMessage.kt | 4 +++- .../cloud/mindbox/mobile_sdk/pushes/MindboxPushService.kt | 4 +++- .../main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt | 4 +++- .../cloud/mindbox/mobile_sdk/pushes/PushServiceHandler.kt | 4 +++- .../java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt | 4 +++- .../java/cloud/mindbox/mobile_sdk/utils/ExceptionHandler.kt | 4 +++- 14 files changed, 38 insertions(+), 13 deletions(-) delete mode 100644 sdk/src/main/java/cloud/mindbox/mobile_sdk/di/Modules.kt diff --git a/mindbox-firebase/src/main/java/cloud/mindbox/mindbox_firebase/MindboxFirebase.kt b/mindbox-firebase/src/main/java/cloud/mindbox/mindbox_firebase/MindboxFirebase.kt index 51949acb1..13c2024bc 100644 --- a/mindbox-firebase/src/main/java/cloud/mindbox/mindbox_firebase/MindboxFirebase.kt +++ b/mindbox-firebase/src/main/java/cloud/mindbox/mindbox_firebase/MindboxFirebase.kt @@ -4,7 +4,10 @@ import cloud.mindbox.mobile_sdk.logger.MindboxLogger import cloud.mindbox.mobile_sdk.pushes.MindboxPushService import cloud.mindbox.mobile_sdk.pushes.PushServiceHandler import cloud.mindbox.mobile_sdk.utils.ExceptionHandler - +/** + * An object to use when choosing push provider in Mindbox.initPushServices or Mindbox.init. + * Represents FCM + * */ object MindboxFirebase : MindboxPushService { override val tag: String = "FCM" diff --git a/mindbox-huawei/src/main/java/cloud/mindbox/mindbox_huawei/MindboxHuawei.kt b/mindbox-huawei/src/main/java/cloud/mindbox/mindbox_huawei/MindboxHuawei.kt index 7eafd81f7..87d42293c 100644 --- a/mindbox-huawei/src/main/java/cloud/mindbox/mindbox_huawei/MindboxHuawei.kt +++ b/mindbox-huawei/src/main/java/cloud/mindbox/mindbox_huawei/MindboxHuawei.kt @@ -4,7 +4,10 @@ import cloud.mindbox.mobile_sdk.logger.MindboxLogger import cloud.mindbox.mobile_sdk.pushes.MindboxPushService import cloud.mindbox.mobile_sdk.pushes.PushServiceHandler import cloud.mindbox.mobile_sdk.utils.ExceptionHandler - +/** + * An object to use when choosing push provider in Mindbox.initPushServices or Mindbox.init. + * Represents HCM + * */ object MindboxHuawei : MindboxPushService { override val tag: String = "HCM" diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/InitializeMindboxException.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/InitializeMindboxException.kt index 7a51eb9f8..f96912d9a 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/InitializeMindboxException.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/InitializeMindboxException.kt @@ -1,3 +1,5 @@ package cloud.mindbox.mobile_sdk - +/** + * An error thrown during initialization in case validation of initialization fails + * */ class InitializeMindboxException(message: String) : Exception(message) \ No newline at end of file diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/abtests/CustomerAbMixer.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/abtests/CustomerAbMixer.kt index 07750411e..efd26a7e3 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/abtests/CustomerAbMixer.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/abtests/CustomerAbMixer.kt @@ -1,5 +1,5 @@ package cloud.mindbox.mobile_sdk.abtests -interface CustomerAbMixer { +internal interface CustomerAbMixer { fun stringModulusHash(identifier: String, salt: String): Int } diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/di/Modules.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/di/Modules.kt deleted file mode 100644 index e69de29bb..000000000 diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt index a8c2bdf6c..769ba6e9f 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt @@ -8,7 +8,9 @@ import cloud.mindbox.mobile_sdk.monitoring.domain.interfaces.MonitoringRepositor import com.android.volley.VolleyLog import kotlinx.coroutines.* import org.threeten.bp.Instant - +/** + * An interface for internal sdk work only. Do not implement or use it + * */ interface MindboxLogger { fun i(parent: Any, message: String) diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxError.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxError.kt index 5dfef84f2..c1afb12b0 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxError.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxError.kt @@ -2,7 +2,10 @@ package cloud.mindbox.mobile_sdk.models import com.google.gson.Gson import com.google.gson.annotations.JsonAdapter - +/** + * A class for representing Mindbox error. + * Used in operations. + * */ sealed class MindboxError(open val statusCode: Int?) { companion object { diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxErrorAdapter.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxErrorAdapter.kt index 7bc066206..b17bfe0ab 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxErrorAdapter.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/MindboxErrorAdapter.kt @@ -8,7 +8,7 @@ import com.google.gson.stream.JsonReader import com.google.gson.stream.JsonToken import com.google.gson.stream.JsonWriter -class MindboxErrorAdapter : TypeAdapter() { +internal class MindboxErrorAdapter : TypeAdapter() { private val gson by lazy { Gson() } diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/ValidationMessage.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/ValidationMessage.kt index 20689bd19..e068feace 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/ValidationMessage.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/models/ValidationMessage.kt @@ -1,7 +1,9 @@ package cloud.mindbox.mobile_sdk.models import com.google.gson.annotations.SerializedName - +/** + * A class to hold validation message if validation error occurs + * */ data class ValidationMessage( @SerializedName("message") val message: String? = null, @SerializedName("location") val location: String? = null, diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/MindboxPushService.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/MindboxPushService.kt index d4894a142..5b2694eaf 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/MindboxPushService.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/MindboxPushService.kt @@ -2,7 +2,9 @@ package cloud.mindbox.mobile_sdk.pushes import cloud.mindbox.mobile_sdk.logger.MindboxLogger import cloud.mindbox.mobile_sdk.utils.ExceptionHandler - +/** + * An interface for internal sdk work only. Do not implement it + * */ interface MindboxPushService { val tag: String diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt index cc8db1a08..be518a915 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt @@ -1,7 +1,9 @@ package cloud.mindbox.mobile_sdk.pushes import com.google.gson.annotations.SerializedName - +/** + * A class for internal sdk work only. Do not implement it + * */ data class PushAction( @SerializedName("uniqueKey") val uniqueKey: String?, @SerializedName("text") val text: String?, diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushServiceHandler.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushServiceHandler.kt index 13d62ca25..39ce43d89 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushServiceHandler.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushServiceHandler.kt @@ -4,7 +4,9 @@ import android.content.Context import cloud.mindbox.mobile_sdk.logger.MindboxLoggerImpl import cloud.mindbox.mobile_sdk.utils.LoggingExceptionHandler import java.util.UUID - +/** +* A class for internal sdk work only. Do not extend or use it +* */ abstract class PushServiceHandler { companion object { diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt index 696bda175..931757761 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt @@ -1,5 +1,7 @@ package cloud.mindbox.mobile_sdk.pushes - +/** + * A class for internal sdk work only. Do not extend or use it + * */ data class RemoteMessage( val uniqueKey: String, val title: String, diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/ExceptionHandler.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/ExceptionHandler.kt index 6ecc240f4..071a582c4 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/ExceptionHandler.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/ExceptionHandler.kt @@ -1,5 +1,7 @@ package cloud.mindbox.mobile_sdk.utils - +/** + * A class for internal sdk work only. Do not extend or use it + * */ abstract class ExceptionHandler { fun runCatching(block: () -> T) { From 1b984ef571029dff3721208308e0132b213ef5af Mon Sep 17 00:00:00 2001 From: Robert Alimbekov Date: Thu, 23 Nov 2023 16:36:42 +0500 Subject: [PATCH 4/5] update comments --- .../java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt index 769ba6e9f..10423341b 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/logger/MindboxLoggerImpl.kt @@ -9,7 +9,7 @@ import com.android.volley.VolleyLog import kotlinx.coroutines.* import org.threeten.bp.Instant /** - * An interface for internal sdk work only. Do not implement or use it + * An interface for internal sdk work only. Do not implement or use it. * */ interface MindboxLogger { From 46b08522189846e75308d1b78bf8cf0725219fa9 Mon Sep 17 00:00:00 2001 From: Robert Alimbekov Date: Thu, 23 Nov 2023 16:49:01 +0500 Subject: [PATCH 5/5] update comments --- .../main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt | 4 +++- .../java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt index be518a915..31a7b6231 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/PushAction.kt @@ -2,7 +2,9 @@ package cloud.mindbox.mobile_sdk.pushes import com.google.gson.annotations.SerializedName /** - * A class for internal sdk work only. Do not implement it + * A class representing mindbox push action in [RemoteMessage] + * * You can use it as a model to store data from mindbox + * * with your custom push notification implementation. * */ data class PushAction( @SerializedName("uniqueKey") val uniqueKey: String?, diff --git a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt index 931757761..73381905c 100644 --- a/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt +++ b/sdk/src/main/java/cloud/mindbox/mobile_sdk/pushes/RemoteMessage.kt @@ -1,6 +1,8 @@ package cloud.mindbox.mobile_sdk.pushes /** - * A class for internal sdk work only. Do not extend or use it + * A class representing mindbox remote message + * You can use it as a model to store data from mindbox + * with your custom push notification implementation. * */ data class RemoteMessage( val uniqueKey: String,