diff --git a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java
index f2ea24c1e..cb6097c01 100644
--- a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java
+++ b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java
@@ -254,8 +254,8 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
{
try
{
- buildRemoteViews(portraitWidgetView, portraitRemoteViews);
- buildRemoteViews(landscapeWidgetView, landscapeRemoteViews);
+ buildRemoteViews(portraitWidgetView, portraitRemoteViews, portraitWidth, portraitHeight);
+ buildRemoteViews(landscapeWidgetView, landscapeRemoteViews, landscapeWidth, landscapeHeight);
updateAppWidget();
}
catch (Exception e)
@@ -267,7 +267,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
super.onPostExecute(aVoid);
}
- private void buildRemoteViews(View widgetView, RemoteViews remoteViews)
+ private void buildRemoteViews(View widgetView, RemoteViews remoteViews, int width, int height)
{
widgetView.invalidate();
widgetView.setDrawingCacheEnabled(true);
@@ -276,11 +276,29 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
remoteViews.setTextViewText(R.id.label, habit.name);
remoteViews.setImageViewBitmap(R.id.imageView, drawingCache);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
+ {
+ int imageWidth = widgetView.getMeasuredWidth();
+ int imageHeight = widgetView.getMeasuredHeight();
+ int p[] = getPadding(width, height, imageWidth, imageHeight);
+
+ remoteViews.setViewPadding(R.id.buttonOverlay, p[0], p[1], p[2], p[3]);
+ }
+
//savePreview(context, widgetId, drawingCache);
PendingIntent onClickIntent = getOnClickPendingIntent(context, habit);
- if (onClickIntent != null) remoteViews.setOnClickPendingIntent(R.id.imageView,
+ if (onClickIntent != null) remoteViews.setOnClickPendingIntent(R.id.button,
onClickIntent);
}
}
+
+ private int[] getPadding(int entireWidth, int entireHeight, int imageWidth,
+ int imageHeight)
+ {
+ int w = (int) (((float) entireWidth - imageWidth) / 2);
+ int h = (int) (((float) entireHeight - imageHeight) / 2);
+
+ return new int[]{ w, h, w, h };
+ }
}
diff --git a/app/src/main/res/drawable-v21/widget_button_background.xml b/app/src/main/res/drawable-v21/widget_button_background.xml
new file mode 100644
index 000000000..fdeb02bcd
--- /dev/null
+++ b/app/src/main/res/drawable-v21/widget_button_background.xml
@@ -0,0 +1,39 @@
+
+
+
+ -
+
+
+
-
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/widget_button_background.xml b/app/src/main/res/drawable/widget_button_background.xml
new file mode 100644
index 000000000..a50eaa160
--- /dev/null
+++ b/app/src/main/res/drawable/widget_button_background.xml
@@ -0,0 +1,34 @@
+
+
+
+ -
+
+
-
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/widget_checkmark.xml b/app/src/main/res/layout/widget_checkmark.xml
index e495ff16f..1d739750d 100644
--- a/app/src/main/res/layout/widget_checkmark.xml
+++ b/app/src/main/res/layout/widget_checkmark.xml
@@ -18,12 +18,11 @@
~ with this program. If not, see .
-->
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/widget_checkmark_inner.xml b/app/src/main/res/layout/widget_checkmark_inner.xml
index 13509e5cc..631be3394 100644
--- a/app/src/main/res/layout/widget_checkmark_inner.xml
+++ b/app/src/main/res/layout/widget_checkmark_inner.xml
@@ -58,6 +58,7 @@
android:maxLines="2"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
- android:fontFamily="sans-serif-condensed"/>
+ android:fontFamily="sans-serif-condensed"
+ android:breakStrategy="balanced" />
\ No newline at end of file