summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2011-08-29 10:32:22 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-29 10:32:22 -0700
commit63feae2ca9473426897d64c60349f113fb7231b9 (patch)
tree557587c8ecae408a2b45e6a0ed49444d289ad20d /src/com/android
parent3359793e96542614eabfa8197a7ce9f05a159d91 (diff)
parent50370f325748c7bddbe91f6a2ea49065f584f14f (diff)
downloadandroid_packages_apps_Trebuchet-63feae2ca9473426897d64c60349f113fb7231b9.tar.gz
android_packages_apps_Trebuchet-63feae2ca9473426897d64c60349f113fb7231b9.tar.bz2
android_packages_apps_Trebuchet-63feae2ca9473426897d64c60349f113fb7231b9.zip
Merge "Automatically padding widgets based on target API level"
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher2/Launcher.java48
-rw-r--r--src/com/android/launcher2/LauncherAppWidgetHostView.java19
2 files changed, 50 insertions, 17 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 22a34e6c7..6c446a2bb 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -52,6 +52,7 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
@@ -74,8 +75,8 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.View;
-import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
+import android.view.View.OnLongClickListener;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.DecelerateInterpolator;
import android.view.inputmethod.InputMethodManager;
@@ -729,8 +730,6 @@ public final class Launcher extends Activity
}
}
-
-
/**
* Creates a view representing a shortcut.
*
@@ -845,6 +844,39 @@ public final class Launcher extends Activity
}
}
+ class Padding {
+ int left = 0;
+ int right = 0;
+ int top = 0;
+ int bottom = 0;
+ }
+
+ Padding getPaddingForWidget(AppWidgetProviderInfo widgetInfo) {
+ PackageManager packageManager = getPackageManager();
+ Padding p = new Padding();
+ android.content.pm.ApplicationInfo appInfo;
+
+ try {
+ appInfo = packageManager.getApplicationInfo(
+ widgetInfo.provider.getPackageName(), 0);
+ } catch (Exception e) {
+ // if we can't find the package, return 0 padding
+ return p;
+ }
+
+ // TODO: This should be ICE_CREAM_SANDWICH, but since the unbundled apps
+ // may not have updated their targetSdkVersion yet, we've bumped it down for now.
+ if (appInfo.targetSdkVersion >= Build.VERSION_CODES.HONEYCOMB_MR2) {
+ 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;
+ }
+
/**
* Add a widget to the workspace.
*
@@ -857,15 +889,11 @@ public final class Launcher extends Activity
// Calculate the grid spans needed to fit this widget
CellLayout layout = getCellLayout(container, screen);
+ Padding padding = getPaddingForWidget(appWidgetInfo);
// 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
- Resources r = getResources();
- int requiredWidth = appWidgetInfo.minWidth +
- r.getDimensionPixelSize(R.dimen.app_widget_padding_left) +
- r.getDimensionPixelSize(R.dimen.app_widget_padding_right);
- int requiredHeight = appWidgetInfo.minHeight +
- r.getDimensionPixelSize(R.dimen.app_widget_padding_top) +
- r.getDimensionPixelSize(R.dimen.app_widget_padding_bottom);
+ int requiredWidth = appWidgetInfo.minWidth + padding.left + padding.right;
+ int requiredHeight = appWidgetInfo.minHeight + padding.top + padding.bottom;
int[] spanXY = layout.rectToCell(requiredWidth, requiredHeight, null);
// Try finding open space on Launcher screen
diff --git a/src/com/android/launcher2/LauncherAppWidgetHostView.java b/src/com/android/launcher2/LauncherAppWidgetHostView.java
index 7c3b993ce..a84ced671 100644
--- a/src/com/android/launcher2/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher2/LauncherAppWidgetHostView.java
@@ -17,6 +17,7 @@
package com.android.launcher2;
import android.appwidget.AppWidgetHostView;
+import android.appwidget.AppWidgetProviderInfo;
import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
@@ -26,6 +27,7 @@ import android.view.ViewConfiguration;
import android.view.ViewGroup;
import com.android.launcher.R;
+import com.android.launcher2.Launcher.Padding;
/**
* {@inheritDoc}
@@ -34,17 +36,12 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView {
private boolean mHasPerformedLongPress;
private CheckForLongPress mPendingCheckForLongPress;
private LayoutInflater mInflater;
+ private Launcher mLauncher;
public LauncherAppWidgetHostView(Context context) {
super(context);
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- Resources r = context.getResources();
- // We add necessary padding to the AppWidgetHostView
- setPadding(r.getDimensionPixelSize(R.dimen.app_widget_padding_left),
- r.getDimensionPixelSize(R.dimen.app_widget_padding_top),
- r.getDimensionPixelSize(R.dimen.app_widget_padding_right),
- r.getDimensionPixelSize(R.dimen.app_widget_padding_bottom));
+ mLauncher = (Launcher) context;
}
@Override
@@ -119,6 +116,14 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView {
}
@Override
+ public void setAppWidget(int appWidgetId, AppWidgetProviderInfo info) {
+ super.setAppWidget(appWidgetId, info);
+ // We add necessary padding to the AppWidgetHostView
+ Launcher.Padding padding = mLauncher.getPaddingForWidget(info);
+ setPadding(padding.left, padding.top, padding.right, padding.bottom);
+ }
+
+ @Override
public int getDescendantFocusability() {
return ViewGroup.FOCUS_BLOCK_DESCENDANTS;
}