Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Release v1.3.11
Browse files Browse the repository at this point in the history
  • Loading branch information
lgarbo committed Apr 5, 2023
1 parent 84b1f58 commit b55e143
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 10 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Add the dependency to your module-level `build.gradle`:
```
dependencies {
[...]
implementation 'io.glassfy:androidsdk:1.3.10'
implementation 'io.glassfy:androidsdk:1.3.11'
}
```

Expand All @@ -33,7 +33,7 @@ Add the dependency to your module-level `build.gradle.kts`:
```
dependencies {
[...]
implementation("io.glassfy:androidsdk:1.3.10")
implementation("io.glassfy:androidsdk:1.3.11")
}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ object Configuration {
const val minSdk = 21
private const val majorVersion = 1
private const val minorVersion = 3
private const val patchVersion = 10
private const val patchVersion = 11
const val versionName = "$majorVersion.$minorVersion.$patchVersion"
const val snapshotVersionName = "${versionName}-SNAPSHOT"
const val artifactGroup = "io.glassfy"
Expand Down
26 changes: 25 additions & 1 deletion glassfy/src/main/java/io/glassfy/androidsdk/Glassfy.kt
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ object Glassfy {
* @param force Disconnect license from other subscriber(s) and connect with current subscriber
* @param callback Completion callback
*
* @note Check error code in GYDomain - GYErrorCodeLicenseAlreadyConnected, GYErrorCodeLicenseInvalid to handle those cases
* @note Check [GlassfyErrorCode] LicenseAlreadyConnected, LicenseNotFound to handle those cases
*/
@JvmStatic
@JvmOverloads
Expand All @@ -239,6 +239,30 @@ object Glassfy {
}
}

/**
* Connect Glassfy Universal Code
*
* @param universalCode Glassfy Universal Code
* @param force Disconnect the code from other subscriber(s) and connect with current subscriber
* @param callback Completion callback
*
* @note Check [GlassfyErrorCode] UniversalCodeAlreadyConnected, UniversalCodeNotFound to handle those cases
*/
@JvmStatic
@JvmOverloads
fun connectGlassfyUniversalCode(
universalCode: String,
force: Boolean = false,
callback: ErrorCallback
) {
customScope.runAndPostErrResult(callback) {
manager.connectGlassfyUniversalCode(
universalCode,
force
)
}
}

@JvmStatic
fun storeInfo(callback: StoreCallback) {
customScope.runAndPostResult(callback) {
Expand Down
4 changes: 4 additions & 0 deletions glassfy/src/main/java/io/glassfy/androidsdk/GlassfyError.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ enum class GlassfyErrorCode(internal val internalCode: Int? = null) {
ServerError,
LicenseAlreadyConnected(1050),
LicenseNotFound(1051),
UniversalCodeAlreadyConnected(1050),
UniversalCodeNotFound(1051),
InternetConnection,
IOException,
HttpException,
Expand All @@ -40,6 +42,8 @@ enum class GlassfyErrorCode(internal val internalCode: Int? = null) {
ServerError -> "Server error"
LicenseAlreadyConnected -> "License already connected"
LicenseNotFound -> "License not found"
UniversalCodeAlreadyConnected -> "Universal Code already connected"
UniversalCodeNotFound -> "Universal Code not found"
InternetConnection -> "Check your internet connection"
IOException -> "IOException"
HttpException -> "HttpException"
Expand Down
10 changes: 10 additions & 0 deletions glassfy/src/main/java/io/glassfy/androidsdk/internal/GManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,12 @@ internal class GManager : LifecycleEventObserver {
): Resource<Unit> =
withSdkInitializedOrError { _connectPaddleLicense(licenseKey, force) }

internal suspend fun connectGlassfyUniversalCode(
universalCode: String,
force: Boolean
): Resource<Unit> =
withSdkInitializedOrError { _connectGlassfyUniversalCode(universalCode, force) }

internal suspend fun storeInfo(): Resource<StoresInfo> =
withSdkInitializedOrError { repository.storeInfo() }

Expand Down Expand Up @@ -403,6 +409,10 @@ internal class GManager : LifecycleEventObserver {
return if (res.err != null) Resource.Error(res.err) else Resource.Success(Unit)
}

private suspend fun _connectGlassfyUniversalCode(universalCode: String, force: Boolean): Resource<Unit> {
val res = repository.connectGlassfyUniversalCode(ConnectRequest.universalCode(universalCode, force))
return if (res.err != null) Resource.Error(res.err) else Resource.Success(Unit)
}

/// LifecycleEventObserver

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ internal interface IApiService {
@POST("/v0/connect")
suspend fun connectPaddleLicense(@Body body: ConnectRequest): Response<ErrorResponse>

@POST("/v0/connect")
suspend fun connectUniversalCode(@Body body: ConnectRequest): Response<ErrorResponse>

@GET("/v0/storeinfo")
suspend fun getStoreInfo(): Response<StoresInfoResponse>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,8 @@ internal data class ConnectRequest(

internal fun paddleLicense(licenseKey: String, force: Boolean) =
ConnectRequest(store = Store.Paddle.value, licenseKey = licenseKey, force = force)

internal fun universalCode(universalCode: String, force: Boolean) =
ConnectRequest(store = Store.Glassfy.value, licenseKey = universalCode, force = force)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ internal interface IRepository {
suspend fun initialize(init: InitializeRequest): Resource<ServerInfo>
suspend fun connectCustomSubscriber(connect: ConnectRequest): Resource<Unit>
suspend fun connectPaddleLicense(connect: ConnectRequest): Resource<Unit>
suspend fun connectGlassfyUniversalCode(connect: ConnectRequest): Resource<Unit>
suspend fun storeInfo(): Resource<StoresInfo>
suspend fun setUserProperty(req: UserPropertiesRequest): Resource<Unit>
suspend fun getUserProperty(): Resource<UserProperties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,12 +307,40 @@ internal class Repository(
val err =
result?.error?.description?.let {
when (result.error.code) {
GlassfyErrorCode.LicenseAlreadyConnected.internalCode -> GlassfyErrorCode.LicenseAlreadyConnected.toError(
it
)
GlassfyErrorCode.LicenseNotFound.internalCode -> GlassfyErrorCode.LicenseNotFound.toError(
it
)
GlassfyErrorCode.LicenseAlreadyConnected.internalCode -> GlassfyErrorCode.LicenseAlreadyConnected.toError(it)
GlassfyErrorCode.LicenseNotFound.internalCode -> GlassfyErrorCode.LicenseNotFound.toError(it)
else -> GlassfyErrorCode.ServerError.toError(it)
}
} ?: GlassfyErrorCode.UnknowError.toError(response.message())
Resource.Error(err)
}
} catch (e: HttpException) {
Resource.Error(GlassfyErrorCode.HttpException.toError(e.message ?: e.toString()))
} catch (e: UnknownHostException) {
Resource.Error(GlassfyErrorCode.InternetConnection.toError(e.message ?: e.toString()))
} catch (e: IOException) {
Resource.Error(GlassfyErrorCode.IOException.toError(e.message ?: e.toString()))
} catch (e: JsonDataException) {
Resource.Error(GlassfyErrorCode.ServerError.toError(e.message ?: e.toString()))
} catch (e: DTOException) {
Resource.Error(GlassfyErrorCode.ServerError.toError(e.message ?: e.toString()))
} catch (e: Exception) {
Resource.Error(GlassfyErrorCode.UnknowError.toError(e.message ?: e.toString()))
}
}

override suspend fun connectGlassfyUniversalCode(connect: ConnectRequest): Resource<Unit> {
return try {
val response = api.connectUniversalCode(connect)
val result = response.body()
if (response.isSuccessful && result != null && result.error == null) {
Resource.Success(Unit)
} else {
val err =
result?.error?.description?.let {
when (result.error.code) {
GlassfyErrorCode.UniversalCodeAlreadyConnected.internalCode -> GlassfyErrorCode.LicenseAlreadyConnected.toError(it)
GlassfyErrorCode.UniversalCodeNotFound.internalCode -> GlassfyErrorCode.LicenseNotFound.toError(it)
else -> GlassfyErrorCode.ServerError.toError(it)
}
} ?: GlassfyErrorCode.UnknowError.toError(response.message())
Expand Down
4 changes: 4 additions & 0 deletions glassfy/src/main/java/io/glassfy/androidsdk/model/Store.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ enum class Store(val value: Int) {
AppStore(1),
PlayStore(2),
Paddle(3),
Stripe(4),
Glassfy(5),
Unknown(-1);

companion object {
Expand All @@ -12,6 +14,8 @@ enum class Store(val value: Int) {
1 -> AppStore
2 -> PlayStore
3 -> Paddle
4 -> Stripe
5 -> Glassfy

else -> {
Unknown
Expand Down

0 comments on commit b55e143

Please sign in to comment.