From bfc6add34d6034bb6752a2e96cae34a2b9af55cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Brey?= Date: Wed, 14 Nov 2018 23:25:36 +0100 Subject: [PATCH 1/3] hotfix: NotificationHelper: fix crash on vibration preference parsing --- .../notifications/NotificationHelper.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Calendula/src/main/java/es/usc/citius/servando/calendula/notifications/NotificationHelper.kt b/Calendula/src/main/java/es/usc/citius/servando/calendula/notifications/NotificationHelper.kt index c62865d82..aba452288 100644 --- a/Calendula/src/main/java/es/usc/citius/servando/calendula/notifications/NotificationHelper.kt +++ b/Calendula/src/main/java/es/usc/citius/servando/calendula/notifications/NotificationHelper.kt @@ -32,7 +32,7 @@ object NotificationHelper { @JvmField val VIBRATION_PATTERN_MEDS = - longArrayOf(1000, 200, 100, 500, 400, 200, 100, 500, 400, 200, 100, 500, 1000) + longArrayOf(1000, 200, 100, 500, 400, 200, 100, 500, 400, 200, 100, 500, 1000) @JvmField val VIBRATION_PATTERN_DEFAULT = longArrayOf(1000, 200, 500, 200, 100, 200, 1000) @JvmField @@ -62,18 +62,18 @@ object NotificationHelper { val medChannelName = context.getString(R.string.channel_meds_name) val medChannelDesc = context.getString(R.string.channel_meds_description) val medChannel = NotificationChannel( - CHANNEL_MEDS_ID, - medChannelName, - NotificationManager.IMPORTANCE_HIGH + CHANNEL_MEDS_ID, + medChannelName, + NotificationManager.IMPORTANCE_HIGH ) medChannel.description = medChannelDesc //create other channel val defaultChannelName = context.getString(R.string.channel_default_name) val defaultChannelDesc = context.getString(R.string.channel_default_description) val defaultChannel = NotificationChannel( - CHANNEL_DEFAULT_ID, - defaultChannelName, - NotificationManager.IMPORTANCE_DEFAULT + CHANNEL_DEFAULT_ID, + defaultChannelName, + NotificationManager.IMPORTANCE_DEFAULT ) defaultChannel.description = defaultChannelDesc @@ -93,8 +93,8 @@ object NotificationHelper { @JvmStatic fun isNotificationVibrationEnabled(context: Context): Boolean { - val vibrationSettingInt = - PreferenceUtils.getInt(PreferenceKeys.SETTINGS_NOTIFICATION_VIBRATION, 0) + val vibrationSettingInt = Integer.parseInt( + PreferenceUtils.getString(PreferenceKeys.SETTINGS_NOTIFICATION_VIBRATION, "0")) val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager return when (vibrationSettingInt) { From fe81e5d358f718ee09bb8b52438f6c759f19a232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Brey?= Date: Thu, 15 Nov 2018 09:30:26 +0100 Subject: [PATCH 2/3] NotificationHelper: test that function to make sure it doesn't break in the future --- .../notifications/NotificationHelperTest.kt | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Calendula/src/test/java/es/usc/citius/servando/calendula/notifications/NotificationHelperTest.kt diff --git a/Calendula/src/test/java/es/usc/citius/servando/calendula/notifications/NotificationHelperTest.kt b/Calendula/src/test/java/es/usc/citius/servando/calendula/notifications/NotificationHelperTest.kt new file mode 100644 index 000000000..eb9b839bc --- /dev/null +++ b/Calendula/src/test/java/es/usc/citius/servando/calendula/notifications/NotificationHelperTest.kt @@ -0,0 +1,65 @@ +/* + * Calendula - An assistant for personal medication management. + * Copyright (C) 2014-2018 CiTIUS - University of Santiago de Compostela + * + * Calendula is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software. If not, see . + */ + +package es.usc.citius.servando.calendula.notifications + +import es.usc.citius.servando.calendula.util.PreferenceKeys +import es.usc.citius.servando.calendula.util.PreferenceUtils +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.RuntimeEnvironment + + +@RunWith(RobolectricTestRunner::class) +class NotificationHelperTest { + + + @Test + fun `Vibration is enabled when the vibration preference is the default value`() { + PreferenceUtils.edit().remove(PreferenceKeys.SETTINGS_NOTIFICATION_VIBRATION.key()).apply() + + val notificationVibrationEnabled = + NotificationHelper.isNotificationVibrationEnabled(RuntimeEnvironment.systemContext) + + assertTrue(notificationVibrationEnabled) + } + + @Test + fun `Vibration is enabled when the vibration preference is set to vibrate`() { + PreferenceUtils.edit().putString(PreferenceKeys.SETTINGS_NOTIFICATION_VIBRATION.key(), "0").apply() + + val notificationVibrationEnabled = + NotificationHelper.isNotificationVibrationEnabled(RuntimeEnvironment.systemContext) + + assertTrue(notificationVibrationEnabled) + } + + + @Test + fun `Vibration is disabled when the vibration preference is set to off`() { + PreferenceUtils.edit().putString(PreferenceKeys.SETTINGS_NOTIFICATION_VIBRATION.key(), "3").apply() + + val notificationVibrationEnabled = + NotificationHelper.isNotificationVibrationEnabled(RuntimeEnvironment.systemContext) + + assertFalse(notificationVibrationEnabled) + } +} From a491540c26e26b9d29c348162f976a448ececc31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Brey?= Date: Thu, 15 Nov 2018 09:32:10 +0100 Subject: [PATCH 3/3] Bump versionCOde and versionName for 2.5.11 --- Calendula/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Calendula/build.gradle b/Calendula/build.gradle index 82f11da3d..b2d4372e6 100644 --- a/Calendula/build.gradle +++ b/Calendula/build.gradle @@ -76,8 +76,8 @@ android { defaultConfig { minSdkVersion 18 targetSdkVersion 26 - versionCode 41 - versionName "2.5.10" + versionCode 42 + versionName "2.5.11" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" applicationId "es.usc.citius.servando.calendula" multiDexEnabled true