diff --git a/res/layout/main.xml b/res/layout/main.xml index d7188f8..45455ce 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -22,9 +22,9 @@ + android:layout_height="10dp" android:paddingTop="6dp" /> - diff --git a/src/de/schatenseite/android/waldemar/WaldemarWidget.java b/src/de/schatenseite/android/waldemar/WaldemarWidget.java index 79c2c7f..0996b03 100644 --- a/src/de/schatenseite/android/waldemar/WaldemarWidget.java +++ b/src/de/schatenseite/android/waldemar/WaldemarWidget.java @@ -1,11 +1,7 @@ package de.schatenseite.android.waldemar; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.Calendar; -import java.util.Date; import java.util.GregorianCalendar; -import java.util.Locale; import android.app.AlarmManager; import android.app.PendingIntent; @@ -17,9 +13,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; public class WaldemarWidget extends AppWidgetProvider { @@ -40,16 +34,14 @@ public class WaldemarWidget extends AppWidgetProvider { calendar.set(Calendar.SECOND, 0); alarmManager.setRepeating(AlarmManager.RTC, - calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent); + calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); WaldemarWidget.SaveAlarmManager(alarmManager, pendingIntent); - Toast.makeText(context, "onEnabled()", Toast.LENGTH_LONG).show(); } @Override public void onDisabled(Context context) { myAlarmManager.cancel(myPendingIntent); - Toast.makeText(context, "onDisabled()", Toast.LENGTH_LONG).show(); } @Override @@ -87,10 +79,6 @@ public class WaldemarWidget extends AppWidgetProvider { PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); remoteViews.setOnClickPendingIntent(R.id.daycount, pendingIntent); - 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))); @@ -112,20 +100,16 @@ public class WaldemarWidget extends AppWidgetProvider { 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; } @@ -133,11 +117,16 @@ public class WaldemarWidget extends AppWidgetProvider { Integer days = (int)Math.round((double)(timeThen - timeNow) / 86400000.); remoteViews.setTextViewText(R.id.daycount, String.valueOf(days)); + Integer percent = (int)(((double)(duration - days) / (double)duration)*100); + String status = String.valueOf(duration - days)+"/"+String.valueOf(duration)+", "+String.valueOf(percent)+"%"; + if (mode == 1) { // workaround since we cannot make the progressbar invisible (look above) duration = days; + status = ""; } remoteViews.setProgressBar(R.id.progress, duration, duration - days, false); + remoteViews.setTextViewText(R.id.status, status); appWidgetManager.updateAppWidget(appWidgetId, remoteViews); }