diff --git a/build.gradle b/build.gradle index d165d6fd3a440c33f357f376fcaafb85b96dfa99..accb11e27e06cdf0ecc910ee39d2b4914299a98a 100644 --- a/build.gradle +++ b/build.gradle @@ -55,6 +55,7 @@ dependencies { exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' } cheogramPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2") + cheogramPlaystoreImplementation 'com.github.singpolyma:play-licensing:1c637ea03c' conversationsPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2") quicksyPlaystoreImplementation 'com.google.android.gms:play-services-auth-api-phone:18.0.1' implementation 'org.sufficientlysecure:openpgp-api:10.0' diff --git a/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java b/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java index 9f91e0b687c8299ba15b8ab8e9573e0d74337e2c..9016fd17779976cb0ea82e1219cbad1c02de85e6 100644 --- a/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java +++ b/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java @@ -115,6 +115,7 @@ public class WelcomeActivity extends XmppActivity implements XmppConnectionServi @Override protected void onCreate(final Bundle savedInstanceState) { + new com.cheogram.android.CheogramLicenseChecker(this).checkLicense(); if (getResources().getBoolean(R.bool.portrait_only)) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } diff --git a/src/conversationsPlaystore/java/com/cheogram/android/CheogramLicenseChecker.java b/src/conversationsPlaystore/java/com/cheogram/android/CheogramLicenseChecker.java new file mode 100644 index 0000000000000000000000000000000000000000..836993bb537089527b005acee19a949c1ad841c3 --- /dev/null +++ b/src/conversationsPlaystore/java/com/cheogram/android/CheogramLicenseChecker.java @@ -0,0 +1,38 @@ +package com.cheogram.android; + +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.provider.Settings.Secure; +import android.util.Log; + +import com.google.android.vending.licensing.*; + +import eu.siacs.conversations.R; + +public class CheogramLicenseChecker implements LicenseCheckerCallback { + private final LicenseChecker mChecker; + + public CheogramLicenseChecker(Context context) { + mChecker = new LicenseChecker(context, new StrictPolicy(), context.getResources().getString(R.string.licensePublicKey)); + } + + public void checkLicense() { + mChecker.checkAccess(this); + } + + @Override + public void dontAllow(int reason) { + Log.d("CheogramLicenseChecker", "dontAllow: " + reason); + } + + @Override + public void applicationError(int errorCode) { + Log.d("CheogramLicenseChecker", "applicationError: " + errorCode); + } + + @Override + public void allow(int reason, ResponseData data, String signedData, String signature) { + Log.d("CheogramLicenseChecker", "" + reason + " / " + data + " / " + signedData + " / " + signature); + } +} diff --git a/src/conversationsPlaystore/res/values/strings.xml b/src/conversationsPlaystore/res/values/strings.xml index a6cbc9807a4d0870ffc537d0819dc3f463474db4..2d1bf7113fc1604ee39b9ba2134f2839bd4f1d05 100644 --- a/src/conversationsPlaystore/res/values/strings.xml +++ b/src/conversationsPlaystore/res/values/strings.xml @@ -1,4 +1,5 @@ com.cheogram.android.playstore + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlcl4jV0uqcCD9EX8RS2FuxtkZIrAyQhBHFWWaYXH+Fdh2KO6bykD0sabYxAtKDquSagkQKgiDsj7lKdk01tI+3prGI1D96ml7bzRmGt82PltR1e7sE9FTfhzn2+6zWOcsabZEgCZRBBIY2TUZtWlagJE7aJncS/sERjdaiRkDqDnCqsBjLvRcfEEnc3KJjhQicv4GTau5wJnXWQcgz5FPe2j0sIQjbzHrSHn0omKV9ObwxDYn5JPfBV/0nePLUFrkONrRsNy7311aVJOj4Hqd4y74vRjdBV9hI+PLJ9R+y4p1nhV1F3Ih/VAsw5pDECpe/sKput/lpIsxnn/W3DKvQIDAQAB diff --git a/src/free/java/com/cheogram/android/CheogramLicenseChecker.java b/src/free/java/com/cheogram/android/CheogramLicenseChecker.java new file mode 100644 index 0000000000000000000000000000000000000000..78aa146c24d9cc5dc5ae97b9b25556e5e2202a1c --- /dev/null +++ b/src/free/java/com/cheogram/android/CheogramLicenseChecker.java @@ -0,0 +1,12 @@ +package com.cheogram.android; + +import android.content.Context; +import android.util.Log; + +public class CheogramLicenseChecker { + public CheogramLicenseChecker(Context context) { } + + public void checkLicense() { + Log.d("CheogramLicenseChecker", "skipping license checks in free build"); + } +}