diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ExpirationUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ExpirationUtil.java index e6cfb8b44..1cd42db10 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ExpirationUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ExpirationUtil.java @@ -26,19 +26,28 @@ public final class ExpirationUtil { int secondsRemaining = expirationTime; int weeks = secondsRemaining / SECONDS_IN_WEEK; - displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_weeks, weeks); + displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_weeks, weeks); secondsRemaining = secondsRemaining - weeks * SECONDS_IN_WEEK; int days = secondsRemaining / SECONDS_IN_DAY; displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_days, days); + if (weeks > 0) { + return displayValue; + } secondsRemaining = secondsRemaining - days * SECONDS_IN_DAY; int hours = secondsRemaining / SECONDS_IN_HOUR; displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_hours, hours); + if (days > 0) { + return displayValue; + } secondsRemaining = secondsRemaining - hours * SECONDS_IN_HOUR; int minutes = secondsRemaining / SECONDS_IN_MINUTE; - displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_minutes, minutes); + displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_minutes, minutes); + if (hours > 0) { + return displayValue; + } secondsRemaining = secondsRemaining - minutes * SECONDS_IN_MINUTE; displayValue = getDisplayValue(context, displayValue, R.plurals.expiration_seconds, secondsRemaining); @@ -68,19 +77,19 @@ public final class ExpirationUtil { int secondsRemaining = expirationTime; int weeks = secondsRemaining / SECONDS_IN_WEEK; - displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_weeks_abbreviated, weeks); + displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_weeks_abbreviated, weeks); secondsRemaining = secondsRemaining - weeks * SECONDS_IN_WEEK; int days = secondsRemaining / SECONDS_IN_DAY; - displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_days_abbreviated, days); + displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_days_abbreviated, days); secondsRemaining = secondsRemaining - days * SECONDS_IN_DAY; int hours = secondsRemaining / SECONDS_IN_HOUR; - displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_hours_abbreviated, hours); + displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_hours_abbreviated, hours); secondsRemaining = secondsRemaining - hours * SECONDS_IN_HOUR; int minutes = secondsRemaining / SECONDS_IN_MINUTE; - displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_minutes_abbreviated, minutes); + displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_minutes_abbreviated, minutes); secondsRemaining = secondsRemaining - minutes * SECONDS_IN_MINUTE; displayValue = getAbbreviatedDisplayValue(context, displayValue, R.string.expiration_seconds_abbreviated, secondsRemaining); diff --git a/app/src/test/java/org/thoughtcrime/securesms/util/ExpirationUtilTest.java b/app/src/test/java/org/thoughtcrime/securesms/util/ExpirationUtilTest.java index 989e3873f..5397c2e9c 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/util/ExpirationUtilTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/util/ExpirationUtilTest.java @@ -76,31 +76,31 @@ public class ExpirationUtilTest { assertEquals("1 week 1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_DAY)); - assertEquals("1 week 1 hour", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_HOUR)); - assertEquals("1 week 1 minute", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_MINUTE)); - assertEquals("1 week 1 second", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + 1)); - assertEquals("1 week 1 day 1 hour", + assertEquals("1 week 1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_DAY + SECONDS_IN_HOUR)); - assertEquals("1 week 1 day 1 hour 1 minute", + assertEquals("1 week 1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_DAY + SECONDS_IN_HOUR + SECONDS_IN_MINUTE)); - assertEquals("1 week 1 day 1 hour 1 minute 1 second", + assertEquals("1 week 1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_DAY + SECONDS_IN_HOUR + SECONDS_IN_MINUTE + 1)); - assertEquals("1 week 1 hour 1 minute", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_HOUR + SECONDS_IN_MINUTE)); - assertEquals("1 week 1 hour 1 minute 1 second", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_HOUR + SECONDS_IN_MINUTE + 1)); - assertEquals("1 week 1 minute 1 second", + assertEquals("1 week", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_WEEK + SECONDS_IN_MINUTE + 1)); } @@ -109,10 +109,10 @@ public class ExpirationUtilTest { assertEquals("1 day 1 hour", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_DAY + SECONDS_IN_HOUR)); - assertEquals("1 day 1 minute", + assertEquals("1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_DAY + SECONDS_IN_MINUTE)); - assertEquals("1 day 1 second", + assertEquals("1 day", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_DAY + 1)); } @@ -121,7 +121,7 @@ public class ExpirationUtilTest { assertEquals("1 hour 1 minute", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_HOUR + SECONDS_IN_MINUTE)); - assertEquals("1 hour 1 second", + assertEquals("1 hour", ExpirationUtil.getExpirationDisplayValue(context, SECONDS_IN_HOUR + 1)); }