From 8d593aee76fb1a63160eb543d4e680d3f598cb50 Mon Sep 17 00:00:00 2001 From: Roberto Frontado Date: Fri, 14 Sep 2018 12:05:11 +0200 Subject: [PATCH 1/3] Updated gradle & fixed minor bugs --- build.gradle | 9 ++- gradle/wrapper/gradle-wrapper.properties | 2 +- library/build.gradle | 16 ++--- library/quality.gradle | 4 +- .../java/com/eggheadgames/siren/Siren.java | 72 +++++++++++++++++++ 5 files changed, 90 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 148e628..18ad027 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +3,11 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -15,6 +16,10 @@ buildscript { allprojects { repositories { jcenter() + mavenCentral() + google() + + maven { url "https://jitpack.io" } } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c25cec5..65720c6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/library/build.gradle b/library/build.gradle index 36c7008..3816009 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,17 +2,16 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply from: "quality.gradle" -group = 'com.github.eggheadgames' +group = 'com.github.robertofrontado' android { compileSdkVersion 25 - buildToolsVersion "25.0.1" defaultConfig { minSdkVersion 15 targetSdkVersion 25 versionCode 13 - versionName "1.5.2" + versionName "1.6.3" } buildTypes { release { @@ -29,11 +28,12 @@ android { } dependencies { - testCompile 'junit:junit:4.12' - testCompile 'org.mockito:mockito-core:1.10.19' - testCompile 'org.json:json:20160212' + testImplementation 'junit:junit:4.12' + testImplementation 'org.mockito:mockito-core:1.10.19' + testImplementation 'org.json:json:20160212' - compile fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleDependency - compile 'com.android.support:appcompat-v7:25.0.0' + implementation 'com.android.support:appcompat-v7:25.0.0' + implementation 'org.jsoup:jsoup:1.11.3' } diff --git a/library/quality.gradle b/library/quality.gradle index 49e1373..94ea28b 100644 --- a/library/quality.gradle +++ b/library/quality.gradle @@ -13,7 +13,7 @@ pmd { reportsDir = file("$project.buildDir/outputs/") } -task findbugs(type: FindBugs, dependsOn: assembleDebug) { +task findbugs(type: FindBugs, dependsOn: "assembleDebug") { description 'Run findbugs' group 'verification' @@ -31,7 +31,7 @@ task findbugs(type: FindBugs, dependsOn: assembleDebug) { } } -task pmd(type: Pmd, dependsOn: assembleDebug) { +task pmd(type: Pmd, dependsOn: "assembleDebug") { description 'Run pmd' group 'verification' diff --git a/library/src/main/java/com/eggheadgames/siren/Siren.java b/library/src/main/java/com/eggheadgames/siren/Siren.java index 8b177e6..32cea66 100644 --- a/library/src/main/java/com/eggheadgames/siren/Siren.java +++ b/library/src/main/java/com/eggheadgames/siren/Siren.java @@ -2,11 +2,17 @@ import android.app.Activity; import android.content.Context; +import android.content.pm.PackageManager; import android.os.AsyncTask; import android.support.annotation.VisibleForTesting; +import android.util.Log; import org.json.JSONException; import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import java.io.BufferedReader; import java.io.IOException; @@ -103,6 +109,19 @@ public void checkVersion(Activity activity, SirenVersionCheckType versionCheckTy } } + + public void checkVersion(Activity activity, SirenVersionCheckType versionCheckType) { + + mActivityRef = new WeakReference<>(activity); + + if (versionCheckType == SirenVersionCheckType.IMMEDIATELY) { + performVersionCheck(); + } else if (versionCheckType.getValue() <= getSirenHelper().getDaysSinceLastCheck(mApplicationContext) + ||getSirenHelper().getLastVerificationDate(mApplicationContext) == 0) { + performVersionCheck(); + } + } + public void setMajorUpdateAlertType(@SuppressWarnings("SameParameterValue") SirenAlertType majorUpdateAlertType) { this.majorUpdateAlertType = majorUpdateAlertType; } @@ -136,6 +155,11 @@ protected void performVersionCheck(String appDescriptionUrl) { new LoadJsonTask().execute(appDescriptionUrl); } + @VisibleForTesting + protected void performVersionCheck() { + new LoadVersionFromGooglePlayStoreTask().execute(); + } + @VisibleForTesting protected void handleVerificationResults(String json) { try { @@ -196,6 +220,7 @@ private boolean checkVersionName(JSONObject appJson) throws JSONException{ SirenAlertType alertType = null; String[] minVersionNumbers = minVersionName.split("\\."); String[] currentVersionNumbers = currentVersionName.split("\\."); + //noinspection ConstantConditions if (minVersionNumbers != null && currentVersionNumbers != null && minVersionNumbers.length == currentVersionNumbers.length) { @@ -349,4 +374,51 @@ protected void onPostExecute(String result) { } } } + + private static class LoadVersionFromGooglePlayStoreTask extends AsyncTask { + + @Override + protected String doInBackground(Void... voids) { + String newVersion = null; + String packageName = Siren.sirenInstance.getSirenHelper().getPackageName(Siren.sirenInstance.mApplicationContext); + + try { + Document document = Jsoup.connect("https://play.google.com/store/apps/details?id=" + packageName + "&hl=en") + .timeout(30000) + .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") + .referrer("http://www.google.com") + .get(); + if (document != null) { + Elements element = document.getElementsContainingOwnText("Current Version"); + for (Element ele : element) { + if (ele.siblingElements() != null) { + Elements sibElemets = ele.siblingElements(); + for (Element sibElemet : sibElemets) { + newVersion = sibElemet.text(); + } + } + } + } + } catch (IOException e) { + e.printStackTrace(); + } + + return newVersion; + } + + @Override + protected void onPostExecute(String newVersion) { + super.onPostExecute(newVersion); + + if (Siren.sirenInstance.getSirenHelper().isEmpty(newVersion)) { + if (Siren.sirenInstance.mSirenListener != null) { + Siren.sirenInstance.mSirenListener.onError(new NullPointerException()); + } + } else { + String packageName = Siren.sirenInstance.getSirenHelper().getPackageName(Siren.sirenInstance.mApplicationContext); + String jsonString = "{ \"" + packageName + "\": { \"" + Constants.JSON_MIN_VERSION_NAME +"\": \"" + newVersion + "\" } }"; + Siren.sirenInstance.handleVerificationResults(jsonString); + } + } + } } From e8499ed88ff5f56f5c84bc88824712ae2083cdd3 Mon Sep 17 00:00:00 2001 From: Roberto Frontado Date: Fri, 14 Sep 2018 17:20:39 +0200 Subject: [PATCH 2/3] Bump v1.7.0 --- library/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/build.gradle b/library/build.gradle index 3816009..cdf9237 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -11,7 +11,7 @@ android { minSdkVersion 15 targetSdkVersion 25 versionCode 13 - versionName "1.6.3" + versionName "1.7.0" } buildTypes { release { From fbeb9e43e11e205efb35522cac02234fb91254ca Mon Sep 17 00:00:00 2001 From: Roberto Frontado Date: Mon, 24 Sep 2018 15:57:01 +0200 Subject: [PATCH 3/3] Right github group :) --- library/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/build.gradle b/library/build.gradle index cdf9237..6089309 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply from: "quality.gradle" -group = 'com.github.robertofrontado' +group = 'com.github.eggheadgames' android { compileSdkVersion 25