From e50c411d1e06a769338fa5d5c0d1458b2c5eb5b1 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 15 Jun 2019 08:57:11 -0500 Subject: [PATCH 1/3] Fix crash preventing some Xiaomi devices from showing notifications --- CHANGELOG.md | 4 ++++ app/src/main/AndroidManifest.xml | 4 ++-- .../isoron/uhabits/notifications/NotificationTray.java | 8 +++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c7278a60..201ecd5fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.7.10 (June 15, 2019) + +* Fix bug that prevented some devices from showing notifications. + ### 1.7.8 (April 21, 2018) * Add support for adaptive icons (Oreo) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9bba07137..38997a7bd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,8 +21,8 @@ + android:versionCode="37" + android:versionName="1.7.10"> diff --git a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java index 15fccba6a..369639e5d 100644 --- a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java +++ b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java @@ -239,7 +239,13 @@ public class NotificationTray createAndroidNotificationChannel(context); int notificationId = getNotificationId(habit); - notificationManager.notify(notificationId, builder.build()); + + try { + notificationManager.notify(notificationId, builder.build()); + } catch(RuntimeException e) { + builder.setSound(null); + notificationManager.notify(notificationId, builder.build()); + } } private boolean shouldShowReminderToday() From 64cc9f78a8bcf0dc606a3532cc8548b62ba955ce Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 15 Jun 2019 09:46:06 -0500 Subject: [PATCH 2/3] Increase targetSdk to 28 --- CHANGELOG.md | 1 + app/build.gradle | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 201ecd5fb..8298cff0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### 1.7.10 (June 15, 2019) * Fix bug that prevented some devices from showing notifications. +* Update targetSdk to Android Pie (API level 28) ### 1.7.8 (April 21, 2018) diff --git a/app/build.gradle b/app/build.gradle index 3ad44b358..d76ffeb38 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,8 +5,8 @@ apply plugin: 'jacoco' apply plugin: 'com.github.triplet.play' android { - compileSdkVersion 27 - buildToolsVersion "27.0.3" + compileSdkVersion 28 + buildToolsVersion "28.0.3" // signingConfigs { // release { @@ -27,7 +27,7 @@ android { defaultConfig { applicationId "org.isoron.uhabits" minSdkVersion 15 - targetSdkVersion 27 + targetSdkVersion 28 buildConfigField "Integer", "databaseVersion", "15" buildConfigField "String", "databaseFilename", "\"uhabits.db\"" From 957a5b7c17ff14737253fcee26b8d5ac357aa67e Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 10 Aug 2019 11:42:25 -0500 Subject: [PATCH 3/3] Fix CSV export in some locales; bump version to 1.7.11 (38) --- CHANGELOG.md | 4 ++++ app/src/main/AndroidManifest.xml | 4 ++-- .../main/java/org/isoron/uhabits/io/HabitsCSVExporter.java | 4 ++-- app/src/main/java/org/isoron/uhabits/models/ScoreList.java | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8298cff0c..08782a1ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.7.11 (Aug 10, 2019) + +* Fix bug that produced corrupted CSV files in some countries + ### 1.7.10 (June 15, 2019) * Fix bug that prevented some devices from showing notifications. diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 38997a7bd..449502534 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,8 +21,8 @@ + android:versionCode="38" + android:versionName="1.7.11"> diff --git a/app/src/main/java/org/isoron/uhabits/io/HabitsCSVExporter.java b/app/src/main/java/org/isoron/uhabits/io/HabitsCSVExporter.java index fc0a29c92..bb2098275 100644 --- a/app/src/main/java/org/isoron/uhabits/io/HabitsCSVExporter.java +++ b/app/src/main/java/org/isoron/uhabits/io/HabitsCSVExporter.java @@ -119,7 +119,7 @@ public class HabitsCSVExporter { String sane = sanitizeFilename(h.getName()); String habitDirName = - String.format("%03d %s", allHabits.indexOf(h) + 1, sane); + String.format(Locale.US, "%03d %s", allHabits.indexOf(h) + 1, sane); habitDirName = habitDirName.trim() + "/"; new File(exportDirName + habitDirName).mkdirs(); @@ -202,7 +202,7 @@ public class HabitsCSVExporter checksWriter.write(String.valueOf(checkmarks.get(j)[i])); checksWriter.write(DELIMITER); String score = - String.format("%.4f", ((float) scores.get(j)[i]) / Score.MAX_VALUE); + String.format(Locale.US, "%.4f", ((float) scores.get(j)[i]) / Score.MAX_VALUE); scoresWriter.write(score); scoresWriter.write(DELIMITER); } diff --git a/app/src/main/java/org/isoron/uhabits/models/ScoreList.java b/app/src/main/java/org/isoron/uhabits/models/ScoreList.java index a77bfa666..eb6cf2e81 100644 --- a/app/src/main/java/org/isoron/uhabits/models/ScoreList.java +++ b/app/src/main/java/org/isoron/uhabits/models/ScoreList.java @@ -173,7 +173,7 @@ public abstract class ScoreList implements Iterable { String timestamp = dateFormat.format(s.getTimestamp()); String score = - String.format("%.4f", ((float) s.getValue()) / Score.MAX_VALUE); + String.format(Locale.US, "%.4f", ((float) s.getValue()) / Score.MAX_VALUE); out.write(String.format("%s,%s\n", timestamp, score)); } }