expo-store-review 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/android/build.gradle +8 -6
- package/android/src/main/java/expo/modules/storereview/StoreReviewExceptions.kt +12 -0
- package/android/src/main/java/expo/modules/storereview/StoreReviewModule.kt +36 -42
- package/expo-module.config.json +3 -0
- package/package.json +2 -2
- package/android/src/main/java/expo/modules/storereview/StoreReviewPackage.kt +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 6.2.0 — 2023-02-03
|
|
14
|
+
|
|
15
|
+
### 💡 Others
|
|
16
|
+
|
|
17
|
+
- On Android bump `compileSdkVersion` and `targetSdkVersion` to `33`. ([#20721](https://github.com/expo/expo/pull/20721) by [@lukmccall](https://github.com/lukmccall))
|
|
18
|
+
|
|
19
|
+
## 6.1.0 — 2022-12-30
|
|
20
|
+
|
|
21
|
+
### 🎉 New features
|
|
22
|
+
|
|
23
|
+
- Migrated Android implementation to Expo Modules API. ([#19898](https://github.com/expo/expo/pull/19898) by [@alanhughes](https://github.com/alanjhughes))
|
|
24
|
+
|
|
13
25
|
## 6.0.0 — 2022-10-25
|
|
14
26
|
|
|
15
27
|
### 🛠 Breaking changes
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# API documentation
|
|
6
6
|
|
|
7
|
-
- [Documentation for the main branch](https://github.com/expo/expo/blob/main/docs/pages/versions/unversioned/sdk/storereview.
|
|
7
|
+
- [Documentation for the main branch](https://github.com/expo/expo/blob/main/docs/pages/versions/unversioned/sdk/storereview.mdx)
|
|
8
8
|
- [Documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/storereview/)
|
|
9
9
|
|
|
10
10
|
# Installation in managed Expo projects
|
package/android/build.gradle
CHANGED
|
@@ -3,7 +3,7 @@ apply plugin: 'kotlin-android'
|
|
|
3
3
|
apply plugin: 'maven-publish'
|
|
4
4
|
|
|
5
5
|
group = 'host.exp.exponent'
|
|
6
|
-
version = '6.
|
|
6
|
+
version = '6.2.0'
|
|
7
7
|
|
|
8
8
|
buildscript {
|
|
9
9
|
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
@@ -59,7 +59,7 @@ afterEvaluate {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
android {
|
|
62
|
-
compileSdkVersion safeExtGet("compileSdkVersion",
|
|
62
|
+
compileSdkVersion safeExtGet("compileSdkVersion", 33)
|
|
63
63
|
|
|
64
64
|
compileOptions {
|
|
65
65
|
sourceCompatibility JavaVersion.VERSION_11
|
|
@@ -72,9 +72,9 @@ android {
|
|
|
72
72
|
|
|
73
73
|
defaultConfig {
|
|
74
74
|
minSdkVersion safeExtGet("minSdkVersion", 21)
|
|
75
|
-
targetSdkVersion safeExtGet("targetSdkVersion",
|
|
75
|
+
targetSdkVersion safeExtGet("targetSdkVersion", 33)
|
|
76
76
|
versionCode 4
|
|
77
|
-
versionName "6.
|
|
77
|
+
versionName "6.2.0"
|
|
78
78
|
}
|
|
79
79
|
lintOptions {
|
|
80
80
|
abortOnError false
|
|
@@ -84,6 +84,8 @@ android {
|
|
|
84
84
|
dependencies {
|
|
85
85
|
implementation project(':expo-modules-core')
|
|
86
86
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
|
|
88
|
+
implementation "com.google.android.play:review:2.0.1"
|
|
89
|
+
implementation "com.google.android.play:review-ktx:2.0.0"
|
|
90
|
+
api "com.google.android.gms:play-services-base:17.3.0"
|
|
89
91
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package expo.modules.storereview
|
|
2
|
+
|
|
3
|
+
import expo.modules.kotlin.exception.CodedException
|
|
4
|
+
|
|
5
|
+
internal class MissingCurrentActivityException :
|
|
6
|
+
CodedException("Activity which was provided during module initialization is no longer available")
|
|
7
|
+
|
|
8
|
+
internal class RMTaskException :
|
|
9
|
+
CodedException("Android ReviewManager task failed")
|
|
10
|
+
|
|
11
|
+
internal class RMUnsuccessfulTaskException :
|
|
12
|
+
CodedException("Android ReviewManager task was not successful")
|
|
@@ -6,65 +6,59 @@ import android.os.Build
|
|
|
6
6
|
import com.google.android.gms.common.GooglePlayServicesUtil
|
|
7
7
|
import com.google.android.play.core.review.ReviewManager
|
|
8
8
|
import com.google.android.play.core.review.ReviewManagerFactory
|
|
9
|
-
import expo.modules.
|
|
10
|
-
import expo.modules.
|
|
11
|
-
import expo.modules.
|
|
12
|
-
import expo.modules.
|
|
13
|
-
import expo.modules.core.interfaces.ExpoMethod
|
|
9
|
+
import expo.modules.kotlin.Promise
|
|
10
|
+
import expo.modules.kotlin.exception.Exceptions
|
|
11
|
+
import expo.modules.kotlin.modules.Module
|
|
12
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
14
13
|
|
|
15
|
-
class StoreReviewModule
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
private const val NAME = "ExpoStoreReview"
|
|
19
|
-
}
|
|
14
|
+
class StoreReviewModule : Module() {
|
|
15
|
+
private val context: Context
|
|
16
|
+
get() = appContext.reactContext ?: throw Exceptions.ReactContextLost()
|
|
20
17
|
|
|
21
|
-
private
|
|
18
|
+
private val currentActivity
|
|
19
|
+
get() = appContext.activityProvider?.currentActivity
|
|
20
|
+
?: throw MissingCurrentActivityException()
|
|
22
21
|
|
|
23
|
-
override fun
|
|
24
|
-
|
|
25
|
-
}
|
|
22
|
+
override fun definition() = ModuleDefinition {
|
|
23
|
+
Name("ExpoStoreReview")
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
AsyncFunction("isAvailableAsync") {
|
|
26
|
+
return@AsyncFunction Build.VERSION.SDK_INT >= 21 && isPlayStoreInstalled()
|
|
27
|
+
}
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (Build.VERSION.SDK_INT >= 21 && isPlayStoreInstalled()) {
|
|
34
|
-
promise.resolve(true)
|
|
35
|
-
} else {
|
|
36
|
-
promise.resolve(false)
|
|
29
|
+
AsyncFunction("requestReview") { promise: Promise ->
|
|
30
|
+
requestReview(promise)
|
|
37
31
|
}
|
|
38
32
|
}
|
|
39
33
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
val manager: ReviewManager = ReviewManagerFactory.create(mContext)
|
|
34
|
+
private fun requestReview(promise: Promise) {
|
|
35
|
+
val manager: ReviewManager = ReviewManagerFactory.create(context)
|
|
43
36
|
val request = manager.requestReviewFlow()
|
|
37
|
+
|
|
44
38
|
request.addOnCompleteListener { task ->
|
|
45
39
|
if (task.isSuccessful) {
|
|
46
40
|
val reviewInfo = task.result
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
reviewInfo?.let {
|
|
42
|
+
val flow = manager.launchReviewFlow(currentActivity, it)
|
|
43
|
+
flow.addOnCompleteListener { result ->
|
|
44
|
+
if (result.isSuccessful) {
|
|
45
|
+
promise.resolve(null)
|
|
46
|
+
} else {
|
|
47
|
+
promise.reject(RMTaskException())
|
|
48
|
+
}
|
|
53
49
|
}
|
|
54
|
-
}
|
|
50
|
+
} ?: promise.reject(RMTaskException())
|
|
55
51
|
} else {
|
|
56
|
-
promise.reject(
|
|
52
|
+
promise.reject(RMUnsuccessfulTaskException())
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
56
|
|
|
61
|
-
private fun isPlayStoreInstalled(): Boolean {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
false
|
|
68
|
-
}
|
|
57
|
+
private fun isPlayStoreInstalled(): Boolean = try {
|
|
58
|
+
context.packageManager
|
|
59
|
+
.getPackageInfo(GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0)
|
|
60
|
+
true
|
|
61
|
+
} catch (e: PackageManager.NameNotFoundException) {
|
|
62
|
+
false
|
|
69
63
|
}
|
|
70
64
|
}
|
package/expo-module.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-store-review",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "ExpoStoreReview standalone module",
|
|
5
5
|
"main": "build/StoreReview.js",
|
|
6
6
|
"types": "build/StoreReview.d.ts",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"expo": "*"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "1815e2eaad8c753588c7b1eb74420174a28e01f4"
|
|
40
40
|
}
|