From a334a66fb557428c06450de6308869ae3e5802f9 Mon Sep 17 00:00:00 2001 From: Ana Lara Date: Fri, 18 Nov 2016 09:52:26 +0000 Subject: [PATCH 1/2] version name --- vanilla/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vanilla/build.gradle b/vanilla/build.gradle index 5fda9bf2533..2885333b3f4 100644 --- a/vanilla/build.gradle +++ b/vanilla/build.gradle @@ -128,7 +128,7 @@ android { Integer value = getVersionCode("../../aptoideProperties/version.properties", "PROD_VERSION_CODE") versionCode value - versionName "8.0.1.1" + versionName "8.0.1.2" resValue "string", "authenticatorAccountType", APPLICATION_ID } } From 401b652121c8f989355a40ec375de89061495a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fa=CC=81bio=20Dias?= Date: Fri, 18 Nov 2016 17:54:44 +0000 Subject: [PATCH 2/2] [AN-911] Fabric exception fix: wrapping delete methods with a check if the retrieved object is still valid. a new attempt to fix issue https://fabric.io/aptoide2/android/apps/cm.aptoide.pt/issues/58016f910aeb16625b8207bf --- database/build.gradle | 3 ++ .../pt/database/accessors/Database.java | 36 ++++++++++--------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/database/build.gradle b/database/build.gradle index 2eb2b9baad3..0aeaa2e8794 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -52,6 +52,9 @@ dependencies { debugCompile project(path: ':model', configuration: 'debug') releaseCompile project(path: ':model', configuration: 'release') + debugCompile project(path: ':crashreports', configuration: 'debug') + releaseCompile project(path: ':crashreports', configuration: 'release') + // // custom libs in folders // diff --git a/database/src/main/java/cm/aptoide/pt/database/accessors/Database.java b/database/src/main/java/cm/aptoide/pt/database/accessors/Database.java index 5fb44f5930e..dc62fd8173d 100644 --- a/database/src/main/java/cm/aptoide/pt/database/accessors/Database.java +++ b/database/src/main/java/cm/aptoide/pt/database/accessors/Database.java @@ -7,6 +7,7 @@ import android.content.Context; import android.text.TextUtils; +import cm.aptoide.pt.crashreports.CrashReports; import cm.aptoide.pt.database.BuildConfig; import cm.aptoide.pt.database.schedulers.RealmSchedulers; import io.realm.Realm; @@ -239,31 +240,32 @@ public Observable> getAsList(Class clazz, Str public void delete(Class clazz, String key, String value) { @Cleanup Realm realm = get(); - E first = realm.where(clazz).equalTo(key, value).findFirst(); - if (first != null) { - realm.beginTransaction(); - first.deleteFromRealm(); - realm.commitTransaction(); - } + E obj = realm.where(clazz).equalTo(key, value).findFirst(); + deleteObject(realm, obj); } public void delete(Class clazz, String key, Integer value) { @Cleanup Realm realm = get(); - E first = realm.where(clazz).equalTo(key, value).findFirst(); - if (first != null) { - realm.beginTransaction(); - first.deleteFromRealm(); - realm.commitTransaction(); - } + E obj = realm.where(clazz).equalTo(key, value).findFirst(); + deleteObject(realm, obj); } public void delete(Class clazz, String key, Long value) { @Cleanup Realm realm = get(); - E first = realm.where(clazz).equalTo(key, value).findFirst(); - if (first != null) { - realm.beginTransaction(); - first.deleteFromRealm(); - realm.commitTransaction(); + E obj = realm.where(clazz).equalTo(key, value).findFirst(); + deleteObject(realm, obj); + } + + private void deleteObject(Realm realm, E obj) { + realm.beginTransaction(); + try{ + if (obj != null && obj.isValid()) { + obj.deleteFromRealm(); + realm.commitTransaction(); + } + } catch (Exception ex) { + realm.cancelTransaction(); + CrashReports.logException(ex); } }