From 233a4264b48903bfc6bc642bba481ed55bdeefc3 Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Thu, 8 Nov 2018 18:09:52 -0500 Subject: [PATCH 1/8] Migrate to Android X --- app/build.gradle | 15 +++-- .../piracychecker/PiracyCheckerTest.java | 64 +++++++++---------- .../piracychecker/UnauthorizedAppTest.java | 30 ++++----- .../UnauthorizedAppUninstalledTest.java | 20 +++--- .../piracychecker/demo/KotlinActivity.kt | 6 +- .../piracychecker/demo/MainActivity.java | 8 +-- app/src/main/res/layout/activity_main.xml | 16 ++--- app/src/main/res/layout/content_main.xml | 32 +++++----- app/src/main/res/values-v21/styles.xml | 1 + app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 1 + build.gradle | 8 +-- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- library/build.gradle | 9 +-- library/src/main/AndroidManifest.xml | 3 +- .../javiersantos/piracychecker/Extensions.kt | 4 +- .../piracychecker/PiracyChecker.kt | 6 +- .../activities/LicenseActivity.kt | 10 +-- .../piracychecker/utils/LibraryUtils.kt | 8 +-- .../src/main/res/layout/activity_license.xml | 28 ++++---- library/src/main/res/values-es/strings.xml | 1 + library/src/main/res/values-sk/strings.xml | 1 + library/src/main/res/values/strings.xml | 1 + library/src/main/res/values/styles.xml | 1 - 26 files changed, 150 insertions(+), 131 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8f488f4..7d1e5db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,7 +10,7 @@ android { targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -36,17 +36,20 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'com.android.support:design:28.0.0' - implementation 'com.android.support:cardview-v7:28.0.0' implementation project(':library') + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.cardview:cardview:1.0.0' + // Testing-only dependencies testImplementation 'junit:junit:4.12' - androidTestImplementation('com.android.support.test:runner:1.0.1', { + androidTestImplementation 'androidx.test:rules:1.1.0' + androidTestImplementation('androidx.test:runner:1.1.0', { exclude group: 'com.android.support', module: 'support-annotations' }) - androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', { + androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', { exclude group: 'com.android.support', module: 'support-annotations' }) } \ No newline at end of file diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java index fce9782..e6f8c6c 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java @@ -1,9 +1,5 @@ package com.github.javiersantos.piracychecker; -import android.support.test.InstrumentationRegistry; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; - import com.github.javiersantos.piracychecker.callbacks.PiracyCheckerCallback; import com.github.javiersantos.piracychecker.demo.MainActivity; import com.github.javiersantos.piracychecker.enums.InstallerID; @@ -19,6 +15,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import androidx.test.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + import static org.junit.Assert.assertTrue; /** @@ -26,11 +26,11 @@ */ @RunWith(AndroidJUnit4.class) public class PiracyCheckerTest { - + @Rule public final ActivityTestRule uiThreadTestRule = new ActivityTestRule<>(MainActivity.class); - + @Test public void verifySigningCertificate_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -45,7 +45,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -60,10 +60,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifySigningCertificate_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -79,7 +79,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -94,10 +94,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyInstaller_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -117,7 +117,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -132,10 +132,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyUnauthorizedApps_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -150,7 +150,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -161,10 +161,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyThirdPartyStores_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -179,7 +179,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -190,10 +190,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyDeepPirate_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -208,7 +208,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -219,10 +219,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyDebug_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -238,7 +238,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -253,10 +253,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyEmulator_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -272,7 +272,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -287,10 +287,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyEmulatorDeep_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -306,7 +306,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -321,7 +321,7 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } } \ No newline at end of file diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java index ce5a005..329e495 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java @@ -1,9 +1,5 @@ package com.github.javiersantos.piracychecker; -import android.support.test.InstrumentationRegistry; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; - import com.github.javiersantos.piracychecker.callbacks.PiracyCheckerCallback; import com.github.javiersantos.piracychecker.demo.MainActivity; import com.github.javiersantos.piracychecker.enums.PiracyCheckerError; @@ -17,6 +13,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import androidx.test.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + import static org.junit.Assert.assertTrue; /** @@ -25,11 +25,11 @@ */ @RunWith(AndroidJUnit4.class) public class UnauthorizedAppTest { - + @Rule public final ActivityTestRule uiThreadTestRule = new ActivityTestRule<>(MainActivity.class); - + @Test public void verifyUnauthorizedCustomApp_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -46,7 +46,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -58,10 +58,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyUnauthorizedCustomApp_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -80,7 +80,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -95,10 +95,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyUnauthorizedApps_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -117,7 +117,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -132,8 +132,8 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + } diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java index 266d9c4..2d8e621 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java @@ -1,9 +1,5 @@ package com.github.javiersantos.piracychecker; -import android.support.test.InstrumentationRegistry; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; - import com.github.javiersantos.piracychecker.callbacks.PiracyCheckerCallback; import com.github.javiersantos.piracychecker.demo.MainActivity; import com.github.javiersantos.piracychecker.enums.PiracyCheckerError; @@ -17,6 +13,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import androidx.test.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + import static org.junit.Assert.assertTrue; /** @@ -25,11 +25,11 @@ */ @RunWith(AndroidJUnit4.class) public class UnauthorizedAppUninstalledTest { - + @Rule public final ActivityTestRule uiThreadTestRule = new ActivityTestRule<>(MainActivity.class); - + @Test public void verifyBlockUnauthorizedApps_DONTALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -49,7 +49,7 @@ public void allow() { false); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { @@ -64,10 +64,10 @@ public void doNotAllow(@NotNull PiracyCheckerError error, .start(); } }); - + signal.await(30, TimeUnit.SECONDS); } - + @Test public void verifyUnauthorizedApps_ALLOW() throws Throwable { final CountDownLatch signal = new CountDownLatch(1); @@ -82,7 +82,7 @@ public void allow() { assertTrue("PiracyChecker OK", true); signal.countDown(); } - + @Override public void doNotAllow(@NotNull PiracyCheckerError error, @org.jetbrains.annotations.Nullable PirateApp app) { diff --git a/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt b/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt index 2fe5458..be6751f 100644 --- a/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt +++ b/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt @@ -3,9 +3,9 @@ package com.github.javiersantos.piracychecker.demo import android.content.Intent import android.net.Uri import android.os.Bundle -import android.support.v7.app.AlertDialog -import android.support.v7.app.AppCompatActivity -import android.support.v7.widget.Toolbar +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.Toolbar import android.util.Log import android.widget.RadioGroup import com.github.javiersantos.piracychecker.allow diff --git a/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java b/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java index d90b1d4..4c6d4e2 100644 --- a/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java +++ b/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java @@ -3,10 +3,10 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.IdRes; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.annotation.IdRes; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.View; import android.widget.RadioGroup; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f0cca3c..f1a846d 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - - - - + + - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index 83af7b5..edaae7b 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -1,5 +1,5 @@ - - - + - - + - - + - - + - - + - - + - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index dbbdd40..7b61783 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -1,3 +1,4 @@ + - \ No newline at end of file From 63d1afbb62155a60de889443432adcbfb7842d58 Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Thu, 8 Nov 2018 18:11:02 -0500 Subject: [PATCH 2/8] Update README --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 017968b..a86bb33 100644 --- a/README.md +++ b/README.md @@ -34,12 +34,23 @@ repositories { And add the library to your module **build.gradle**: +**AndroidX** + +```gradle +dependencies { + implementation 'com.github.javiersantos:PiracyChecker:1.2.5' +} +``` + +**Pre AndroidX (no longer supported)** + ```gradle dependencies { implementation 'com.github.javiersantos:PiracyChecker:1.2.4' } ``` + ## Recommendations * Always enable ProGuard in your production release. Always, without exceptions. * PiracyChecker should be included in your `onCreate` method in order to check for a valid license as soon as possible. From cae7a07ac12d4c8f5153ec86111940bf68f81031 Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Thu, 8 Nov 2018 18:24:44 -0500 Subject: [PATCH 3/8] Increase AVD API --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 33ddb13..21d469e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ env: global: - ANDROID_API=28 - ANDROID_BUILD_TOOLS=28.0.3 - - EMULATOR_API=24 + - EMULATOR_API=26 android: components: From b1803da3a40df5ea65ab1d2063db9716bee0b5ad Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Thu, 8 Nov 2018 18:35:26 -0500 Subject: [PATCH 4/8] Change AVD API --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 21d469e..55056bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ env: global: - ANDROID_API=28 - ANDROID_BUILD_TOOLS=28.0.3 - - EMULATOR_API=26 + - EMULATOR_API=21 android: components: From 8b7a4c711b15deda3d9c96c6a909afce573ff85d Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Fri, 9 Nov 2018 14:41:29 -0500 Subject: [PATCH 5/8] Attempt to fix crash in certain devices --- .../javiersantos/piracychecker/Extensions.kt | 2 +- .../piracychecker/PiracyChecker.kt | 25 ++-- .../piracychecker/PiracyCheckerDialog.kt | 13 +- .../activities/LicenseActivity.kt | 42 +++--- .../piracychecker/utils/LibraryUtils.kt | 133 ++++++++++-------- 5 files changed, 115 insertions(+), 100 deletions(-) diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt b/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt index 4ee96e9..045b22c 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt @@ -15,7 +15,7 @@ fun Context.piracyChecker(builder: PiracyChecker.() -> Unit): PiracyChecker { return checker } -fun androidx.fragment.app.Fragment.piracyChecker(builder: PiracyChecker.() -> Unit): PiracyChecker = +fun Fragment.piracyChecker(builder: PiracyChecker.() -> Unit): PiracyChecker = context!!.piracyChecker(builder) inline fun PiracyChecker.allow(crossinline allow: () -> Unit = {}) = apply { diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt index 1e4bebc..8dcd45c 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt @@ -6,10 +6,10 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.provider.Settings +import android.util.Log import androidx.annotation.ColorRes import androidx.annotation.LayoutRes import androidx.annotation.StringRes -import android.util.Log import com.github.javiersantos.licensing.AESObfuscator import com.github.javiersantos.licensing.LibraryChecker import com.github.javiersantos.licensing.LibraryCheckerCallback @@ -337,9 +337,7 @@ class PiracyChecker( .putExtra("withLightStatusBar", withLightStatusBar) .putExtra("layoutXML", layoutXML) context?.startActivity(intent) - if (context is Activity) { - (context as Activity).finish() - } + (context as? Activity)?.finish() destroy() } } @@ -411,18 +409,17 @@ class PiracyChecker( extraApps) if (possibleSuccess) { if (enableDebugCheck && (context?.isDebug() == true)) { - if (preferences != null && saveToSharedPreferences) + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, false)?.apply() doNotAllowCallback?.doNotAllow(PiracyCheckerError.USING_DEBUG_APP, null) - } else if (enableEmulatorCheck && isInEmulator( - enableDeepEmulatorCheck)) { - if (preferences != null && saveToSharedPreferences) + } else if (enableEmulatorCheck && isInEmulator(enableDeepEmulatorCheck)) { + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, false)?.apply() doNotAllowCallback?.doNotAllow(PiracyCheckerError.USING_APP_IN_EMULATOR, null) } else if (app != null) { - if (preferences != null && saveToSharedPreferences) + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, false)?.apply() - if (preferences != null && blockUnauthorized && app.type == AppType.PIRATE) + if (blockUnauthorized && app.type == AppType.PIRATE) preferences?.edit()?.putBoolean(preferenceBlockUnauthorized, true)?.apply() doNotAllowCallback?.doNotAllow( if (app.type == AppType.STORE) @@ -430,15 +427,15 @@ class PiracyChecker( else PiracyCheckerError.PIRATE_APP_INSTALLED, app) } else { - if (preferences != null && saveToSharedPreferences) + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, true)?.apply() allowCallback?.allow() } } else { if (app != null) { - if (preferences != null && saveToSharedPreferences) + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, false)?.apply() - if (preferences != null && blockUnauthorized && app.type == AppType.PIRATE) + if (blockUnauthorized && app.type == AppType.PIRATE) preferences?.edit()?.putBoolean(preferenceBlockUnauthorized, true)?.apply() doNotAllowCallback?.doNotAllow( if (app.type == AppType.STORE) @@ -446,7 +443,7 @@ class PiracyChecker( else PiracyCheckerError.PIRATE_APP_INSTALLED, app) } else { - if (preferences != null && saveToSharedPreferences) + if (saveToSharedPreferences) preferences?.edit()?.putBoolean(preferenceSaveResult, false)?.apply() doNotAllowCallback?.doNotAllow(PiracyCheckerError.NOT_LICENSED, null) } diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyCheckerDialog.kt b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyCheckerDialog.kt index d4ac958..6abd61c 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyCheckerDialog.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyCheckerDialog.kt @@ -1,22 +1,23 @@ package com.github.javiersantos.piracychecker -import android.app.Activity import android.app.Dialog -import android.app.DialogFragment import android.content.Context import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.DialogFragment import com.github.javiersantos.piracychecker.utils.buildUnlicensedDialog class PiracyCheckerDialog : DialogFragment() { fun show(context: Context) { - (context as? Activity)?.let { - pcDialog?.show(it.fragmentManager, "[LICENSE_DIALOG]") + (context as? AppCompatActivity)?.let { + pcDialog?.show(it.supportFragmentManager, "[LICENSE_DIALOG]") } } - override fun onCreateDialog(savedInstanceState: Bundle): Dialog? { + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + super.onCreateDialog(savedInstanceState) isCancelable = false - return activity.buildUnlicensedDialog(title.orEmpty(), content.orEmpty()) + return activity?.buildUnlicensedDialog(title.orEmpty(), content.orEmpty())!! } companion object { diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/activities/LicenseActivity.kt b/library/src/main/java/com/github/javiersantos/piracychecker/activities/LicenseActivity.kt index 52b67c6..6838f13 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/activities/LicenseActivity.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/activities/LicenseActivity.kt @@ -3,16 +3,15 @@ package com.github.javiersantos.piracychecker.activities import android.annotation.SuppressLint import android.os.Build import android.os.Bundle -import androidx.annotation.ColorRes -import androidx.annotation.LayoutRes -import androidx.core.content.ContextCompat -import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.Toolbar import android.view.LayoutInflater import android.view.View import android.widget.FrameLayout import android.widget.TextView - +import androidx.annotation.ColorRes +import androidx.annotation.LayoutRes +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.Toolbar +import androidx.core.content.ContextCompat import com.github.javiersantos.piracychecker.R class LicenseActivity : AppCompatActivity() { @@ -34,15 +33,15 @@ class LicenseActivity : AppCompatActivity() { } private fun getIntentData() { - if (intent != null) { - description = intent.getStringExtra("content") - colorPrimary = intent.getIntExtra( - "colorPrimary", ContextCompat.getColor(this, R.color.colorPrimary)) - colorPrimaryDark = intent.getIntExtra( - "colorPrimaryDark", ContextCompat.getColor(this, R.color.colorPrimaryDark)) - withLightStatusBar = intent.getBooleanExtra("withLightStatusBar", false) - layoutXML = intent.getIntExtra("layoutXML", -1) - } + description = intent?.getStringExtra("content") ?: "" + colorPrimary = intent?.getIntExtra( + "colorPrimary", ContextCompat.getColor(this, R.color.colorPrimary)) ?: + ContextCompat.getColor(this, R.color.colorPrimary) + colorPrimaryDark = intent?.getIntExtra( + "colorPrimaryDark", ContextCompat.getColor(this, R.color.colorPrimaryDark)) ?: + ContextCompat.getColor(this, R.color.colorPrimaryDark) + withLightStatusBar = intent?.getBooleanExtra("withLightStatusBar", false) ?: false + layoutXML = intent?.getIntExtra("layoutXML", -1) ?: -1 } private fun setActivityStyle() { @@ -60,18 +59,17 @@ class LicenseActivity : AppCompatActivity() { @SuppressLint("InflateParams") private fun setActivityData() { - val frameLayout = findViewById(R.id.mainContainer) as FrameLayout + val frameLayout = findViewById(R.id.mainContainer) val factory = LayoutInflater.from(this) - val inflateView: View + val inflateView: View? if (layoutXML == -1) { inflateView = factory.inflate(R.layout.activity_license_default, null) val activityDescription = - inflateView.findViewById(R.id.piracy_checker_description) as TextView - activityDescription.text = description - } else - inflateView = factory.inflate(layoutXML, null) + inflateView.findViewById(R.id.piracy_checker_description) + activityDescription?.text = description + } else inflateView = factory.inflate(layoutXML, null) - frameLayout.addView(inflateView) + inflateView?.let { frameLayout?.addView(it) } } } \ No newline at end of file diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt b/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt index c733087..a048afe 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt @@ -11,10 +11,9 @@ import android.content.pm.PackageManager import android.opengl.GLES20 import android.os.Build import android.os.Environment -import androidx.core.app.ActivityCompat -import androidx.fragment.app.Fragment -import androidx.appcompat.app.AlertDialog import android.util.Base64 +import androidx.appcompat.app.AlertDialog +import androidx.core.app.ActivityCompat import com.github.javiersantos.piracychecker.R import com.github.javiersantos.piracychecker.enums.AppType import com.github.javiersantos.piracychecker.enums.InstallerID @@ -175,90 +174,107 @@ internal fun Context.getPirateApp( internal fun isInEmulator(deepCheck: Boolean): Boolean { var ratingCheckEmulator = 0 - if (Build.PRODUCT.contains("sdk") || - Build.PRODUCT.contains("Andy") || - Build.PRODUCT.contains("ttVM_Hdragon") || - Build.PRODUCT.contains("google_sdk") || - Build.PRODUCT.contains("Droid4X") || - Build.PRODUCT.contains("nox") || - Build.PRODUCT.contains("sdk_x86") || - Build.PRODUCT.contains("sdk_google") || - Build.PRODUCT.contains("vbox86p")) { + val product = try { + Build.PRODUCT + } catch (e: Exception) { + "" + } + if (product.containsIgnoreCase("sdk") || product.containsIgnoreCase("Andy") || + product.containsIgnoreCase("ttVM_Hdragon") || product.containsIgnoreCase("google_sdk") || + product.containsIgnoreCase("Droid4X") || product.containsIgnoreCase("nox") || + product.containsIgnoreCase("sdk_x86") || product.containsIgnoreCase("sdk_google") || + product.containsIgnoreCase("vbox86p")) { ratingCheckEmulator++ } - if (Build.MANUFACTURER == "unknown" || - Build.MANUFACTURER == "Genymotion" || - Build.MANUFACTURER.contains("Andy") || - Build.MANUFACTURER.contains("MIT") || - Build.MANUFACTURER.contains("nox") || - Build.MANUFACTURER.contains("TiantianVM")) { + val manufacturer = try { + Build.MANUFACTURER + } catch (e: Exception) { + "" + } + if (manufacturer.equalsIgnoreCase("unknown") || manufacturer.equalsIgnoreCase("Genymotion") || + manufacturer.containsIgnoreCase("Andy") || manufacturer.containsIgnoreCase("MIT") || + manufacturer.containsIgnoreCase("nox") || manufacturer.containsIgnoreCase("TiantianVM")) { ratingCheckEmulator++ } - if (Build.BRAND == "generic" || - Build.BRAND == "generic_x86" || - Build.BRAND == "TTVM" || - Build.BRAND.contains("Andy")) { + val brand = try { + Build.BRAND + } catch (e: Exception) { + "" + } + if (brand.equalsIgnoreCase("generic") || brand.equalsIgnoreCase("generic_x86") || + brand.equalsIgnoreCase("TTVM") || brand.containsIgnoreCase("Andy")) { ratingCheckEmulator++ } - if (Build.DEVICE.contains("generic") || - Build.DEVICE.contains("generic_x86") || - Build.DEVICE.contains("Andy") || - Build.DEVICE.contains("ttVM_Hdragon") || - Build.DEVICE.contains("Droid4X") || - Build.DEVICE.contains("nox") || - Build.DEVICE.contains("generic_x86_64") || - Build.DEVICE.contains("vbox86p")) { + val device = try { + Build.DEVICE + } catch (e: Exception) { + "" + } + if (device.containsIgnoreCase("generic") || device.containsIgnoreCase("generic_x86") || + device.containsIgnoreCase("Andy") || device.containsIgnoreCase("ttVM_Hdragon") || + device.containsIgnoreCase("Droid4X") || device.containsIgnoreCase("nox") || + device.containsIgnoreCase("generic_x86_64") || device.containsIgnoreCase("vbox86p")) { ratingCheckEmulator++ } - if (Build.MODEL == "sdk" || - Build.MODEL == "google_sdk" || - Build.MODEL.contains("Droid4X") || - Build.MODEL.contains("TiantianVM") || - Build.MODEL.contains("Andy") || - Build.MODEL == "Android SDK built for x86_64" || - Build.MODEL == "Android SDK built for x86") { + val model = try { + Build.MODEL + } catch (e: Exception) { + "" + } + if (model.equalsIgnoreCase("sdk") || model.equalsIgnoreCase("google_sdk") || + model.containsIgnoreCase("Droid4X") || model.containsIgnoreCase("TiantianVM") || + model.containsIgnoreCase("Andy") || model.equalsIgnoreCase( + "Android SDK built for x86_64") || + model.equalsIgnoreCase("Android SDK built for x86")) { ratingCheckEmulator++ } - if (Build.HARDWARE == "goldfish" || - Build.HARDWARE == "vbox86" || - Build.HARDWARE.contains("nox") || - Build.HARDWARE.contains("ttVM_x86")) { + val hardware = try { + Build.HARDWARE + } catch (e: Exception) { + "" + } + if (hardware.equalsIgnoreCase("goldfish") || hardware.equalsIgnoreCase("vbox86") || + hardware.containsIgnoreCase("nox") || hardware.containsIgnoreCase("ttVM_x86")) { ratingCheckEmulator++ } - if (Build.FINGERPRINT.contains("generic") || - Build.FINGERPRINT.contains("generic/sdk/generic") || - Build.FINGERPRINT.contains("generic_x86/sdk_x86/generic_x86") || - Build.FINGERPRINT.contains("Andy") || - Build.FINGERPRINT.contains("ttVM_Hdragon") || - Build.FINGERPRINT.contains("generic_x86_64") || - Build.FINGERPRINT.contains("generic/google_sdk/generic") || - Build.FINGERPRINT.contains("vbox86p") || - Build.FINGERPRINT.contains("generic/vbox86p/vbox86p")) { + val fingerprint = try { + Build.FINGERPRINT + } catch (e: Exception) { + "" + } + if (fingerprint.containsIgnoreCase("generic") || + fingerprint.containsIgnoreCase("generic/sdk/generic") || + fingerprint.containsIgnoreCase("generic_x86/sdk_x86/generic_x86") || + fingerprint.containsIgnoreCase("Andy") || fingerprint.containsIgnoreCase("ttVM_Hdragon") || + fingerprint.containsIgnoreCase("generic_x86_64") || + fingerprint.containsIgnoreCase("generic/google_sdk/generic") || + fingerprint.containsIgnoreCase("vbox86p") || + fingerprint.containsIgnoreCase("generic/vbox86p/vbox86p")) { ratingCheckEmulator++ } if (deepCheck) { try { - val opengl = GLES20.glGetString(GLES20.GL_RENDERER) - if (opengl != null) { - if (opengl.contains("Bluestacks") || opengl.contains("Translator")) + GLES20.glGetString(GLES20.GL_RENDERER)?.let { + if (it.containsIgnoreCase("Bluestacks") || it.containsIgnoreCase("Translator")) ratingCheckEmulator += 10 } - } catch (ignored: Exception) { + } catch (e: Exception) { } try { val sharedFolder = File( - "${Environment.getExternalStorageDirectory()}${File.separatorChar}windows${File.separatorChar}BstSharedFolder") + "${Environment.getExternalStorageDirectory()}${File.separatorChar}windows" + + "${File.separatorChar}BstSharedFolder") if (sharedFolder.exists()) ratingCheckEmulator += 10 - } catch (ignored: Exception) { + } catch (e: Exception) { } } @@ -538,4 +554,7 @@ private fun Context.shouldAskPermission(permission: String): Boolean { return permissionResult != PackageManager.PERMISSION_GRANTED } return false -} \ No newline at end of file +} + +private fun String.equalsIgnoreCase(other: String) = this.equals(other, true) +private fun String.containsIgnoreCase(other: String) = this.contains(other, true) \ No newline at end of file From 038c6ab44cb2904beefecd86187835d6f360c49d Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Sat, 10 Nov 2018 10:02:08 -0500 Subject: [PATCH 6/8] Minor fixes --- .../com/github/javiersantos/piracychecker/Extensions.kt | 2 +- .../javiersantos/piracychecker/utils/LibraryUtils.kt | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt b/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt index 045b22c..1202cad 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/Extensions.kt @@ -16,7 +16,7 @@ fun Context.piracyChecker(builder: PiracyChecker.() -> Unit): PiracyChecker { } fun Fragment.piracyChecker(builder: PiracyChecker.() -> Unit): PiracyChecker = - context!!.piracyChecker(builder) + activity?.piracyChecker(builder) ?: context!!.piracyChecker(builder) inline fun PiracyChecker.allow(crossinline allow: () -> Unit = {}) = apply { allowCallback(object : AllowCallback { diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt b/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt index a048afe..2042ccf 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/utils/LibraryUtils.kt @@ -14,6 +14,7 @@ import android.os.Environment import android.util.Base64 import androidx.appcompat.app.AlertDialog import androidx.core.app.ActivityCompat +import androidx.fragment.app.Fragment import com.github.javiersantos.piracychecker.R import com.github.javiersantos.piracychecker.enums.AppType import com.github.javiersantos.piracychecker.enums.InstallerID @@ -43,8 +44,8 @@ internal fun Context.buildUnlicensedDialog(title: String, content: String): Aler val Context.apkSignature: String get() = currentSignature -val androidx.fragment.app.Fragment.apkSignature: String - get() = context!!.apkSignature +val Fragment.apkSignature: String? + get() = context?.apkSignature val Context.currentSignature: String @SuppressLint("PackageManagerGetSignatures") @@ -171,7 +172,7 @@ internal fun Context.getPirateApp( * * Copyright (C) 2013, Vladislav Gingo Skoumal (http://www.skoumal.net) */ -internal fun isInEmulator(deepCheck: Boolean): Boolean { +internal fun isInEmulator(deepCheck: Boolean = false): Boolean { var ratingCheckEmulator = 0 val product = try { From 7ce76be4946414ec9984132f087b5f86d4b2e4fe Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Sat, 10 Nov 2018 10:17:14 -0500 Subject: [PATCH 7/8] Make enablers work as expected: i.e. everything is disabled until the enabler method is called --- README.md | 22 ++++++----- .../piracychecker/PiracyChecker.kt | 38 +++++++++---------- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index a86bb33..ece266b 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,7 @@ It will check for: Lucky Patcher, Uret Patcher, Freedom, CreeHack and HappyMod. ```kotlin piracyChecker { - enableUnauthorizedAppsCheck(true) + enableUnauthorizedAppsCheck() ... }.start() ``` @@ -179,7 +179,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() ... .start(); ``` @@ -231,7 +231,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .blockIfUnauthorizedAppUninstalled(preferences, "app_unauthorized") // Change "app_unauthorized" with your own value ... .start(); @@ -255,7 +255,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .blockIfUnauthorizedAppUninstalled("license_preferences", "app_unauthorized") // Change "license_preferences" and "app_unauthorized" with your own value ... .start(); @@ -281,7 +281,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableStoresCheck(true) + .enableStoresCheck() ... .start(); ``` @@ -304,7 +304,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableFoldersCheck(true) + .enableFoldersCheck() ... .start(); ``` @@ -326,7 +326,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableAPKCheck(true) + .enableAPKCheck() ... .start(); ``` @@ -352,7 +352,7 @@ piracyChecker { ```java new PiracyChecker(this) - .enableDebugCheck(true) + .enableDebugCheck() ... .start(); ``` @@ -364,8 +364,10 @@ new PiracyChecker(this) ### Verify if app is being run in an emulator If your app is running on an emulator outside the development process, it gives an indication that someone other than you is trying to analyze the app. +**Warning!**: Using deep check can cause crashes in some specific devices. + ```kotlin -val deepCheck = fals +val deepCheck = false piracyChecker { .enableEmulatorCheck(deepCheck) ... @@ -561,7 +563,7 @@ piracyChecker { new PiracyChecker(this) .enableGooglePlayLicensing("BASE_64_LICENSE_KEY") .enableSigningCertificate("YOUR_APK_SIGNATURE") - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .saveResultToSharedPreferences("my_app_preferences", "valid_license") ... .start(); diff --git a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt index 8dcd45c..3dc861c 100644 --- a/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt +++ b/library/src/main/java/com/github/javiersantos/piracychecker/PiracyChecker.kt @@ -126,8 +126,8 @@ class PiracyChecker( return this } - fun enableUnauthorizedAppsCheck(enable: Boolean = true): PiracyChecker { - this.enableUnauthorizedAppsCheck = enable + fun enableUnauthorizedAppsCheck(): PiracyChecker { + this.enableUnauthorizedAppsCheck = true return this } @@ -151,29 +151,29 @@ class PiracyChecker( return this } - fun enableStoresCheck(enable: Boolean = true): PiracyChecker { - this.enableStoresCheck = enable + fun enableStoresCheck(): PiracyChecker { + this.enableStoresCheck = true return this } - fun enableDebugCheck(enable: Boolean = true): PiracyChecker { - this.enableDebugCheck = enable + fun enableDebugCheck(): PiracyChecker { + this.enableDebugCheck = true return this } - fun enableAPKCheck(enable: Boolean = true): PiracyChecker { - this.enableAPKCheck = enable + fun enableAPKCheck(): PiracyChecker { + this.enableAPKCheck = true return this } - fun enableEmulatorCheck(deepCheck: Boolean = true): PiracyChecker { + fun enableEmulatorCheck(deepCheck: Boolean): PiracyChecker { this.enableEmulatorCheck = true this.enableDeepEmulatorCheck = deepCheck return this } - fun enableFoldersCheck(foldersCheck: Boolean = true): PiracyChecker { - this.enableFoldersCheck = foldersCheck + fun enableFoldersCheck(): PiracyChecker { + this.enableFoldersCheck = true return this } @@ -212,13 +212,11 @@ class PiracyChecker( this.preferences = preferences } else { try { - this.preferences = (context as Activity).getPreferences(Context.MODE_PRIVATE) + this.preferences = (context as? Activity)?.getPreferences(Context.MODE_PRIVATE) } catch (e: Exception) { - this.preferences = context?.getSharedPreferences( - LIBRARY_PREFERENCES_NAME, - Context.MODE_PRIVATE) + this.preferences = + context?.getSharedPreferences(LIBRARY_PREFERENCES_NAME, Context.MODE_PRIVATE) } - } } @@ -227,13 +225,11 @@ class PiracyChecker( this.preferences = context?.getSharedPreferences(preferencesName, Context.MODE_PRIVATE) } else { try { - this.preferences = (context as Activity).getPreferences(Context.MODE_PRIVATE) + this.preferences = (context as? Activity)?.getPreferences(Context.MODE_PRIVATE) } catch (e: Exception) { - this.preferences = context?.getSharedPreferences( - LIBRARY_PREFERENCES_NAME, - Context.MODE_PRIVATE) + this.preferences = + context?.getSharedPreferences(LIBRARY_PREFERENCES_NAME, Context.MODE_PRIVATE) } - } } From 0a02b131393d1138479387563e18ac5ad2a8b20d Mon Sep 17 00:00:00 2001 From: Jahir Fiquitiva Date: Sat, 10 Nov 2018 10:38:35 -0500 Subject: [PATCH 8/8] Update tests and sample --- .../javiersantos/piracychecker/PiracyCheckerTest.java | 8 ++++---- .../javiersantos/piracychecker/UnauthorizedAppTest.java | 2 +- .../piracychecker/UnauthorizedAppUninstalledTest.java | 4 ++-- .../javiersantos/piracychecker/demo/KotlinActivity.kt | 2 +- .../javiersantos/piracychecker/demo/MainActivity.java | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java index e6f8c6c..922a0de 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/PiracyCheckerTest.java @@ -143,7 +143,7 @@ public void verifyUnauthorizedApps_ALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .callback(new PiracyCheckerCallback() { @Override public void allow() { @@ -172,7 +172,7 @@ public void verifyThirdPartyStores_ALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .callback(new PiracyCheckerCallback() { @Override public void allow() { @@ -201,7 +201,7 @@ public void verifyDeepPirate_ALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableFoldersCheck(true) + .enableFoldersCheck() .callback(new PiracyCheckerCallback() { @Override public void allow() { @@ -230,7 +230,7 @@ public void verifyDebug_DONTALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableDebugCheck(true) + .enableDebugCheck() .callback(new PiracyCheckerCallback() { @Override public void allow() { diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java index 329e495..237a974 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppTest.java @@ -106,7 +106,7 @@ public void verifyUnauthorizedApps_DONTALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .blockIfUnauthorizedAppUninstalled("piracychecker_preferences", "app_unauthorized") .callback(new PiracyCheckerCallback() { diff --git a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java index 2d8e621..6b712c0 100644 --- a/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java +++ b/app/src/androidTest/java/com/github/javiersantos/piracychecker/UnauthorizedAppUninstalledTest.java @@ -37,7 +37,7 @@ public void verifyBlockUnauthorizedApps_DONTALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .blockIfUnauthorizedAppUninstalled("piracychecker_preferences", "app_unauthorized") .callback(new PiracyCheckerCallback() { @@ -75,7 +75,7 @@ public void verifyUnauthorizedApps_ALLOW() throws Throwable { @Override public void run() { new PiracyChecker(InstrumentationRegistry.getTargetContext()) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() .callback(new PiracyCheckerCallback() { @Override public void allow() { diff --git a/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt b/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt index be6751f..3e94657 100644 --- a/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt +++ b/app/src/main/java/com/github/javiersantos/piracychecker/demo/KotlinActivity.kt @@ -115,7 +115,7 @@ class KotlinActivity : AppCompatActivity() { fun verifyEmulator() { piracyChecker { display(piracyCheckerDisplay) - enableEmulatorCheck() + enableEmulatorCheck(false) }.start() } } \ No newline at end of file diff --git a/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java b/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java index 4c6d4e2..f8cdddd 100644 --- a/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java +++ b/app/src/main/java/com/github/javiersantos/piracychecker/demo/MainActivity.java @@ -78,7 +78,7 @@ public void verifyInstallerId(View view) { public void verifyUnauthorizedApps(View view) { new PiracyChecker(this) .display(piracyCheckerDisplay) - .enableUnauthorizedAppsCheck(true) + .enableUnauthorizedAppsCheck() //.blockIfUnauthorizedAppUninstalled("license_checker", "block") .start(); } @@ -86,21 +86,21 @@ public void verifyUnauthorizedApps(View view) { public void verifyStores(View view) { new PiracyChecker(this) .display(piracyCheckerDisplay) - .enableStoresCheck(true) + .enableStoresCheck() .start(); } public void verifyDebug(View view) { new PiracyChecker(this) .display(piracyCheckerDisplay) - .enableDebugCheck(true) + .enableDebugCheck() .start(); } public void verifyEmulator(View view) { new PiracyChecker(this) .display(piracyCheckerDisplay) - .enableEmulatorCheck(true) + .enableEmulatorCheck(false) .start(); } } \ No newline at end of file