From 59dd906c012fb82cb8d9d47dd85e47e21a8eb6c0 Mon Sep 17 00:00:00 2001 From: Thibault Jouannic Date: Wed, 2 Mar 2011 12:13:24 +0100 Subject: [PATCH] format nap duration in widget --- .../src/fr/miximum/napply/NapplyWidget.java | 23 ++++++++++++++++++- .../napply/tests/NapplyWidgetTest.java | 15 ++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 NapplyTest/src/fr/miximum/napply/tests/NapplyWidgetTest.java diff --git a/Napply/src/fr/miximum/napply/NapplyWidget.java b/Napply/src/fr/miximum/napply/NapplyWidget.java index c330221..6fe7a0e 100644 --- a/Napply/src/fr/miximum/napply/NapplyWidget.java +++ b/Napply/src/fr/miximum/napply/NapplyWidget.java @@ -36,6 +36,7 @@ import java.text.DateFormat; import java.util.Calendar; import java.util.Date; +import java.util.Formatter; import java.util.GregorianCalendar; import java.util.Map; @@ -344,7 +345,7 @@ static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, // Prepare widget views int napDuration = getNapDuration(context, appWidgetId); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.napply_widget_layout); - views.setTextViewText(R.id.nap_time, "" + napDuration); + views.setTextViewText(R.id.nap_time, formatNapDuration(napDuration)); views.setTextViewText(R.id.nap_end, napLabel); // Prepare intent to launch alarm on widget click @@ -375,4 +376,24 @@ static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, String napLabel = context.getString(R.string.default_widget_label); updateAppWidget(context, appWidgetManager, appWidgetId, napLabel); } + + /** + * Format the nap duration string + * @param napDuration The nap duration in minutes + * @return the formated duration «hour:minute» + */ + public static String formatNapDuration(int napDuration) { + String formatted = ""; + int hours = napDuration / 60; + int minutes = napDuration - (60 * hours); + + Formatter f = new Formatter(); + formatted = f.format("%02d", minutes).out().toString(); + + if (hours > 0) { + formatted = "" + hours + ":" + formatted; + } + + return formatted; + } } diff --git a/NapplyTest/src/fr/miximum/napply/tests/NapplyWidgetTest.java b/NapplyTest/src/fr/miximum/napply/tests/NapplyWidgetTest.java new file mode 100644 index 0000000..7edbc0a --- /dev/null +++ b/NapplyTest/src/fr/miximum/napply/tests/NapplyWidgetTest.java @@ -0,0 +1,15 @@ +package fr.miximum.napply.tests; + +import fr.miximum.napply.NapplyWidget; +import junit.framework.TestCase; + +public class NapplyWidgetTest extends TestCase { + + public void testFormatNapDuration() { + assertEquals("25", NapplyWidget.formatNapDuration(25)); + assertEquals("59", NapplyWidget.formatNapDuration(59)); + assertEquals("05", NapplyWidget.formatNapDuration(5)); + assertEquals("2:00", NapplyWidget.formatNapDuration(120)); + assertEquals("2:45", NapplyWidget.formatNapDuration(165)); + } +}