Skip to content

Commit ea905a0

Browse files
committed
Show additional information on device verification fail
1 parent ab04d05 commit ea905a0

4 files changed

Lines changed: 27 additions & 5 deletions

File tree

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ android {
145145
buildConfigField "Boolean", "EXTENDED_VALIDATION", "true"
146146
}
147147
debug {
148+
buildConfigField "Boolean", "EXTENDED_VALIDATION", props.getProperty("debugExtendedValidation", "false")
148149
minifyEnabled props.getProperty("minifyEnabled", "true") == "true"
149150
shrinkResources props.getProperty("shrinkResources", "true") == "true"
150151
testProguardFile "test-proguard-rules.pro"

app/src/main/kotlin/com/njlabs/showjava/activities/purchase/PurchaseActivity.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,23 @@ class PurchaseActivity : BaseActivity() {
6060
}
6161
}
6262
},
63-
{ // Do not allow
63+
{ err, app ->// Do not allow
6464
runOnUiThread {
6565
isLoading(false)
6666
buyButton.visibility = View.GONE
67-
Toast.makeText(context, R.string.deviceVerificationFailed, Toast.LENGTH_SHORT).show()
67+
if (app != null) {
68+
Toast.makeText(
69+
context,
70+
getString(R.string.deviceVerificationFailedPirateApp, "${app.name} (${app.packageName})"),
71+
Toast.LENGTH_LONG
72+
).show()
73+
} else {
74+
Toast.makeText(
75+
context,
76+
getString(R.string.deviceVerificationFailed, err.name),
77+
Toast.LENGTH_SHORT
78+
).show()
79+
}
6880
}
6981
},
7082
{ // On Error

app/src/main/kotlin/com/njlabs/showjava/utils/secure/SecureUtils.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import com.android.volley.Response
2626
import com.android.volley.toolbox.JsonObjectRequest
2727
import com.github.javiersantos.piracychecker.*
2828
import com.github.javiersantos.piracychecker.enums.InstallerID
29+
import com.github.javiersantos.piracychecker.enums.PiracyCheckerError
30+
import com.github.javiersantos.piracychecker.enums.PirateApp
2931
import com.njlabs.showjava.BuildConfig
3032
import com.njlabs.showjava.utils.RequestQueue
3133
import com.njlabs.showjava.utils.SingletonHolder
@@ -59,7 +61,7 @@ class SecureUtils(val context: Context) {
5961
return preferences as SecurePreferences
6062
}
6163

62-
fun isSafeExtended(allow: (() -> Unit), doNotAllow: (() -> Unit), onError: (() -> Unit)) {
64+
fun isSafeExtended(allow: (() -> Unit), doNotAllow: ((PiracyCheckerError, PirateApp?) -> Unit), onError: (() -> Unit)) {
6365
Timber.d("[pa] isSafeExtended")
6466
context.piracyChecker {
6567
enableGooglePlayLicensing(BuildConfig.PLAY_LICENSE_KEY)
@@ -71,7 +73,7 @@ class SecureUtils(val context: Context) {
7173
callback {
7274
doNotAllow { a, b ->
7375
Timber.d("[isSafeExtended][doNotAllow] ${a.name} $b")
74-
doNotAllow()
76+
doNotAllow(a, b)
7577
}
7678
allow { allow() }
7779
onError {

app/src/main/res/values/strings.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,14 @@
157157
<string name="purchaseVerificationFailed">Purchase verification failed. Please try again. If issue persists, drop in an email at me\@niranjan.io</string>
158158
<string name="purchaseSuccess">Thank you for purchasing Show Java Pro ! :) You are awesome !</string>
159159
<string name="purchaseInitError">An error occurred while initializing purchase. Please try again later.</string>
160-
<string name="deviceVerificationFailed">Device failed the verification for making in-app purchases on Show Java.</string>
160+
<string name="deviceVerificationFailed">
161+
Device failed the verification for making in-app purchases on Show Java.
162+
(<xliff:g example="PIRATE_APP_CHECK" id="errorName">%1$s</xliff:g>)
163+
</string>
164+
<string name="deviceVerificationFailedPirateApp">
165+
You cannot make in-app purchases on Show Java due to the presence of the app <xliff:g example="Lucky Patcher" id="appName">%1$s</xliff:g>
166+
which is flagged as one that is used for piracy.
167+
</string>
161168
<string name="adPreferences">Ads Preferences</string>
162169
<string name="adPreferencesSummary">Change your personalization preferences for Ads</string>
163170
<string name="initializing">Initializing</string>

0 commit comments

Comments
 (0)