From 0a360d97ba4c378c04a390a34e115d1ef2363a41 Mon Sep 17 00:00:00 2001 From: nebkat Date: Wed, 25 Jan 2012 15:44:28 +0000 Subject: AppWidget: Use old padding method on 4.0.1 Change-Id: I8a3e6fee92be9ffed2d59504d096404c7651c602 --- .../trebuchet/AppWidgetResizeFrame.java | 14 ++++++++++++-- src/com/cyanogenmod/trebuchet/Launcher.java | 22 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) (limited to 'src/com') diff --git a/src/com/cyanogenmod/trebuchet/AppWidgetResizeFrame.java b/src/com/cyanogenmod/trebuchet/AppWidgetResizeFrame.java index a9f5f9a7f..e0f3b707f 100644 --- a/src/com/cyanogenmod/trebuchet/AppWidgetResizeFrame.java +++ b/src/com/cyanogenmod/trebuchet/AppWidgetResizeFrame.java @@ -9,6 +9,7 @@ import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.graphics.Rect; +import android.os.Build; import android.view.Gravity; import android.widget.FrameLayout; import android.widget.ImageView; @@ -111,8 +112,17 @@ public class AppWidgetResizeFrame extends FrameLayout { Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); addView(mBottomHandle, lp); - Rect p = AppWidgetHostView.getDefaultPaddingForWidget(context, - widgetView.getAppWidgetInfo().provider, null); + Rect p; + + // Public api for widget padding was added in 4.0.3 + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + p = AppWidgetHostView.getDefaultPaddingForWidget(context, + widgetView.getAppWidgetInfo().provider, null); + } else { + p = mLauncher.getDefaultPaddingForWidget( + widgetView.getAppWidgetInfo().provider); + } + mWidgetPaddingLeft = p.left; mWidgetPaddingTop = p.top; mWidgetPaddingRight = p.right; diff --git a/src/com/cyanogenmod/trebuchet/Launcher.java b/src/com/cyanogenmod/trebuchet/Launcher.java index 8d460c848..af88dcad0 100644 --- a/src/com/cyanogenmod/trebuchet/Launcher.java +++ b/src/com/cyanogenmod/trebuchet/Launcher.java @@ -952,12 +952,32 @@ public final class Launcher extends Activity } } + Rect getDefaultPaddingForWidget(ComponentName component) { + Rect p = new Rect(); + + Resources r = getResources(); + p.left = r.getDimensionPixelSize(R.dimen.app_widget_padding_left); + p.right = r.getDimensionPixelSize(R.dimen.app_widget_padding_right); + p.top = r.getDimensionPixelSize(R.dimen.app_widget_padding_top); + p.bottom = r.getDimensionPixelSize(R.dimen.app_widget_padding_bottom); + + return p; + } + int[] getSpanForWidget(ComponentName component, int minWidth, int minHeight, int[] spanXY) { if (spanXY == null) { spanXY = new int[2]; } - Rect padding = AppWidgetHostView.getDefaultPaddingForWidget(this, component, null); + Rect padding; + + // Public api for widget padding was added in 4.0.3 + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + padding = AppWidgetHostView.getDefaultPaddingForWidget(this, component, null); + } else { + padding = getDefaultPaddingForWidget(component); + } + // We want to account for the extra amount of padding that we are adding to the widget // to ensure that it gets the full amount of space that it has requested int requiredWidth = minWidth + padding.left + padding.right; -- cgit v1.2.3