From 081a3cbdbc94ca34dfe0385627a34bc4e3e88ef8 Mon Sep 17 00:00:00 2001 From: Ronald Schaten Date: Tue, 7 Jun 2011 01:03:38 +0200 Subject: [PATCH] make use of modes, fill progress bar --- .../android/waldemar/WaldemarWidget.java | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/de/schatenseite/android/waldemar/WaldemarWidget.java b/src/de/schatenseite/android/waldemar/WaldemarWidget.java index 26e7fe9..76b00b0 100644 --- a/src/de/schatenseite/android/waldemar/WaldemarWidget.java +++ b/src/de/schatenseite/android/waldemar/WaldemarWidget.java @@ -17,6 +17,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.view.View; import android.widget.RemoteViews; import android.widget.Toast; import de.schatenseite.android.datepreference.DatePreference; @@ -81,6 +82,10 @@ public class WaldemarWidget extends AppWidgetProvider { AppWidgetManager appWidgetManager, int appWidgetId) { RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); + DateFormat format = SimpleDateFormat.getTimeInstance( + SimpleDateFormat.MEDIUM, Locale.getDefault()); + remoteViews.setTextViewText(R.id.debug, format.format(new Date())); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); remoteViews.setTextViewText(R.id.name, prefs.getString("pref_name", context.getString(R.string.title))); @@ -90,21 +95,43 @@ public class WaldemarWidget extends AppWidgetProvider { calNow.set(Calendar.SECOND, 0); long timeNow = calNow.getTimeInMillis(); + Integer mode = Integer.valueOf(prefs.getString("pref_mode", "1")); + Calendar calStart = DatePreference.getDateFor(PreferenceManager.getDefaultSharedPreferences(context), "pref_dateStart"); long timeStart = calStart.getTimeInMillis(); - + Integer duration = Integer.parseInt(prefs.getString("pref_duration", context.getString(R.string.duration_default))); Calendar calThen = DatePreference.getDateFor(PreferenceManager.getDefaultSharedPreferences(context), "pref_dateThen"); long timeThen = calThen.getTimeInMillis(); + + switch (mode) { + case 1: // only timeThen + remoteViews.setTextViewText(R.id.debug, "tT"); + // TODO: switch off progressbar + // doesn't work on progressbars: http://stackoverflow.com/questions/2415782/progressbar-in-an-appwidget + //remoteViews.setViewVisibility(R.id.progress, View.GONE); + break; + case 2: // timeStart and timeThen + remoteViews.setTextViewText(R.id.debug, "tS and tT"); + duration = (int)Math.round((double)(timeThen - timeStart) / 86400000.); + break; + case 3: // duration and timeThen + remoteViews.setTextViewText(R.id.debug, "d and tT"); + break; + case 4: // timeStart and duration + remoteViews.setTextViewText(R.id.debug, "tS and d"); + timeThen = timeStart + duration * 86400000; + break; + } - Integer days = (int)Math.round((double) (timeThen - timeNow) / 86400000.); + Integer days = (int)Math.round((double)(timeThen - timeNow) / 86400000.); remoteViews.setTextViewText(R.id.daycount, String.valueOf(days)); - DateFormat format = SimpleDateFormat.getTimeInstance( - SimpleDateFormat.MEDIUM, Locale.getDefault()); - remoteViews.setTextViewText(R.id.debug, format.format(new Date())); - + if (mode == 1) { + // workaround since we cannot make the progressbar invisible (look above) + duration = days; + } remoteViews.setProgressBar(R.id.progress, duration, duration - days, false); appWidgetManager.updateAppWidget(appWidgetId, remoteViews);